1. Flink的并发执行
本章描述如何在Flink中配置程序的并发执行,一个Flink程序可以由不同的task(如:transformations/opterators,data sources及data sinks等)组成,一个task会分发到多个并发实例中运行,并且每个并发实例处理task的部分输入数据集。一个task的并发实例数叫做parallelism。在这之前有必要先了解下slot和parallelism的关系。
slot和parallelism
1.slot是指taskmanager的并发执行能力
taskmanager.numberOfTaskSlots:3
每一个taskmanager中的分配3个TaskSlot,3个taskmanager一共有9个TaskSlot
2.parallelism是指taskmanager实际使用的并发能力
parallelism.default:1
运行程序默认的并行度为1,9个TaskSlot只用了1个,有8个空闲。设置合适的并行度才能提高效率。
slot和parallelism总结
1.slot是静态的概念,是指taskmanager具有的并发执行能力
2.parallelism是动态的概念,是指程序运行时实际使用的并发能力
3.设置合适的parallelism能提高运算效率,太多了和太少了都不行
2.parallelism的设置
parallelism是可配置、可指定的。看下图:
parallelism的设定方式:
- 算子(operator)级别:可以通过设置flink的编程API修改过并行度;
- 运行环境级别:可以通过设置executionEnvironmentk的方法修改并行