2021年大数据Flink(五):Standalone-HA高可用集群模式
目录
12.下载jar包并在Flink的lib目录下放入该jar包并分发使Flink能够支持对Hadoop的操作
Standalone-HA高可用集群模式
原理
从之前的架构中我们可以很明显的发现 JobManager 有明显的单点问题(SPOF,single point of failure)。JobManager 肩负着任务调度以及资源分配,一旦 JobManager 出现意外,其后果可想而知。
在 Zookeeper 的帮助下,一个 Standalone的Flink集群会同时有多个活着的 JobManager,其中只有一个处于工作状态,其他处于 Standby 状态。当工作中的 JobManager 失去连接后(如宕机或 Crash),Zookeeper 会从 Standby 中选一个新的 JobManager 来接管 Flink 集群。
操作
1.集群规划
- - 服务器: node1(Master + Slave): JobManager + TaskManager
- - 服务器: node2(Master + Slave): JobManager + TaskManager
- - 服务器: node3(Slave): TaskManager
2.启动ZooKeeper
-
zkServer.sh status
-
-
zkServer.sh stop
-
-
zkServer.sh start
3.启动HDFS
/export/serves/hadoop/sbin/start-dfs.sh
4.停止Flink集群
/export/server/flink/bin/stop-cluster.sh
5.修改flink-conf.yaml
vim /export/server/flink/conf/flink-conf.yaml
增加如下内容G
-
-
state.backend: filesystem
-
-
state.backend.fs.checkpointdir: hdfs://node1:8020/flink-checkpoints
-
-
high-availability: zookeeper
-
-
high-availability.storageDir: hdfs://node1:8020/flink/ha/
-
-
high-availability.zookeeper.quorum: node1:2181,node2:2181,node3:2181
配置解释
-
-
#开启HA,使用文件系统作为快照存储
-
-
state.backend: filesystem
-
-
-
-
#启用检查点,可以将快照保存到HDFS
-
-
state.backend.fs.checkpointdir: hdfs://node1:8020/flink-checkpoints
-
-
-
-
#使用zookeeper搭建高可用
-
-
high-availability: zookeeper
-
-
-
-
# 存储JobManager的元数据到HDFS
-
-
high-availability.storageDir: hdfs://node1:8020/flink/ha/
-
-
-
-
# 配置ZK集群地址
-
-
high-availability.zookeeper.quorum: node1:2181,node2:2181,node3:2181
6.修改masters
vim /export/server/flink/conf/masters
-
-
node1:8081
-
-
node2:8081
7.同步
-
scp -r /export/server/flink/conf/flink-conf.yaml node2:/export/server/flink/conf/
-
-
scp -r /export/server/flink/conf/flink-conf.yaml node3:/export/server/flink/conf/
-
-
scp -r /export/server/flink/conf/masters node2:/export/server/flink/conf/
-
-
scp -r /export/server/flink/conf/masters node3:/export/server/flink/conf/
8.修改node2上的flink-conf.yaml
vim /export/server/flink/conf/flink-conf.yaml
jobmanager.rpc.address: node2
9.重新启动Flink集群,node1上执行
-
/export/server/flink/bin/stop-cluster.sh
-
-
/export/server/flink/bin/start-cluster.sh
10.使用jps命令查看
发现没有Flink相关进程被启动
11.查看日志
cat /export/server/flink/log/flink-root-standalonesession-0-node1.log
发现如下错误
因为在Flink1.8版本后,Flink官方提供的安装包里没有整合HDFS的jar
12.下载jar包并在Flink的lib目录下放入该jar包并分发使Flink能够支持对Hadoop的操作
下载地址
https://flink.apache.org/downloads.html
放入lib目录
cd /export/server/flink/lib
分发
for i in {2..3}; do scp -r flink-shaded-hadoop-2-uber-2.7.5-10.0.jar node$i:$PWD; done
13.重新启动Flink集群,node1上执行
/export/server/flink/bin/start-cluster.sh
14.使用jps命令查看,发现三台机器已经ok
测试
1.访问WebUI
http://node1:8081/#/job-manager/config
http://node2:8081/#/job-manager/config
2.执行wc
/export/server/flink/bin/flink run /export/server/flink/examples/batch/WordCount.jar
3.kill掉其中一个master
4.重新执行wc,还是可以正常执行
/export/server/flink/bin/flink run /export/server/flink/examples/batch/WordCount.jar
5.停止集群
/export/server/flink/bin/stop-cluster.sh
文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。
原文链接:lansonli.blog.csdn.net/article/details/116110052
- 点赞
- 收藏
- 关注作者
评论(0)