Flink专题六:Flink 中并行度的概念及使用

由于工作需要最近学习flink
现记录下Flink介绍和实际使用过程
这是flink系列的第六篇文章

Flink 中并行度的概念及使用

  • 并行度
  • Slots
    • Slots概念
    • slot共享
  • 并行度的使用方法
  • 并行度优先级

并行度

一个任务(Source、Transformation、Sink)的并行实例(线程〉数目称为该任务的并行度

Flink专题六:Flink 中并行度的概念及使用_第1张图片

Slots

Slots概念

在flink中,把对资源的最小抽象称作slot,可以理解为是资源的最小管理单位,它是TaskManager资源的一个子集。通过slot,flink将资源进行有效的划分和管理。注意,CPU资源并不是每个slot所独享的,而是共享的。
每个TaskManager拥有几个slot,就代表这个TaskManager能够提供的并发能力就是几,但实际的并行度也有可能小于这个数字。
Flink专题六:Flink 中并行度的概念及使用_第2张图片

slot共享

flink中允许一个任务的不同子任务共享同一个slot,也允许不同任务的不同子任务共享同一个slot,前提是这些子任务不属于同一种操作类型的任务。通过slot共享,能够让资源密集型子任务(Source,Map)和资源密集型子任务(KeyBy/Window/Apply)能够充分利用资源,避免闲的闲死,忙的忙死。
Flink专题六:Flink 中并行度的概念及使用_第3张图片

并行度的使用方法

Operator Level (算子层面
Flink专题六:Flink 中并行度的概念及使用_第4张图片
Execution Environment Level (执行环境层面
在这里插入图片描述
Client Level (客户层面
客户端提交 Job到Flink时-p参数设置:

./bin/flink run -p 10 WordCount- java . jar

System Level (系统层面

flink-conf. yaml文件
使用parallelism.default属性来设置所有执行环境的默认并行度。

并行度优先级

一个任务的并行度设置包含下面4个层面:

  1. Operator Level (算子层面〉
  2. Execution Environment Level (执行环境层面〉
  3. Client Level (客户 层面〉
  4. System Level (系统层面)

优先级为 Operator Level> Execution Environment Level>Client Level>System Level

你可能感兴趣的:(flink,flink,java,大数据,big,data)