Flink并行度配置方式和执行级别

232 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Flink并行度配置方式和执行级别

Flink设置并行度的几种方式

  1. 系统设置

修改配置文件: /conf/flink-conf.yaml的parallelism.default数值

  1. 客户端CLI设置(或webui直接输入数量)

./bin/flink run -p 4 或 在这里插入图片描述

  1. 全局设置

env.setParallelism(3); 

  1. 算子设置(部分设置)

dataStream .map(new MapFunctionClass()).setParallelism(4) .keyBy(0) .window(TumblingEventTimeWindows.of(Time.seconds(5))) .apply(new WindowFunctionClass()).setParallelism(8) .print().setParallelism(2);

  1. 最大并行度设置

全局设置: env.setMaxParallelism(8)  算子设置(部分设置) print().setParallelism(2) 默认的最大并行度是近似于operatorParallelism + (operatorParallelism / 2),下限是127(2^7-1),上线是32768(2 ^15).

Flink并行度配置级别

算子级别 > 全局env > 客户端CLI > 系统配置文件

注意:

  • setParallelism() ==必须小于== setMaxParallelism()设置的最大并行度。
  • 某些算子无法设置并行度,如:socketTextStream,本地模式并行度默认为cpu核数。
  • 并行度改变会影响影响task数量,如果taskslots数量不满足要求,会导致任务没有足够的资源分配。