Starting a flink on yarn in job mode: and the step10 is exchang the data, similar as above
核心問題:
1.任務是什麼?
代碼中定義的每一步操作(算子,operater) 就是一個任務
算子可以設置設置並行度(像key by 這種不是算子操作,不可以設置),所以每一個操作都可以拆分成多個並行子任務
Flink可以將前後不同的任務合併起來(因爲不需要傳輸的話可以降低成本)
2.slot是什麼?一段代碼到底需要多少個slot來執行?一段代碼到底需要多少個slot來執行?
slot是擁有TaskManager的計算資源的一個子集,一個任務必須只在一個slot上執行
每一個算子的並行任務,必須執行在不同的slot上
如果是不同算子的任務,可以共享slot
一般情況,一段代碼需要的slot的數量,就是並行度最大的算子的並行度
3.並行度和slot之間的關係?
並行度和任務有關,就是每一個算子擁有並行任務的數量 ,是一個動態的概念
slot 數量只和TM配置有關,是一個靜態的概念
4.什麼樣的任務能進行合併?
one - to - one 操作,並行度相同