Flink on Yarn 集群 HA 安装及配置

  • 搭建 Hadoop HA 集群及 ZK 集群
  • 下载 Flink
  • 解压安装包
  • 修改 /etc/profile 添加环境变量
  • 修改配置文件
  • 启动 Flink 集群
  • HA 容错机制
  • On Yarn

搭建 Hadoop HA 集群及 ZK 集群

Zookeeper 安装和 Hadoop 安装

我使用的是 Flink 1.7.2

这里要注意,如果要搭配 Hadoop 使用,一定要下载带有 with Hadoop 或者 Pre-bundled Hadoop 的安装包,只有 for Scala 的没法连接到 HDFS(亲测踩坑),应该是少了一些包,因为我测试的时候,两种安装包的大小都相差了 30Mb 左右

解压安装包

1
2
# 这里注意,安装包是带有 hadoop 的,没有的话重新去下载
tar -xzvf flink-1.7.2-bin-hadoop28-scala_2.11.tgz

修改 /etc/profile 添加环境变量

1
2
3
4
5
6
7
vim /etc/profile

export FLINK_HOME="/usr/local/flink-1.7.2"
export PATH=${PATH}:${FLINK_HOME}/bin

# 更新一下
source /etc/profile

修改配置文件

1
2
# 进入解压路径
cd **/flink-1.7.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vim conf/flink-conf.yaml

# 改成各自节点的名称或者 IP 地址
# 这个配置项有坑(更坑的是官网还没说),可以借鉴这篇博客:https://www.jianshu.com/p/e48b73221c67
jobmanager.rpc.address: bigdata1

# 开启高可用模式
high-availability: zookeeper

# 指定 HDFS 的路径,用于存储 JobManager 的元数据
high-availability.storageDir: hdfs://ns/flink/ha/

# 配置 zk 各个节点的端口
high-availability.zookeeper.quorum: bigdata1:2181,bigdata2:2181,bigdata3:2181

# zk 节点根目录,放置所有 flink 集群节点的 namespace
high-availability.zookeeper.path.root: /flink

# zk 节点集群 id,放置了 flink 集群所需要的所有协调数据
high-availability.cluster-id: /cluster_one

# 配置Yarn重试次数
yarn.application-attempts: 10

slaves 添加 TaskManagerRunner

1
2
3
4
5
vim conf/slaves

bigdata1
bigdata2
bigdata3

masters 添加 StandaloneSessionClusterEntrypoint

1
2
3
4
vim conf/masters

bigdata5:8081
bigdata6:8081

修改 yarn-site.xml

添加以下信息

1
2
3
4
5
6
7
8
<!-- 设置提交应用程序的最大尝试次数 -->
<property>
<name>yarn.resourcemanager.am.max-attempts</name>
<value>4</value>
<description>
The maximum number of application master execution attempts.
</description>
</property>
1
2
3
# 因为前面已经添加到环境变量了,直接运行命令即可
# 没有添加就要到 flink 的 bin 目录下运行该命令
start-cluster.sh

启动结果

bigdata1

1
14195 TaskManagerRunner

bigdata2

1
56062 TaskManagerRunner

bigdata3

1
44918 TaskManagerRunner

bigdata5

1
44734 StandaloneSessionClusterEntrypoint

bigdata6

1
4177 StandaloneSessionClusterEntrypoint

WebUI

FlinkWebUI

ZK 节点查看

FlinkZK

HDFS 查看

FlinkHDFS

HA 容错机制

直接 kill 一个 Master 进程,另一个 Master 会自动上线(需要点时间,可能有点长,亲测成功)

重启被 kill 的进程:jobmanager.sh start

On Yarn

1
yarn-session.sh -n 2

WebUI 查看 job

这里我用 yarn application -kill jobId 关掉了,所以状态是 History(这个命令在我面试的时候被问到过,-list 是列出所有的 job)

FlinkOnYarn

至此安装完成

坚持原创技术分享,您的支持将鼓励我继续创作!