Flink的框架

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 操作,並行度相同

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章