楼主: kaixin202212
137 1

[分布式系统架构] flink实时规则营销系统(39期,2023版) [推广有奖]

  • 0关注
  • 1粉丝

讲师

17%

还不是VIP/贵宾

-

威望
0
论坛币
380 个
通用积分
29.2918
学术水平
0 点
热心指数
3 点
信用等级
0 点
经验
5182 点
帖子
180
精华
0
在线时间
281 小时
注册时间
2022-11-10
最后登录
2024-4-30

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
什么是flink?
flink是一个分布式,高性能,随时可用的以及准确的流处理计算框架,flink可以对无界数据(流处理)和有界数据(批处理)进行有状态计算(flink天生支持状态计算)的分布式,高性能的计算框架。

flink的基石
flink的四大基石:checkpoint,state,time,window
checkpoint:基于chandy-lamport算法实现分布式计算任务的一致性语义;
state:flink中的状态机制,flink天生支持state,state可以认为程序的中间计算结果或者是历史计算结果;
time:flink中支持基于事件时间和处理时间进行计算,spark streaming只能按照process time进行处理;
基于事件时间的计算我们可以解决数据迟到和乱序等问题。
window:flink提供了更多丰富的window,基于时间,基于数量,session window,同样支持滚动和滑动窗口的计算。

Flink的应用
Flink 是一个大数据流处理引擎,它可以为不同的行业提供大数据实时处理的解决方案。随着 Flink 的快速发展完善,如今在世界范围许多公司都可以见到 Flink 的身影。
目前在全球范围内,北美、欧洲和金砖国家均是 Flink 的应用热门区域。当然,这些地区其实也就是 IT、互联网行业较发达的地区。
Flink 在国内热度尤其高,一方面是因为阿里的贡献和带头效应,另一方面也跟中国的应用场景密切相关。中国的人口规模与互联网使用普及程度,决定了对大数据处理的速度要求越来越高,也迫使中国的互联网企业去追逐更高的数据处理效率。试想在中国,一个网站可能要面对数亿的日活用户、每秒数亿次的计算峰值,这对很多国外的公司来说是无法想象的。而Flink 恰好给我们高速准确的处理海量流式数据提供了可能。

Flink环境部署:
要了解一个系统,一般都是从架构开始。我们关心的问题是:系统部署成功后各个节点都启动了哪些服务,各个服务之间又是怎么交互和协调的。
当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager 去执行,然后 TaskManager 将心跳和统计信息汇报给 JobManager。TaskManager 之间以流的形式进行数据的传输。上述三者均为独立的 JVM 进程。

Client为提交 Job 的客户端,可以是运行在任何机器上(与 JobManager 环境连通即可)。提交 Job 后,Client 可以结束进程(Streaming的任务),也可以不结束并等待结果返回。

JobManager主要负责调度 Job 并协调 Task 做 checkpoint,职责上很像 Storm 的 Nimbus。从 Client 处接收到 Job 和 JAR 包等资源后,会生成优化后的执行计划,并以 Task 的单元调度到各个 TaskManager 去执行。

TaskManager在启动的时候就设置好了槽位数(Slot),每个 slot 能启动一个 Task,Task 为线程。从 JobManager 处接收需要部署的 Task,部署启动后,与自己的上游建立 Netty 连接,接收数据并处理。

本地模式环境部署步骤如下:
# 1. 下载安装包并上传到/usr/local/src 目录
# 2. 解压安装包并重命名为flink
[root@node src]$ tar -zxf flink-1.14.4-bin-scala_2.12.tgz
[root@node src]$ tar -zxf jdk-8u111-linux-x64.tar.gz
# 3. 修改安装包所属用户和用户组权限
[root@node src]$ chown -R root.root flink-1.14.5
# 4. 配置Flink环境变量并重新加载使其生效
[root@node src]$ vim ~/.bash_profile
export JAVA_HOME=/usr/local/src/jdk1.8.0_111/
export FLINK_HOME=/usr/local/src/flink-1.14.5/
export PATH=$PATH:$JAVA_HOME/bin:$FLINK_HOME/bin
[root@node src]$ source ~/.bash_profile
# 4. 启动"集群"
[root@node src]$ start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host node.
Starting taskexecutor daemon on host node.
[root@node src]$ jps
17186 Jps
17078 TaskManagerRunner
16809 StandaloneSessionClusterEntrypoint
# 5. 访问WebUI界面8081端口查看运行情况

分发Flink安装包配置到另外两个节点
使用Linux scp命令把node01节点的配置分发到另外两个节点上。
# 使用 scp 分发
[root@node01 conf]$ cd /usr/local
[root@node01 local]$ scp -r flink node02:/usr/local/
[root@node01 local]$ scp -r flink node03:/usr/local/

启动Flink集群
# 批量统一启动
[root@node01 bin]$ start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host node01.
Starting taskexecutor daemon on host node01.
Starting taskexecutor daemon on host node02.
Starting taskexecutor daemon on host node03.

# 单独启动
[root@node01 bin]$  jobmanager.sh start / stop
[root@node01 bin]$  taskmanager.sh start / stop

# 使用脚本查看服务进程
[root@node01 bin]$ jps



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:link Lin streaming Starting Manager

沙发
kaixin202212 发表于 2024-2-20 11:38:46 |只看作者 |坛友微信交流群
学习地址1:https://pan.baidu.com/s/1RmAkakR8FgPNgY14qnGUuA 提取码: 8s1q
学习地址2:https://share.weiyun.com/cE3EUSA3 密码:chi9p6

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 13:54