Flink on YARN時,如何確定TaskManager數

答案寫在最前面:Job的最大并行度除以每個TaskManager分配的任務槽數咧栗。

問題

Flink 1.5 Release Notes中逆甜,有這樣一段話,直接上截圖致板。

這說明從1.5版本開始交煞,Flink on YARN時的容器數量——亦即TaskManager數量——將由程序的并行度自動推算,也就是說flink run腳本的-yn/--yarncontainer參數不起作用了斟或。那么自動推算的規(guī)則是什么呢素征?要弄清楚它,先來復習Flink的并行度(Parallelism)和任務槽(Task Slot)萝挤。

并行度(Parallelism)

與Spark類似地御毅,一個Flink Job在生成執(zhí)行計劃時也劃分成多個Task。Task可以是Source怜珍、Sink端蛆、算子或算子鏈(算子鏈有點意思,之后會另寫文章詳細說的)绘面。Task可以由多線程并發(fā)執(zhí)行欺税,每個線程處理Task輸入數據的一個子集侈沪。而并發(fā)的數量就稱為Parallelism揭璃,即并行度。

Flink程序中設定并行度有4種級別亭罪,從低到高分別為:算子級別瘦馍、執(zhí)行環(huán)境(ExecutionEnvironment)級別、客戶端(命令行)級別应役、配置文件(flink-conf.yaml)級別情组。實際執(zhí)行時,優(yōu)先級則是反過來的箩祥,算子級別最高院崇。簡單示例如下。

  • 算子級別
dataStream.flatMap(new SomeFlatMapFunction()).setParallelism(4);
  • 執(zhí)行環(huán)境級別
streamExecutionEnvironment.setParallelism(4);
  • 命令行級別
bin/flink -run --parallelism 4 example-0.1.jar
  • flink-conf.yaml級別
parallelism.default: 4

任務槽(Task Slot)

Flink運行時由兩個組件組成:JobManager與TaskManager袍祖,與Spark Standalone模式下的Master與Worker是同等概念底瓣。從官網抄來的圖如下所示,很容易理解蕉陋。


JobManager和TaskManager本質上都是JVM進程捐凭。為了提高Flink程序的運行效率和資源利用率拨扶,Flink在TaskManager中實現了任務槽(Task Slot)。任務槽是Flink計算資源的基本單位茁肠,每個任務槽可以在同一時間執(zhí)行一個Task患民,而TaskManager可以擁有一個或者多個任務槽。

任務槽可以實現TaskManager中不同Task的資源隔離垦梆,不過是邏輯隔離匹颤,并且只隔離內存,亦即在調度層面認為每個任務槽“應該”得到taskmanager.heap.size的N分之一大小的內存托猩。CPU資源不算在內惋嚎。

TaskManager的任務槽個數在使用flink run腳本提交on YARN作業(yè)時用-ys/--yarnslots參數來指定,另外在flink-conf.yaml文件中也有默認值taskManager.numberOfTaskSlots站刑。一般來講另伍,我們設定該參數時可以將它理解成一個TaskManager可以利用的CPU核心數,因此也要根據實際情況(集群的CPU資源和作業(yè)的計算量)來確定绞旅。

確定TaskManager數

以Flink自帶示例中簡化的WordCount程序為例:

    // 執(zhí)行環(huán)境并行度設為6
    env.setParallelism(6);
    // Source并行度為1
    DataStream<String> text = env
      .readTextFile(params.get("input"))
      .setParallelism(1);
    DataStream<Tuple2<String, Integer>> counts = text
      .flatMap(new Tokenizer())
      .keyBy(0)
      .sum(1);
    counts.print();

用--yarnslots 3參數來執(zhí)行摆尝,即每個TaskManager分配3個任務槽。TaskManager因悲、任務槽和任務的分布將如下圖所示堕汞,方括號內的數字為并行線程的編號。

由圖中可以看出晃琳,由于算子鏈機制的存在讯检,KeyAgg與Sink操作鏈接在了一起,作為一個Task來執(zhí)行卫旱。

Flink允許任務槽共享人灼,即來自同一個Job的不同Task的Sub-Task(理解為Task的子集就行)進入同一個槽位,因此在圖中也可以見到任務槽X中同時存在FlatMap[X]與KeyAgg[X]+Sink[X]顾翼。任務槽共享有兩點好處:

  • 能夠讓每個Task的Sub-Task都均攤到不同的TaskManager投放,避免負載傾斜。
  • 不需要再計算App一共需要起多少個Task适贸,因為作業(yè)需要的任務槽數量肯定等于Job中最大的并行度灸芳。

所以,可以得出Flink on YARN時拜姿,TaskManager的數量就是:max(parallelism) / yarnslots(向上取整)烙样。例如,一個最大并行度為20蕊肥,每個TaskManager有兩個任務槽的作業(yè)谒获,就會啟動10個TaskManager,如Web UI所示。

參考:http://www.reibang.com/p/5b670d524fa5

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末究反,一起剝皮案震驚了整個濱河市寻定,隨后出現的幾起案子,更是在濱河造成了極大的恐慌精耐,老刑警劉巖狼速,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異卦停,居然都是意外死亡向胡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門惊完,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僵芹,“玉大人,你說我怎么就攤上這事小槐∧磁桑” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵凿跳,是天一觀的道長件豌。 經常有香客問我,道長控嗜,這世上最難降的妖魔是什么茧彤? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮疆栏,結果婚禮上曾掂,老公的妹妹穿的比我還像新娘。我一直安慰自己壁顶,他們只是感情好珠洗,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著博助,像睡著了一般险污。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上富岳,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音拯腮,去河邊找鬼窖式。 笑死,一個胖子當著我的面吹牛动壤,可吹牛的內容都是我干的萝喘。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阁簸!你這毒婦竟也來了爬早?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤启妹,失蹤者是張志新(化名)和其女友劉穎筛严,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體饶米,經...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡桨啃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了檬输。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片照瘾。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丧慈,靈堂內的尸體忽然破棺而出析命,到底是詐尸還是另有隱情,我是刑警寧澤逃默,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布碳却,位于F島的核電站,受9級特大地震影響笑旺,放射性物質發(fā)生泄漏昼浦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一筒主、第九天 我趴在偏房一處隱蔽的房頂上張望关噪。 院中可真熱鬧,春花似錦乌妙、人聲如沸使兔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虐沥。三九已至,卻和暖如春泽艘,著一層夾襖步出監(jiān)牢的瞬間欲险,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工匹涮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留天试,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓然低,卻偏偏與公主長得像喜每,于是被迫代替她去往敵國和親务唐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內容