当前位置:网站首页>Flink HA安装配置实战
Flink HA安装配置实战
2022-08-05 05:14:00 【bigdata1024】
Flink HA配置文档
详细HA原因及原理介绍说明请查看此博客链接,
https://blog.csdn.net/xu470438000/article/details/79633824
本文档只涉及HA具体安装步骤
Flink Standalone集群HA配置
1. HA集群环境规划
使用三台节点实现两主两从集群(由于笔记本性能限制,不能开启太多虚拟机,其实使用三台和四台机器在安装配置上没有本质区别)
Jobmanager:hadoop100 hadoop101【一个active,一个standby】
Taskmanager:hadoop101 hadoop102
zookeeper: hadoop100【建议使用外置zk集群,在这里我使用单节点zk来代替】
2. 开始配置+启动
集群内所有节点的配置都一样,所以先从第一台机器hadoop100开始配置
ssh hadoop100
#首先按照之前配置standalone的参数进行修改 vi conf/flink-conf.yaml jobmanager.rpc.address: hadoop100
vi conf/slaves hadoop101 hadoop102
# 然后修改配置HA需要的参数 vi conf/masters hadoop100:8081 hadoop101:8081
vi conf/flink-conf.yaml high-availability: zookeeper high-availability.zookeeper.quorum: hadoop100:2181 high-availability.zookeeper.path.root: /flink high-availability.cluster-id: /cluster_one # 建议指定hdfs的全路径。如果某个flink节点没有配置hdfs的话,不指定全路径无法识别 high-availability.zookeeper.storageDir: hdfs://hadoop100:9000/flink/ha
# 把hadoop100节点上修改好配置的flink安装目录拷贝到其他节点 cd /usr/local/ scp -rq flink-1.4.2 hadoop101:/usr/local scp -rq flink-1.4.2 hadoop102:/usr/local
# 【先启动zk服务】 bin/start-cluster.sh |
3. 验证HA集群进程
查看机器进程会发现如下情况【此处只列出flink自身的进程信息,不包含zk,hadoop进程信息】
登录hadoop100节点 执行jps: 20159 JobManager
登录hadoop101节点 执行jps: 7795 JobManager 8156 TaskManager
登录hadoop100节点 执行jps: 5046 TaskManager
|
因为jobmanager节点都会启动web服务,也可以通过web界面进行验证
访问http://hadoop100:8081/#/jobmanager/config
发现以下信息:
注意:此时就算是访问hadoop101:8081也会跳转回hadoop100:8081 因为现在hadoop100是active的jobmanager。从下图中也可以看出,点击jobmanager查看,显示哪个节点,就表示哪个节点现在是active的。
4. 模拟jobmanager进程挂掉
现在hadoop100节点上的jobmanager是active的。我们手工把这个进程kill掉,模拟进程挂掉的情况,来验证hadoop101上的standby状态的jobmanager是否可以正常切换到active。
ssh hadoop100 执行jps: 20159 JobManager
kill 20159 |
5. 验证HA切换
hadoop100节点上的jobmanager进程被手工kill掉了,然后hadoop101上的jobmanager会自动切换为active,中间需要有一个时间差,稍微等一下
访问http://hadoop101:8081/#/jobmanager/config
如果可以正常访问并且能看到jobmanager的信息变为hadoop101,则表示jobmanager节点切换成功
6. 重启之前kill掉的jobmanager
进入到hadoop100机器
ssh hadoop100
执行下面命令启动jobmanager
bin/jobmanager.sh start cluster |
启动成功之后,可以访问http://hadoop100:8081/#/jobmanager/config
这个节点重启启动之后,就变为standby了。hadoop101还是active。
Flink on yarn集群HA配置
1. HA集群环境规划
flink on yarn的HA 其实是利用yarn自己的集群恢复机制。
在这需要用到zk,主要是因为虽然flink-on-yarn cluster HA依赖于Yarn自己的集群机制,但是Flink Job在恢复时,需要依赖检查点产生的快照,而这些快照虽然配置在hdfs,但是其元数据信息保存在zookeeper中,所以我们还要配置zookeeper的HA信息
hadoop集群搭建的伪分布,在hadoop100节点上面【flink on yarn 使用伪分布hadoop集群和真正分布式hadoop集群,在操作上没有区别】
zookeeper服务也在hadoop100节点上
2. 开始配置+启动
主要在hadoop100这个节点上配置即可
首先需要修改hadoop中yarn-site.xml中的配置,设置提交应用程序的最大尝试次数
<property> <name>yarn.resourcemanager.am.max-attempts</name> <value>4</value> <description> The maximum number of application master execution attempts. </description> </property> |
然后修改flink部分相关配置
可以解压一份新的flink-1.4.2安装包 tar -zxvf flink-1.4.2-bin-hadoop27-scala_2.11.tgz
修改配置文件【标红的目录名称建议和standalone HA中的配置区分开】 vi conf/flink-conf.yaml high-availability: zookeeper high-availability.zookeeper.quorum: hadoop100:2181 high-availability.zookeeper.storageDir: hdfs://hadoop100:9000/flink/ha-yarn high-availability.zookeeper.path.root: /flink-yarn yarn.application-attempts: 10
|
3. 启动flink on yarn,测试HA
先启动hadoop100 上的zookeeper
在hadoop100上启动HA集群
cd /usr/local/flink-1.4.2 bin/yarn-session.sh -n 2 |
在hadoop100上执行jps命令,可以看到下面进程信息:
28680 YarnApplicationMasterRunner
jobmanager进程就在这个(YarnApplicationMasterRunner)进程里面
所以想要测试jobmanager的HA情况,只需要拿YarnApplicationMasterRunner这个进程进行测试即可。
执行下面命令手工模拟kill掉jobmanager(YarnApplicationMasterRunner)
kill 28680
然后你再执行jps 会发现,YarnApplicationMasterRunner这个进程又出现了。
并且还可以去yarn的web界面进行确认:
发现这个程序的AttemptId变为00002了
如果想查看jobmanager的webui界面可以点击下面链接:
对比重启前后的jobmanager.rpc.port参数,会发现两次是不一样的,所以可以验证jobmanager是重启之后的。
获取更多大数据资料,视频以及技术交流请加群:
边栏推荐
- ESP32 485 Illuminance
- [Software Exam System Architect] Software Architecture Design ③ Domain-Specific Software Architecture (DSSA)
- 【读书】长期更新
- 【Untitled】
- 【Transfer】What is etcd
- The role of the range function
- The software design experiment four bridge model experiment
- day12函数进阶作业
- RL强化学习总结(一)
- Lecture 2 Linear Model Linear Model
猜你喜欢
CAP+BASE
数据库 单表查询
Pycharm中使用pip安装第三方库安装失败:“Non-zero exit code (2)“的解决方法
Reverse theory knowledge 4
开发一套高容错分布式系统
Develop a highly fault-tolerant distributed system
第四讲 反向传播随笔
[Study Notes Dish Dog Learning C] Classic Written Exam Questions of Dynamic Memory Management
Difference between for..in and for..of
jvm three heap and stack
随机推荐
CAP+BASE
使用二维码解决固定资产管理的难题
第四讲 back propagation 反向传播
【读书】长期更新
【记一下1】2022年6月29日 哥和弟 双重痛苦
redis 缓存清除策略
有用番茄来监督自己的同道中人吗?加一下我的自习室,一起加油
02.01-----The role of parameter reference "&"
DOM及其应用
OFDM 十六讲 5 -Discrete Convolution, ISI and ICI on DMT/OFDM Systems
The difference between span tag and p
2022 Hangzhou Electric Multi-School 1st Session 01
Lecture 4 Backpropagation Essays
2022牛客多校第四场C.Easy Counting Problem(EGF+NTT)
第5讲 使用pytorch实现线性回归
Error creating bean with name 'configDataContextRefresher' defined in class path resource
uva1325
server disk array
Community Sharing|Tencent Overseas Games builds game security operation capabilities based on JumpServer
RL reinforcement learning summary (1)