本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Flink并行度配置方式和执行级别
Flink设置并行度的几种方式
- 系统设置
修改配置文件: /conf/flink-conf.yaml的parallelism.default数值
- 客户端CLI设置(或webui直接输入数量)
./bin/flink run -p 4 或
- 全局设置
env.setParallelism(3);
- 算子设置(部分设置)
dataStream .map(new MapFunctionClass()).setParallelism(4) .keyBy(0) .window(TumblingEventTimeWindows.of(Time.seconds(5))) .apply(new WindowFunctionClass()).setParallelism(8) .print().setParallelism(2);
- 最大并行度设置
全局设置: 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数量不满足要求,会导致任务没有足够的资源分配。