Flink 分布式運(yùn)行環(huán)境(隨意翻譯---不一定準(zhǔn)確)

原文鏈接:https://ci.apache.org/projects/flink/flink-docs-release-1.3/concepts/runtime.html#task-slots-and-resources

Tasks and Operator Chains(任務(wù)及操作鏈)

在分布式環(huán)境下尿招,F(xiàn)link將操作的子任務(wù)鏈在一起組成一個任務(wù),每一個任務(wù)在一個線程中執(zhí)行念秧。將操作鏈在一起時一個不錯的優(yōu)化:它減少了線程間的切換和緩沖糖埋,提升了吞吐量同時減低了時延匿级。這些鏈?zhǔn)叫袨槭强膳渲玫模斍檎堃?https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/datastream_api.html#task-chaining-and-resource-groups

下圖中的示例以5個子任務(wù)來運(yùn)行,因此有5個并發(fā)的線程


JobManagers, Task Managers, Clients

Flink的運(yùn)行時環(huán)境由兩個進(jìn)程組成:

JobManager:JobManager有時也叫Master冤留,主要是協(xié)調(diào)分布式運(yùn)行恩掷。他們調(diào)度任務(wù)倡鲸,協(xié)調(diào)checkpoint,協(xié)調(diào)失敗任務(wù)的恢復(fù)等等

一個Flink集群中至少有一臺JobManager節(jié)點(diǎn)黄娘。高可用性的集群中將會有多臺JobManager節(jié)點(diǎn)峭状,其中有一臺的leader節(jié)點(diǎn),其他的是備節(jié)點(diǎn)逼争。

TaskManager:TaskManager有時也叫Workers优床,TaskManager主要是執(zhí)行dataflow中的任務(wù),緩存數(shù)據(jù)以及進(jìn)行數(shù)據(jù)流的交換誓焦。

每一個集群中至少有一個TaskManager胆敞。

JobManager和TaskManager可以有多種啟動方式:直接在物理機(jī)上以standalone集群的形式啟動,在容器中啟動以及通過資源管理框架YARN或者M(jìn)esos來啟動杂伟。TaskManager與JobManager進(jìn)行通信移层,發(fā)送心跳信息來告知JobManager自己還處于活躍狀態(tài),同時接受JobManager分配的任務(wù)赫粥。

Client并不是運(yùn)行時環(huán)境或者程序運(yùn)行時的一部分观话,而是用來準(zhǔn)備數(shù)據(jù)流和將數(shù)據(jù)流發(fā)送到JobManager中。之后client可以斷開連接越平,或者繼續(xù)保持連接來接收處理報告匪燕。Client要么作為觸發(fā)執(zhí)行的Java/Scala程序的一部分蕾羊,或者是在命令行進(jìn)程./bin/flink run …中


TaskSlots and Resources

每一個worker(TaskManager)是一個JVM進(jìn)程,并在不同的線程中運(yùn)行著一個或者多個子任務(wù)帽驯。為了控制每個worker可接受的最大任務(wù)數(shù)龟再,每個worker需要有個task slots(任務(wù)槽)(至少有一個槽)。

每一個task slot代表著TaskManager的一個固定的資源子集尼变,例如一個TaskManager有三個slot的話利凑,意味著該TaskManager將會分配1/3的資源到每一個slot中去。將資源納入槽中意味著一個任務(wù)不會跟作業(yè)中的其他任務(wù)競爭托管內(nèi)存嫌术,而是會保留一定的托管內(nèi)存哀澈。

注意:現(xiàn)在的slot還沒有進(jìn)行CPU的隔離,當(dāng)前僅僅進(jìn)行了托管內(nèi)存的隔離度气。

通過調(diào)整slot的數(shù)量割按,用戶可以自定義多少個任務(wù)之間彼此隔離。一個TaskManager有一個slot意味著每一個任務(wù)運(yùn)行在一個獨(dú)立的JVM進(jìn)程中磷籍。有多個slot意味著多個任務(wù)共享一個JVM進(jìn)程适荣,共享JVM進(jìn)程的任務(wù)之間共享TCP連接和心跳信息,同時共享數(shù)據(jù)集和數(shù)據(jù)結(jié)構(gòu)院领,從而節(jié)省了每個任務(wù)的開銷弛矛。


默認(rèn)情況下,F(xiàn)link允許subtask(子任務(wù))之間共享slot比然,即使不是來自同一個task(任務(wù))丈氓,只要這些subtask(子任務(wù))來自同一個作業(yè)。允許slot共享的有兩個好處:

1强法、Flink集群需要與任務(wù)并發(fā)度一樣的的task slot(任務(wù)槽)万俗,不在需要再去計(jì)算一個程序中總共包含了多少了task(任務(wù))。

2饮怯、使得獲取更好的資源利用率變得更加容易该编,沒有slot共享的話,非密集型的source/map子任務(wù)將會拆分成與密集型的window子任務(wù)一樣多的資源硕淑。有了slot共享课竣,就可以提高任務(wù)的并發(fā)數(shù),從2個到6個置媳,充分利用了槽的資源于樟,也保證了子任務(wù)公平地分布在TaskManager集群中。


API中還包括了一個資源組機(jī)制拇囊,可以用來防止不需要的slot共享迂曲。資源組資料:https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/datastream_api.html#task-chaining-and-resource-groups

根據(jù)經(jīng)驗(yàn)法則,最好的slot數(shù)量配置是跟CPU核數(shù)一致寥袭,對于超線程路捧,每個slot可以分配兩個或者更多的硬件線程上下文关霸。

StateBackends

? ? ? ?存儲key/value鍵值索引的切確數(shù)據(jù)結(jié)構(gòu)取決于所選的state后端。一個state后端是將數(shù)據(jù)保存在內(nèi)存的哈希map中杰扫,另一個則是以key/value的形式保存在RocksDB中队寇。除了定義保存State的數(shù)據(jù)結(jié)構(gòu),State后端還實(shí)現(xiàn)了一個邏輯來獲取key/value state的時間點(diǎn)快照并作為checkpoint的一部分保存起來章姓。


Savepoints

? ? ? ?用DataStream API書寫的程序可以從一個savepoint中恢復(fù)執(zhí)行佳遣。Savepoint允許更新您的程序而不丟失Flink中的任何state信息。Savepoint是手動觸發(fā)checkpoint凡伊,獲取程序的快照并將快照寫入到state后端零渐。它們依靠定期的checkpoint機(jī)制,在執(zhí)行過程中程序在work節(jié)點(diǎn)上產(chǎn)生周期性快照系忙,并生成checkpoint诵盼。對于故障恢復(fù),只需要最新生成的checkpoint银还,舊的checkpoint可以在新的checkpoint生成之后就丟棄掉了风宁。

? ? ? Savepoint類似于周期性的checkpoint,除了他們是由用戶手動觸發(fā)的见剩,并且并不會在新的checkpoint生成之后而自動更新杀糯。Savepoint可以通過命令行生成或者在調(diào)用REST API取消一個作業(yè)時產(chǎn)生扫俺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苍苞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子狼纬,更是在濱河造成了極大的恐慌羹呵,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疗琉,死亡現(xiàn)場離奇詭異冈欢,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)盈简,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門凑耻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柠贤,你說我怎么就攤上這事香浩。” “怎么了臼勉?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵邻吭,是天一觀的道長。 經(jīng)常有香客問我宴霸,道長囱晴,這世上最難降的妖魔是什么膏蚓? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮畸写,結(jié)果婚禮上驮瞧,老公的妹妹穿的比我還像新娘。我一直安慰自己艺糜,他們只是感情好剧董,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著破停,像睡著了一般翅楼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上真慢,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天毅臊,我揣著相機(jī)與錄音,去河邊找鬼黑界。 笑死管嬉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的朗鸠。 我是一名探鬼主播蚯撩,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼烛占!你這毒婦竟也來了胎挎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤忆家,失蹤者是張志新(化名)和其女友劉穎犹菇,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芽卿,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揭芍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了卸例。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片称杨。...
    茶點(diǎn)故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖筷转,靈堂內(nèi)的尸體忽然破棺而出姑原,到底是詐尸還是另有隱情,我是刑警寧澤旦装,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布页衙,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏店乐。R本人自食惡果不足惜艰躺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望眨八。 院中可真熱鬧腺兴,春花似錦、人聲如沸廉侧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽段誊。三九已至闰蚕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間连舍,已是汗流浹背没陡。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留索赏,地道東北人盼玄。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像潜腻,于是被迫代替她去往敵國和親埃儿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容