Flink_Flink On Yarn_flink资源slots 与 Yarn中container, 以及 cores 之间的关系

Based on Flink 1.10.1

 

本文主要讲解下 flink 中 flink-conf.yaml 中有关 slots 的 配置,与 Yarn 中 container 以及 cores 的相应关系。

 

主要涉及以下两个参数

 

# The number of task slots that each TaskManager offers. Each slot runs one parallel pipeline.

taskmanager.numberOfTaskSlots: 2

解释:每个 TaskManager 中 slots 的数量。 该 slot 数量 与 YARN 中 core 一一对应。

 

# The parallelism used for programs that did not specify and other parallelism.

parallelism.default: 2

解释:当不做指定的时候,默认启动的slot 的数量

 

在 yarn 中 (1.flink single job   2. flink session )提交一个 flink 任务, container 数量计算方式如下

container.num ==  taskmanager.num ==  ( parallelism.default  /  taskmanager.numberOfTaskSlots )

 

 

 

taskmanager.numberOfTaskSlots: 1

parallelism.default: 2

看下上面配置在 flink on yarn session 下的表现, 提交一个 streaming wordcount 程序 

flink run -d --class flink.FlinkTest flink_demo-1.0-SNAPSHOT-shaded.jar 

-d 表示提交后,后台退出

 

Flink_Flink On Yarn_flink资源slots 与 Yarn中container, 以及 cores 之间的关系_第1张图片

我们先看下YARN 的资源管理界面,占用了 3个core,  3个container。

container 为   3 ==  1 (AppMaster + JobManger) +  2 (parallelism.default / taskmanager.numberOfTaskSlots ) ->TaskManager数量

 

Flink_Flink On Yarn_flink资源slots 与 Yarn中container, 以及 cores 之间的关系_第2张图片

可以清楚的从上面的界面看到

taskmanager 为 2, task slots 为2

 

 

 

 

你可能感兴趣的:(Flink)