本文探讨Flink on YARN 单一作业提交模式下的并发以及Task Manager等特性。
Flink on YARN支持两种模式,一种是预先在YARN上启动一个long-running的Flink集群,所有的Flink作业都会提交到这个集群中,共享Flink集群资源。另一种模式是单独在YARN上运行单一的Flink 作业,每个作业需要的资源由YARN负责分配。本文总结下第二种模式下的并发配置和TaskManager拉起情况。
并发度的配置
Parallel的配置有好几种方式,可以配置全局默认参数,可以在client端配置参数,可以配置operator参数等等。由于不是本文讨论的重点,因此可以参考Flink官网.
TaskManager slots number配置
这个参数是配置一个TaskManager有多少个并发的slot数。有两种配置方式:
- taskmanager.numberOfTaskSlots. 在conf/flink-conf.yaml中更改,默认值为1,表示默认一个TaskManager只有1个task slot.
- 提交作业时通过参数配置。--yarnslots 1,表示TaskManager的slot数为1.
TaskManager的个数
注意: Per job模式提交作业时并不像session模式能够指定拉起多少个TaskManager,TaskManager的数量是在提交作业时根据并发度动态计算。
首先,根据设定的operator的最大并发度计算,例如,如果作业中operator的最大并发度为10,则 Parallelism/numberOfTaskSlots为向YARN申请的TaskManager数。
例如:如下作业,Parallelism为10,numberOfTaskSlots为1,则TaskManager为10。
1 slot
如果numberOfTaskSlots为3,则TaskManager为4.
3 slots
网友评论