Flink支持多种安装模式:
local(本地)——单机模式,一般不使用
standalone——独立模式,Flink自带集群,开发测试环境使用
yarn——计算资源统一由Hadoop YARN管理,生产环境测试
Kubernetes——容器化部署时目前业界很流行的一项技术,基于Docker镜像运行能够让用户更加方便地对应用进行管理和运维。
1.1. 安装
下载网址:Index of /dist/flink/flink-1.7.0
上传flink包到 /export/software目录下
解压缩 flink-1.7.0-bin-hadoop27-scala_2.11.tgz
tar -zxvf flink-1.7.2-bin-hadoop26-scala_2.11.tgz -C /export/servers/
进入conf 目录中。
- 修改 flink/conf/flink-conf.yaml 文件:
jobmanager.rpc.address: hadoop101
2)修改 /conf/slave 文件:
hadoop101 hadoop102 hadoop103
3)分发给另外两台机子:
scp -r flink-1.7.0 hadoop102:$PWD scp -r flink-1.7.0 hadoop103:$PWD
4)启动:
./start-cluster.sh
访问 http://linux01:8081 可以对 flink 集群和任务进行监控管理。
1.2. 提交任务1)准备数据文件
2)把含数据文件的文件夹,分发到taskmanage机器上。由于读取数据是从本地磁盘读取,实际任务会被分发到 taskmanage 的机器中,所以要把目标文件分发。
3)执行程序
./flink run -c com.offcn.wordCount.wordCountJava /root/flinkJar/FlinkDeno-1.0-SNAPSHOT-jar-with-dependencies.jar /opt/module/flink-1.7.0/flink/data/wordcount.txt /opt/module/flink-1.7.0/flink/wordcount
4)到目标文件夹中查看计算结果(注意:计算结果根据会保存到taskmanage的机器上,不在jobmanage上)。
5)在webUI控制台上查看计算过程:
6)集群架构
client客户端提交任务给jobManager hadoop fs -mkdir -p /test/input
jobManager负责Flink集群计算资源管理,并分发任务给TaskManager执行
TaskManager定期向jobManager汇报状态
查看当前运行的任务: bin/flink list
停止当前的任务:bin/flink cancel 471ede242bd2fa22d32ed147a025e5d2
查看所有的任务包括取消的:bin/flink list --all
1.3. 高可用HA模式JobManager单节点存在单点故障 ,一旦JobManager出现意外,整个集群无法工作。所以,为了确保集群的高可用,需要搭建Flink的HA。(如果是部署在YARN上,部署YARN的HA),我们这里演示如何搭建Standalone 模式HA。
1)架构图如下:
2)在flink-conf.yaml中添加zookeeper配置
#开启HA,使用文件系统作为快照存储 state.backend: filesystem #启用检查点,可以将快照保存到HDFS state.checkpoints.dir: hdfs://hadoop101:8020/flink-checkpoints #使用zookeeper搭建高可用 high-availability: zookeeper # 存储JobManager的元数据到HDFS high-availability.storageDir: hdfs://hadoop101:8020/flink/ha/ high-availability.zookeeper.quorum: hadoop101:2181,hadoop102:2181,hadoop103:2181
3)将配置过的HA的 flink-conf.yaml 分发到另外两个节点
scp -r flink-conf.yaml hadoop102:$PWD scp -r flink-conf.yaml hadoop102:$PWD
4)到linux02中修改flink-conf.yaml中的配置,将JobManager设置为自己节点的名称
jobmanager.rpc.address:hadoop102
5)在master配置文件中添加多个节点
hadoop101:8081 hadoop102:8082
6)分发master配置文件到另外两台节点
scp -r masters hadoop102:$PWD scp -r masters hadoop103:$PWD
7) 启动zookeeper集群
8)启动HDFS集群
9)启动flink集群
10)分别查看两个节点的flink web UI
11)kill掉一个节点,查看另外的一个节点的web UI



