文章简介
在 YARN 模式下部署 Flink 需要完成一系列环境配置和集群管理操作。首先,在各节点配置环境变量,包括 HADOOP_CONF_DIR、YARN_CONF_DIR 和 HADOOP_CLASSPATH,并在 profile 中加入 Hadoop 与 Flink 的路径。随后修改 yarn-site.xml,指定 ResourceManager 地址,并关闭虚拟内存与物理内存检测以避免资源限制问题。集群中每台节点(h121、h122、h123)需保持配置一致,可通过 rsync 工具同步。
1. 环境变量配置
vim /etc/profile
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
退出保存,并刷新环境变量。
2. yarn-site.xml 配置
cd /opt/servers/hadoop-2.9.2/etc/hadoop
vim yarn-site.xml
添加以下配置:
<!-- YRAN 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>
3. 同步配置
需要在 h121、h122、h123 三台机器上配置相同的内容,可通过 rsync 工具同步。
4. 服务停止流程
停止Hadoop集群:
cd /opt/servers/hadoop-2.9.2/sbin
stop-all.sh
停止YARN集群(在h123节点执行):
start-yarn.sh
停止Flink(在h121节点执行):
./stop-cluster.sh
5. 服务启动流程
启动Hadoop集群:
start-all.sh
启动YARN集群(在h123节点执行):
start-yarn.sh
6. 申请资源
查看帮助:
cd /opt/servers/flink-1.11.1/bin/
./yarn-session.sh -h
申请资源命令:
./yarn-session.sh -n 2 -tm 800 -s 1 -d
参数说明:
-n: 申请2个容器(TaskManager数量)-s: 每个TaskManager的Slots数量-tm: 每个TaskManager的内存大小-d: 后台方式运行
提交Flink作业:
./flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 /opt/wzk//WordCount.jar
参数说明:
-m: JobManager的地址-yn: TaskManager的个数-yjm: JobManager内存-ytm: TaskManager内存
停止yarn-cluster:
yarn application -kill application_xxxxxxxxx
7. yarn-session 模式说明
使用 yarn-session 会启动两个必要服务 JobManager 和 TaskManager,客户端通过 Flink run 提交作业。yarn-session 会一直启动,持续接收客户端提交的作业。这种方式创建的 Flink 集群会独占资源,如果有大量作业较小、工作时间短,适合使用这种方式,减少资源创建的时间。