0


flink on yarn集群部署模式

介绍

YARN 上部署的过程是:客户端把 Flink 应用提交给 Yarn 的ResourceManager, Yarn 的 ResourceManager 会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配TaskManager 资源。
集群部署模式分为

1.会话模式

2.单作业模式

3.应用模式

本文只介绍会话模式

1.相关准备和配置

在 Flink1.8.0 之前的版本,想要以 YARN 模式部署 Flink 任务时,需要 Flink 是有 Hadoop 支持的。从 Flink 1.8 版本开始,不再提供基于 Hadoop 编译的安装包,若需要Hadoop 的环境支持,需要自行在官网下载 Hadoop 相关版本的组件flink-shaded-hadoop-2-uber-2.7.5-10.0.jar, 并将该组件上传至 Flink 的 lib 目录下。在 Flink 1.11.0 版本之后,增加了很多重要新特性,其中就包括增加了对Hadoop3.0.0 以及更高版本Hadoop 的支持,不再提供flink-shaded-hadoop-*jar 包,而是通过配置环境变量完成与 YARN 集群的对接。

下载flink安装包:Downloads | Apache Flink

本文选中flink版本为flink-1.14.0-bin-scala_2.12.tgz

将flink-1.14.0-bin-scala_2.12.tgz上传到/opt/software下然后解压到

/opt/module下

tar -zxvf /opt/software/flink-1.14.0-bin-scala_2.12.tgz -C /opt/module

环境变量配置

vim /etc/profile

增加环境变量配置如下,这里必须保证设置了环境变量

HADOOP_CLASSPATH

:(一定要配)

hadoop

export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=hadoop classpath

flink

export FLINK_HOME=/opt/module/flink-1.14.0
export PATH=$PATH:$FLINK_HOME/bin

修改完使用以下命令生效

source /etc/profile

flink配置修改

进入 conf 目录,修改 flink-conf.yaml 文件

cd $FLINK_HOME

vim conf/flink-conf.yaml

修改以下配置

jobmanager.memory.process.size: 1600m

taskmanager.memory.process.size: 1728m

taskmanager.numberOfTaskSlots: 1

parallelism.default: 1

参数意义如下

测试

会话模式执行(yarn session)

YARN 的会话模式与独立集群略有不同,需要首先申请一个 YARN 会话(YARN session) 来启动 Flink 集群。

启动集群

执行脚本命令向 YARN 集群申请资源,开启一个 YARN 会话,启动 Flink 集群。

[root@master sofatware]# start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host master.
Starting taskexecutor daemon on host Slave1.
Starting taskexecutor daemon on host Slave2.

yarn-session.sh -nm test

可用参数解读:

-d:分离模式,如果你不想让 Flink YARN 客户端一直前台运行,可以使用这个参数,即使关掉当前对话窗口,YARN session 也可以后台运行。
-jm(--jobManagerMemory):配置 JobManager 所需内存,默认单位 MB。
-nm(--name):配置在 YARN UI 界面上显示的任务名。
-qu(--queue):指定 YARN 队列名。
-tm(--taskManager):配置每个 TaskManager 所使用内存。

注意:Flink1.11.0 版本不再使用-n 参数和-s 参数分别指定 TaskManager 数量和 slot 数量, YARN 会按照需求动态分配TaskManager 和 slot。所以从这个意义上讲,YARN 的会话模式也不会把集群资源固定,同样是动态分配的。

YARN Session 启动之后会给出一个web UI 地址以及一个 YARN application ID,如下所示,用户可以通过web UI 或者命令行两种方式提交作业。

YARN Session 启动之后会给出一个web UI 地址以及一个 YARN application ID,如下所示,用户可以通过web UI 或者命令行两种方式提交作业。

提交任务

执行以下命令将该任务提交到已经开启的 Yarn-Session 中运行。

首先启动nc监听

nc -lk 7777

然后执行命令

flink run -c Test.Stream_Word_count_Two -p 2 ./FLINK_TEST-1.0.0.jar --port 7777 --host maste

通过 Flink 的 Web UI 页面查看提交任务的运行情况

测试 helloworld看拆分情况

标签: flink 大数据

本文转载自: https://blog.csdn.net/m0_73814022/article/details/135657858
版权归原作者 抽着烟吃鸡 所有, 如有侵权,请联系我们删除。

“flink on yarn集群部署模式”的评论:

还没有评论