04_Flink集群部署(Yarn HA)

YARN:

  • ResourceManager
  • NodeManager
  • AppMaster(jobmanager运行其上)
  • Container(TaskManager运行其上)
  • YarnSession
  • 选择OnYarn的理由:1.提高机器利用率。2.Hadoop开源活跃,且成熟
    在这里插入图片描述

1.Flink ON YARN 配置

1.1 下载
Flink 安装包可以直接到官网下载,官网地址:官网:https://archive.apache.org/dist/flink/。为了避免同一个节点 Flink 版本覆盖,这里我们选择下载较新的稳定的 Flink1.6.3 版本。
在这里插入图片描述

1.2 解压
我们将下载好的 flink-1.6.3-bin-hadoop26-scala_2.11.tgz 上传至 cdh01(作为客户端)节点的 /home/hadoop/app 目录下,通过 tar 命令进行解压,具体操作如下:

[hadoop@cdh01 app]$ tar -zxvf flink-1.6.3-bin-hadoop26-scala_2.11.tgz
[hadoop@cdh01 app]$ ls
flink-1.6.3

1.3 修改环境变量

[hadoop@cdh01 conf]$ vi ~/.bashrc
#Flink 默认通过 HADOOP_CONF_DIR 目录加载 hadoop 配置
export HADOOP_CONF_DIR=/home/hadoop/app/hadoop/etc/hadoop

在这里插入图片描述

1.4 启动 Flink 服务
1.启动 Zookeeper 集群
申请 3 个 TaskManager,每个 1G 内存和 3 个 slot。

bin/yarn-session.sh -s 3 -tm 1024 -n 3

参考解释:

-n : TaskManager 的数量
-s : 每个 TaskManager 拥有 Task slot 数量
-tm : 每个 TaskManager 的内存大小
-jm : JobManager 的内存大小

yarn-session.sh 会挂起进程,可以在终端使用 CTRL+C 或输入 stop 停止 yarn-session。
备注:上面的命令虽然通过-n 指定的参数为 3,但是会向 Yarn 申请 4 个 container,其中 3 个 Container 启动 TaskManager,另外一个 container 启动 ApplicationMaster(Job Manager)。
注意:如果使用的虚拟机内存太小,可以把参数调小,否则会导致启动失败。
上述命令执行完毕之后,可以在 yarn Application 界面看到 Flink session cluster。
在这里插入图片描述

从 RM 界面中(点击 ApplicationMaster 跳转),可以进入 Flink 界面查看状态.
在这里插入图片描述

1.5 提交作业测试运行

bin/flink run
-m yarn-cluster
-yn 2 examples/batch/WordCount.jar
--input
hdfs://mycluster/test/wc.txt --output hdfs://mycluster/test/output4

备注:-m 表示提交作业到 yarn cluster,-yn 表示 TaskManager 个数。查看作业运行结果:
在这里插入图片描述

1.6 关闭 yarn cluster

扫描二维码关注公众号,回复: 10289725 查看本文章
bin/yarn application -kill application_1548705270939_0001

2.Flink ON YARN HA 配置

2.1 修改 yarn-site.xml 文件
配置 AM 在尝试重启的最大次数

[hadoop@cdh01 hadoop]$ vi 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>

使用脚本同步到其他节点:

[hadoop@cdh01 hadoop]$ deploy.sh yarn-site.xml /home/hadoop/app/hadoop/etc/hadoop slave

2.2 修改 flink-conf.yaml 文件

[hadoop@cdh01 conf]$ vi flink-conf.yaml
high-availability: zookeeper
high-availability.storageDir: hdfs://mycluster/flink/ha/
high-availability.zookeeper.quorum: cdh01:2181,cdh02:2181,cdh03:2181

#此参数代表 Flink Job(yarn 中称为 application)在 Jobmanager(或者叫 Application Master) 恢复时,允许重启的最大次数。
yarn.application-attempts: 10
注意,Flink On Yarn 环境中,当 Jobmanager(Application Master)失败时,yarn 会尝试重启 JobManager ( AM ), 重 启 后 会 重 新 启 动 Flink 的 Job ( application )。 因 此 ,yarn.application-attempts 的设置不应该超过 yarn.resourcemanager.am.max-attemps。

2.3 启动 Flink HA 集群
1.启动 Zookeeper 集群
通过 runRemoteCmd.sh 远程脚本,同时启动 cdh01、cdh02、cdh03 节点的 Zookeeper 服务。

[hadoop@cdh01 app]$ runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh start" all

2.启动 HDFS 集群

sbin/start-dfs.sh

3.启动 YARN 集群

sbin/start-yarn.sh

4.启动 flink on yarn HA 集群

bin/yarn-session.sh -n 2

2.4 测试运行
1.通过 netcat 启动本地服务

[hadoop@cdh01 ~]$ nc -l 9999

2.提交 flink 作业
[hadoop@cdh01 flink-1.6.3]$ bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname cdh01 --port 9999

在这里插入代码片

3.输入测试数据

[hadoop@cdh01 ~]$ nc -l 9999
flink
flink
flink

4.查看运行截图.从 TaskManager 界面的 stdout 选项查看输出结果。
在这里插入图片描述

2.5 关闭 yarn cluster

bin/yarn application -kill application_1548710328453_0001
发布了3 篇原创文章 · 获赞 86 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qq285016127/article/details/105132158