Spark的不同ClusterManger提交任務的執(zhí)行流程

前言

了解Spark架構(gòu)原理及相關任務提交流程前黄橘,我們需要先了解一下Spark中的一些角色概念塞关。

  • Application:用戶編寫的Spark應用程序,包含了一個Driver 功能的代碼和分布在集群中多個節(jié)點上運行的Executor代碼

  • Driver:運行Application的main()函數(shù)并且創(chuàng)建SparkContext(Spark應用程序的運行環(huán)境)匿醒。Driver負責和ClusterManager通信缠导,進行資源的申請、任務的分配和監(jiān)控等髓削。

  • Cluster Manager:集群上獲取資源的外部服務立膛,比如Standalone(由Master負責資源的分配)和Yarn(由ResourceManager負責資源的分配)

  • Worker:從節(jié)點宝泵,負責控制計算節(jié)點,啟動Executor或者Driver闯捎。在Standalone模式中指的就是通過Slave文件配置的Worker節(jié)點瓤鼻,在Spark on Yarn模式中指的就是NodeManager節(jié)點娱仔。

  • Executor:運行在Worker 節(jié)點上的進程牲迫,該進程負責運行Task,并且負責將數(shù)據(jù)存在內(nèi)存或者磁盤上筛峭。

  • Job:包含多個Task組成的并行計算,往往由Spark Action催生挂签,一個JOB包含多個RDD及作用于相應RDD上的各種Operation饵婆;

  • Stage:每個Job會被拆分很多Stage侨核,而每個Stage又包含多個Task搓译;Stage是根據(jù)寬依賴和窄依賴劃分的.

  • Task: 被送到某個Executor上的工作任務

一.Standalone-Client方式提交任務方式

提交命令
spark-submit  --master spark://node001:7077,node002:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../examples/jars/spark examples_2.11-2.3.1.jar  10000

執(zhí)行原理圖
standalone-client模式
執(zhí)行流程
  • 1.Client模式提交任務后嘿般,會在客戶端啟動Driver進程

  • 2.Driver會向Master申請啟動Application啟動的資源

  • 3.資源申請成功怀樟,Driver端將task發(fā)送到worker端執(zhí)行

  • 4.worker將task執(zhí)行結(jié)果返回到Driver端往堡。

缺點

client模式適用于測試調(diào)試程序虑灰。Driver進程是在客戶端啟動的颤诀,這里的客戶端就是指提交應用程序的當前節(jié)點崖叫。在Driver端可以看到task執(zhí)行的情況心傀。生產(chǎn)環(huán)境下不能使用client模式脂男,因為Driver可能會回收task執(zhí)行結(jié)果數(shù)據(jù),假設要提交100個application到集群運行汁讼,Driver每次都會在client端啟動掉缺,那么就會導致客戶端所在節(jié)點的Driver收集100個application的結(jié)果數(shù)據(jù),導致100次網(wǎng)卡流量暴增的問題筐高。

二.Standalone-Cluster方式提交任務方式

提交命令
spark-submit  --master spark://node001:7077,node002:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi ../examples/jars/spark examples_2.11-2.3.1.jar  10000

執(zhí)行原理圖
standalone-cluster模式
執(zhí)行流程
  • 1.cluster模式提交應用程序后,會向Master請求啟動Driver.

  • 2.Master接受請求稽屏,隨機在集群一臺節(jié)點啟動Driver進程坛增。

  • 3.Driver啟動后為當前的應用程序申請資源收捣。

  • 4.Driver端發(fā)送task到worker節(jié)點上執(zhí)行罢艾。

  • 5.worker將執(zhí)行情況和執(zhí)行結(jié)果返回給Driver端。

總結(jié)

Driver進程是在集群某一臺Worker上啟動的仓蛆,在客戶端是無法查看task的執(zhí)行情況的看疙。假設要提交100個application到集群運行,每次Driver會隨機在集群中某一臺Worker上啟動能庆,那么這100次網(wǎng)卡流量暴增的問題就散布在集群上。

三.Yarn-Client方式提交任務方式

提交命令
spark-submit  --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi ../examples/jars/spark examples_2.11-2.3.1.jar  10000
執(zhí)行原理圖
yarn-client模式
執(zhí)行流程
  • 1.客戶端提交一個Application渠旁,在客戶端啟動一個Driver進程。

  • 2.應用程序啟動后會向RS(ResourceManager)發(fā)送請求杂靶,啟動AM(ApplicationMaster)的資源吗垮。

  • 3.RS收到請求烁登,隨機選擇一臺NM(NodeManager)啟動AM蚀之。這里的NM相當于Standalone中的Worker節(jié)點足删。

  • 4.AM啟動后失受,會向RS請求一批container資源拂到,用于啟動Executor。

  • 5.RS會找到一批NM返回給AM,用于啟動Executor领铐。

總結(jié)

Yarn-Client模式同樣是適用于測試绪撵,因為Driver運行在本地音诈,Driver會與yarn集群中的Executor進行大量的通信细溅,會造成客戶機網(wǎng)卡流量的大量增加。

Yarn-Client模式下ApplicationMaster的作用:

  • 1.為當前的Application申請資源
  • 2.給NameNode發(fā)送消息啟動Executor承疲。
    注意:ApplicationMaster有l(wèi)aunchExecutor和申請資源的功能,并沒有作業(yè)調(diào)度的功能啼辣。因此進程名稱為ExecutorLauncher鸥拧,不能叫做ApplicationMaster富弦。

四.Yarn-Cluster方式提交任務方式

提交命令
spark-submit  --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi ../examples/jars/spark examples_2.11-2.3.1.jar  10000

執(zhí)行原理圖
yarn-cluster模式
執(zhí)行流程
  • 1.客戶機提交Application應用程序,發(fā)送請求到RS(ResourceManager),請求啟動AM(ApplicationMaster)砰蠢。

  • 2.RS收到請求后隨機在一臺NM(NodeManager)上啟動AM(相當于Driver端)台舱。

  • 3.AM啟動竞惋,AM發(fā)送請求到RS,請求一批container用于啟動Executor熬甫。

  • 4.RS返回一批NM節(jié)點給AM。

  • 5.AM連接到NM,發(fā)送請求到NM啟動Executor瞻颂。

  • 6.Executor反向注冊到AM所在的節(jié)點的Driver。Driver發(fā)送task到Executor盖矫。

總結(jié)

Yarn-Cluster主要用于生產(chǎn)環(huán)境中辈双,因為Driver運行在Yarn集群中某一臺nodeManager中湃望,每次提交任務的Driver所在的機器都是隨機的瞳浦,不會產(chǎn)生某一臺機器網(wǎng)卡流量激增的現(xiàn)象叫潦,缺點是任務提交后不能看到日志。只能通過yarn查看日志拔妥。

Yarn-Cluster模式下ApplicationMaster的作用:

  • 1.為當前的Application申請資源
  • 2.給NameNode發(fā)送消息啟動Executor没龙。
  • 3.任務調(diào)度硬纤。
    注意:ApplicationMaster有l(wèi)aunchExecutor和申請資源的功能,相比較Yarn-Client模式下具備了作業(yè)調(diào)度的功能溪王。因此進程名稱叫做ApplicationMaster莹菱。

停止集群任務命令:yarn application -kill applicationID

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蜜徽,隨后出現(xiàn)的幾起案子拘鞋,更是在濱河造成了極大的恐慌怜械,老刑警劉巖傅事,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件教届,死亡現(xiàn)場離奇詭異案训,居然都是意外死亡忿项,警方通過查閱死者的電腦和手機轩触,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榨为,“玉大人柠逞,你說我怎么就攤上這事板壮。” “怎么了笨使?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長靶草。 經(jīng)常有香客問我裕寨,道長宾袜,這世上最難降的妖魔是什么庆猫? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮节视,結(jié)果婚禮上寻行,老公的妹妹穿的比我還像新娘。我一直安慰自己牙丽,他們只是感情好举娩,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芙代,像睡著了一般纹烹。 火紅的嫁衣襯著肌膚如雪铺呵。 梳的紋絲不亂的頭發(fā)上邦马,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音症昏,去河邊找鬼肝谭。 笑死攘烛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的芋齿。 我是一名探鬼主播觅捆,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赢赊!你這毒婦竟也來了域携?” 一聲冷哼從身側(cè)響起秀鞭,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤皱坛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贩猎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吭服,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了打瘪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瑟慈。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖进泼,靈堂內(nèi)的尸體忽然破棺而出乳绕,到底是詐尸還是另有隱情洋措,我是刑警寧澤菠发,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站糜俗,受9級特大地震影響珠月,放射性物質(zhì)發(fā)生泄漏桥温。R本人自食惡果不足惜梁丘,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一区端、第九天 我趴在偏房一處隱蔽的房頂上張望织盼。 院中可真熱鬧沥邻,春花似錦唐全、人聲如沸弥雹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽媒怯。三九已至扇苞,卻和暖如春鳖敷,著一層夾襖步出監(jiān)牢的瞬間定踱,已是汗流浹背崖媚。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荠呐,地道東北人泥张。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像筝野,于是被迫代替她去往敵國和親歇竟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345