2021年大数据Flink(五):Standalone-HA高可用集群模式
目錄
Standalone-HA高可用集群模式
原理
操作
1.集群規劃
2.啟動ZooKeeper
3.啟動HDFS
4.停止Flink集群
5.修改flink-conf.yaml
6.修改masters
7.同步
8.修改node2上的flink-conf.yaml
9.重新啟動Flink集群,node1上執行
10.使用jps命令查看
11.查看日志
12.下載jar包并在Flink的lib目錄下放入該jar包并分發使Flink能夠支持對Hadoop的操作
13.重新啟動Flink集群,node1上執行
14.使用jps命令查看,發現三臺機器已經ok
???????測試
1.訪問WebUI
2.執行wc
3.kill掉其中一個master
4.重新執行wc,還是可以正常執行
5.停止集群
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 statuszkServer.sh stopzkServer.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: filesystemstate.backend.fs.checkpointdir: hdfs://node1:8020/flink-checkpointshigh-availability: zookeeperhigh-availability.storageDir: hdfs://node1:8020/flink/ha/high-availability.zookeeper.quorum: node1:2181,node2:2181,node3:2181
?
配置解釋
#開啟HA,使用文件系統作為快照存儲state.backend: filesystem#啟用檢查點,可以將快照保存到HDFSstate.backend.fs.checkpointdir: hdfs://node1:8020/flink-checkpoints#使用zookeeper搭建高可用high-availability: zookeeper# 存儲JobManager的元數據到HDFShigh-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:8081node2: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
?
總結
以上是生活随笔為你收集整理的2021年大数据Flink(五):Standalone-HA高可用集群模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据Flink(三):
- 下一篇: 2021年大数据Flink(六):Fli