Flink Standalone 集群HA配置

flink笔记@tanghc

  • 1.HA集群环境规划
  • 2.配置
  • 3.验证HA切换

1.HA集群环境规划

使用三台节点实现两主两从集群(由于笔记本性能限制)
jobmanager:master 、slave1
Taskmanager:slave1、slave2(slave1是一台机器上同时跑jobmanager和Taskmanager)
zookeeper:master 、slave1、slave2
NOTE:
要启用jobManager高可用性,必须将高可用性模式设置为zookeper,配置一个Zookeeper quorum,并配置一个masters文件储存所有的jobManager hostname及其Web UI 端口号。
Flink利用zookeeper实现运行中的jobManager节点之间的分布式协调。Zookeeper是独立于flink的服务,它通过领导选举制和轻量级转态一致性存储来提供高度可靠的分布式协调。

2.配置

集群内所有配置都一样,所以从第一台机器master开始配置,之后分发到各个节点就好了

  1. 进入到Flink的安装目录下(先按照standalone的参数进行修改):
    vi conf/flink-conf.yaml
jobmanager.rpc.address:master

Flink Standalone 集群HA配置_第1张图片
一定注意冒号和参数之间要空一格

  1. 设置从节点
vi conf/slaves

在这里插入图片描述
将你需要设置为从节点的主机名写入此文件中(注意:也可以直接设置ip地址)

  1. 设置主节点
vi conf/masters

Flink Standalone 集群HA配置_第2张图片

  1. List item

.设置HA

vi conf/flink-conf.yaml

具体设置如下:

high-availability:zookeeper
#zookeeper节点地址,如果是多节点的话“,”逗号隔开
high-availability.zookeeper.quorum:master:2181 ,slave1:2181,slave2:2181
#ZooKeeper 节点根目录,其下放置所有集群节点的 namespace 
high-availability.zookeeper.path.root:/flink 
#ZooKeeper 节点集群 id,其中放置了集群所需的所有协调数据
high-availability.cluster-id:/cluster_one 
# 建议指定 hdfs 的全路径。如果某个 flink 节点没有配置 hdfs 的话,不指定全路径无法识别 #storageDir 存储了恢复
JobManager 所需的所有元数据。
highavailability.storageDir:hdfs://master:9000/flink/ha

Flink Standalone 集群HA配置_第3张图片

  1. List item

.把master上配置好的flink安装目录拷贝到其他节点

scp -rq flink-1.4.2 root@slave1:/usr/local
scp -rq flink-1.4.2 root@slave2:/usr/local
  1. 启动集群
    #【先启动 zk 服务】

    bin/zkServer.sh start

Flink Standalone 集群HA配置_第4张图片
Flink Standalone 集群HA配置_第5张图片
Flink Standalone 集群HA配置_第6张图片
#【再启动 hadoop 服务】

 sbin/start-all.sh

Flink Standalone 集群HA配置_第7张图片
#启动 flinkstandaloneHA 集群,在 master 节点上启动如下命令(进入到flink安装目录下)】

  bin/start-cluster.sh

Flink Standalone 集群HA配置_第8张图片

#【jps查看进程】
master
Flink Standalone 集群HA配置_第9张图片
slave1
Flink Standalone 集群HA配置_第10张图片
slave2
Flink Standalone 集群HA配置_第11张图片
#【查看web界面】

因为 jobmanager 节点都会启动 web 服务,也可以通过 web 界面进行验证 访问 http://master:8081/#/jobmanager/config 发现以下信息:
(注意:此时就算是访问 master:8081 也会跳转回 master :8081 因为现在 master 是 active 的 jobmanager。从下图中也可以看出,点击 jobmanager 查看,显示哪个节点,就 表示哪个节点现在是 active 的。)
Flink Standalone 集群HA配置_第12张图片

*如果没有添加主机映射,需要直接输入ip地址如(master的主机ip是:192.168.56.101):

http://192.168.56.101:8081/#/jobmanager/config

3.验证HA切换

master 节点上的 jobmanager 进程被手工 kill 掉了,然后 master上的 jobmanager 会 自动切换为 active,中间需要有一个时间差,稍微等一下 访问 http://master:8081/#/jobmanager/config 如果可以正常访问并且能看到 jobmanager 的信息变为 master,则表示 jobmanager 节点 切换成功

[root@master flink-1.6.1]# jps
2464 QuorumPeerMain
2969 ResourceManager
3946 StandaloneSessionClusterEntrypoint
2813 SecondaryNameNode
2622 NameNode
4014 Jps
[root@master flink-1.6.1]# kill 3946

Flink Standalone 集群HA配置_第13张图片
访问http://slave1:8081/#/jobmanager/config发现slave1变成了jobmanager
Flink Standalone 集群HA配置_第14张图片
进入到master下的flink安装目录下重新启动之前kill掉的jobmanager

bin/jobmanager.shstart

在这里插入图片描述
这个节点重启启动之后,就变为 standby 了。slave1 还是 active

你可能感兴趣的:(Flink)