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 左右

解压安装包

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

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

vim /etc/profile

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

# 更新一下
source /etc/profile

修改配置文件

# 进入解压路径
cd **/flink-1.7.2
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

vim conf/slaves

bigdata1
bigdata2
bigdata3

masters 添加 StandaloneSessionClusterEntrypoint

vim conf/masters

bigdata5:8081
bigdata6:8081

修改 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 的 bin 目录下运行该命令
start-cluster.sh

启动结果

bigdata1

14195 TaskManagerRunner

bigdata2

56062 TaskManagerRunner

bigdata3

44918 TaskManagerRunner

bigdata5

44734 StandaloneSessionClusterEntrypoint

bigdata6

4177 StandaloneSessionClusterEntrypoint

WebUI

FlinkWebUI

ZK 节点查看

FlinkZK

HDFS 查看

FlinkHDFS

HA 容错机制

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

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

On Yarn

yarn-session.sh -n 2

WebUI 查看 job

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

FlinkOnYarn

至此安装完成

文章作者: Chentyit
文章链接: http://www.chentyit.cn/2019/10/19/Flink-on-Yarn-%E9%9B%86%E7%BE%A4-HA-%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hexo