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

参数意义如下

flink on yarn集群部署模式 

测试 

 会话模式执行(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 或者命令行两种方式提交作业。

flink on yarn集群部署模式

提交任务

执行以下命令将该任务提交到已经开启的 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 页面查看提交任务的运行情况

flink on yarn集群部署模式flink on yarn集群部署模式

测试 helloworld看拆分情况

flink on yarn集群部署模式

flink on yarn集群部署模式

flink on yarn集群部署模式

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/58b496f803.html