Flink1.18 & YARN 会话模式

YARN上部署的过程:
客户端把 Flink 应用提交给 Yarn 的 ResourceManager,Yarn 的
ResourceManager 会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署 JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配 TaskManager 资源。
对于YARN来说,Flink集群最终只是运行在它之上的一个应用
本文基于 Hadoop-3.3.6分布式集群搭建步骤

1.修改Hadoop环境变量,增加一些

vi /etc/profile.d/hadoop.sh

修改为如下:

export HADOOP_HOME=/usr/hadoop/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`

刷新

source /etc/profile

2.启动Hadoop集群

1.在hadoop02节点启动HDFS

sbin/start-dfs.sh

2.在配置了ResourceManager的节点(hadoop03)启动YARN

位于$HADOOP_HOME/sbin/start-yarn.sh

sbin/start-yarn.sh

3.会话模式部署

1.执行Flink脚本向YARN集群申请资源,开启一个YARN会话

/usr/flink/flink-1.18.0/bin/yarn-session.sh -d -nm coreqi

基于YARN的会话模式脚本
YARN Session 启动之后会给出一个 Web UI 地址以及一个 YARN application ID,用户可以通过 Web UI 或者命令行两种方式提交作业。

4.提交作业

参考地址:Flink 提交作业的几种方式
需要注意的是

  • Web UI的访问地址是YARN Session 启动之后给出的那个 Web UI 地址
  • 命令行提交无需指定 -m 的参数了,也就是客户端可以自行确定 JobManager 的地址,当然也可以通过-m 或者-jobmanager 参数指定JobManager 的地址,JobManager 的地址在 YARN Session 的启动页面中可以找到。

任务提交成功后,可在 YARN 的 Web UI 界面查看运行情况,也可以通过 Flink 的 Web UI 页面查看提交任务的运行情况。

我们创建的 Yarn-Session 实际上是一个 Yarn 的 Application,并且有唯一的 Application ID。

5.关闭

1.在YARN管理页面杀掉这个Flink应用即可。

http://192.168.58.131:8088/cluster

2.通过启动时提示的关闭命令

echo "stop" | /usr/flink/flink-1.18.0/bin/yarn-session.sh -id application_1705543347998_0002
posted @ 2024-01-17 20:58  SpringCore  阅读(113)  评论(0编辑  收藏  举报