文章概述
本文详细介绍了在 YARN 模式下部署 Flink 的完整流程,包括环境变量配置、yarn-site.xml 配置、资源申请和任务提交等。
环境变量配置
在 /etc/profile 中配置:
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
yarn-site.xml 配置
需要添加以下关键配置:
<!-- YARN Flink 相关 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>h123.wzk.icu:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>h123.wzk.icu:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>h123.wzk.icu:8031</value>
</property>
同步配置
需要在 h121、h122、h123 三台节点上保持配置一致,可使用 rsync 工具同步。
服务管理
停止服务
# 停止 Hadoop
cd /opt/servers/hadoop-2.9.2/sbin
stop-all.sh
# 停止 YARN(h123 节点执行)
start-yarn.sh
# 停止 Flink(h121 节点执行)
./stop-cluster.sh
启动服务
# 启动 Hadoop(h121 节点)
start-all.sh
# 启动 YARN(h123 节点)
start-yarn.sh
申请资源
yarn-session.sh 用法
./yarn-session.sh -n 2 -tm 800 -s 1 -d
参数说明:
-n: 申请 2 个容器(TaskManager 数量)-s: 每个 TaskManager 的 Slots 数量-tm: 每个 TaskManager 的内存大小-d: 后台方式运行
注意:即使写 -n 2,实际会申请 3 个 Container,因为 ApplicationMaster 和 JobManager 占用一个额外容器。
提交运行
方式一:会话模式
先申请资源,再提交任务:
./yarn-session.sh -n 2 -tm 800 -s 1 -d
方式二:直接提交
./flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 /opt/wzk//WordCount.jar
参数说明:
-m: JobManager 地址-yn: TaskManager 个数
停止 yarn-cluster
yarn application -kill application_xxxxxxxxx
配置要点总结
| 配置项 | 说明 |
|---|---|
| HADOOP_CONF_DIR | Hadoop 配置目录 |
| YARN_CONF_DIR | YARN 配置目录 |
| HADOOP_CLASSPATH | Hadoop 类路径 |
| yarn.nodemanager.pmem-check-enabled | 关闭物理内存检查 |
| yarn.nodemanager.vmem-check-enabled | 关闭虚拟内存检查 |
| yarn.resourcemanager.address | ResourceManager 地址 |
文章通过详细的步骤演示了 Flink on YARN 的完整部署流程,包括环境准备、配置修改、服务启停和资源申请等关键环节。