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
參考: