task的parallelism可以在Flink的不同级别上指定。四种级别是:算子级别、执行环境(ExecutionEnvironment)级别、客户端(命令行)级别、配置文件(flink-conf.yaml)级别
* 每个operator、data source或者data sink都可以通过调用setParallelism()
方法来指定
* 运行环境的默认并发数可以通过调用setParallelism()
方法来指定。env.setParallelism(3);运行环境的并发数可以被每个算子确切的并发数配置所覆盖。
* 对于CLI客户端,并发参数可以通过-p来指定
* 影响所有运行环境的系统级别的默认并发度可以在
./conf/flink-conf.yaml
的parallelism.defaul
项中指定。不建议
当然,你也可以设置最大的并行度
* 你可以通过调用setMaxParallelism()方法来设置最大并发度。
Flink如何确定TaskManager个数?答案:Job的最大并行度除以每个TaskManager分配的任务槽数
Flink on YARN时,TaskManager的数量就是:max(parallelism) / yarnslots
(向上取整)。例如,一个最大并行度为10,每个TaskManager有两个任务槽的作业,就会启动5个TaskManager
参考: