Flink1.8 on yarn 环境搭建及使用

一、下载 flink包

官网下载flink-1.8.1-bin-scala_2.11.tgz,然后解压
下载地址 https://flink.apache.org/downloads.html 或 https://www.apache.org/dyn/closer.lua/flink/

Flink1.8 on yarn 环境搭建及使用_第1张图片

二、下载 hadoop依赖包

官网下载flink-shaded-hadoop-2-uber-2.8.3-7.0.jar
拷贝到${flink_home}/lib/目录下
下载地址 https://flink.apache.org/downloads.html

Flink1.8 on yarn 环境搭建及使用_第2张图片

三、提交任务到yarn

方式一:独立的Job

cd ${flink_home}/bin

flink run -m yarn-cluster -yn 1 -p 2 -yjm 1024 -ytm 1024 -ynm FlinkOnYarnSession -d -c com.gjm.Test /home/test.jar

说明:

  • -c 类名
  • /home/test.jar 包名
  • -yn TaskManager的数量,已作废使用了
  • -p 并发数,也就是使用的槽数
  • -yjm JobManager的内存大小
  • -ytm 每个TaskManager的内存大小
  • -ynm Yarn Application显示的任务名称

Flink1.8 on yarn 环境搭建及使用_第3张图片

方法二:共用的yarn-session

(1)启动集群

cd ${flink_home}/bin

./start-cluster.sh

(2)启动yarn-session

./yarn-session.sh -n 2 -jm 1024 -tm 2048 -s 2 -nm FlinkOnYarnSession -d

说明:

  • -n TaskManager的数量
  • -jm JobManager的内存大小
  • -tm 每个TaskManager的内存大小
  • -s 每个TM的槽数

(3)提交任务

flink run -p 2 -c com.gjm.Test /home/test.jar

说明:

  • -p 并发数,也就是使用的槽数

四、停止任务

方式一:推荐

(1)获取ApplicationId

yarn application -list

(2)获取JobId

flink list -yid ${ApplicationId}

(3)停止任务

flink cancel ${JobId} -yid ${ApplicationId}

方式二:强制停止

(1)获取ApplicationId

yarn application -list

(2)强制停止

yarn application -kill ${ApplicationId}

五、总结

  1. 两种提交方式的区别
  • 共用的yarn-session

(1)在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里提交。这个flink集群会常驻在yarn集群中,除非手工停止。经实验发现,实际任务使用的资源,可以超过yarn-session申请开辟的内存资源,也就是说yarn-session申请的参数参数,似乎与后续任务实际申请的资源没什么关系??

(2)共享Dispatcher和Resource Manager,这里的RM是Flink的RM,不是Yarn的RM。

(3)共享资源,即TaskExecutor。

(4)适合规模小,执行时间短的作业。

  • 独立的Job

(1)每次提交都会创建一个新的flink集群,任务之间互相独立,互不影响,方便管理。任务执行完成之后创建的集群也会消失。

(2)独享Dispatcher和Resource Manager,这里的RM是Flink的RM,不是Yarn的RM。

(3)TaskExecutor 按需要申请资源。

(4)适合执行时间较长的大作业。

【一起学习】

你可能感兴趣的:(Flink,flink1.8,yarn)