flink on yarn

在flink on yarn模式中

flink yarn-session的两种提交方式

1.公用一个yarn-session

在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里提交。这个flink集群会常驻在yarn集群中,除非手工停止。

2.每个job提供一个yarn-session

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

第一种方式

1.首先启动yarn session,并且会启动Flink的两个必要服务:JobManager和TaskManagers,然后你可以向集群提交作业。同一个Session中可以提交多个Flink作业。

线上脚本: bin/yarn-session.sh -n 7 -s 8 -jm 3072 -tm 32768 -qu root.*.*-nm *-* -d

 

其中申请7个taskManager 每个8核 每个taskmanager有32768M内存 

这样我们就启动了一个yarn-session 就可以提交flink任务了。

2.我们可以使用./bin/flink脚本提交作业

线上脚本: bin/flink run -c **** jars/**** test

-c 是全类名

3.启动之后如何停止运行的程序

关闭jobmanager

线上脚本:bin/flink cancel -yid application_1535964220442_0034

通过cancel命令进行停止

或者通过yarn application -kill applicationId 直接将yarn-session停止掉

或者通过 flink list 获得 jobId , bin/flink cancel  jobId 

第二种方式

 

nohup bin/flink run -m yarn-cluster -yn 7 -s hdfs:///flink/savepoints/savepoint-* -c *.* jars/**** test > Flink-RealtimeDAU.log 2>&1 &

其中的-yn是指TaskManager的个数,必须指定。

 

总结

Flink提供在Yarn上两种运行模式:第一种方式 Session-Cluster的资源在启动集群时就定义完成,后续所有作业的提交都共享该资源,作业可能会互相影响,因此比较适合小规模短时间运行的作业,对于第二种方式而言,所有作业的提交都是单独的集群,作业之间的运行不受影响(可能会共享CPU计算资源),因此比较适合大规模长时间运行的作业。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章