spark提交到yarn_详细总结spark基于standalone、yarn集群提交作业流程
最近總結(jié)了一些關(guān)于spark core的內(nèi)容,今天先來和大家分享一下spark的運行模式。
spark運行模式
(1)local:在本地eclipse、IDEA中寫spark代碼運行程序,一般用于測試
(2)standalone:spark自帶的資源調(diào)度框架,支持分布式集群搭建。Spark可以運行在standalone集群上
(3)Yarn:Hadoop生態(tài)圈中的資源調(diào)度框架,spark可以基于Yarn運行
(4)Mesos: 資源調(diào)度框架 (用的比較少)
下面,來給大家總結(jié)一下spark基于standalone和yarn集群上提交作業(yè)的流程:
有兩種可選的運行方式:
(1)client 一般用于測試環(huán)境
(2)cluster 用于實際生產(chǎn)環(huán)境
Spark基于standalone集群提交任務(wù)的流程:
1.Client模式:
1)集群啟動后,worker向Master匯報資源(資源指core和內(nèi)存)
2)Master掌握了集群的資源
3)客戶端提交spark任務(wù),首先在客戶端啟動Driver
4)客戶端向Master申請資源
5)Master找到滿足資源的worker節(jié)點,在worker節(jié)點上啟動Excutor進程,反向注冊給Driver。
6)Driver向Worker發(fā)送Task,監(jiān)控task的執(zhí)行,回收結(jié)果。
流程圖示:
注:(1)Driver在客戶端啟動
(2)每個SparkApplication有獨立的Driver和Excutor
(3)Driver和集群中的worker會有大量的通信,如果有很多的apllication提交,而這種client運行方式中Driver均在客戶端啟動,就很容易造成客戶端節(jié)點的網(wǎng)卡流量激增問題。所以這種方式適用于程序測試環(huán)境,不適用與生產(chǎn)環(huán)境。
(4)在客戶端可以查看task執(zhí)行過程和結(jié)果,方便調(diào)錯。
2.Cluster模式:
spark基于standalone集群的cluster模式的提交任務(wù)流程:
1) 集群啟動后worker向Master匯報資源
2) Master掌握集群資源
3) 客戶端提交sparkApplication,客戶端向Master申請啟動Driver。
4) Master收到請求后隨機找一臺節(jié)點啟動Driver。
5) Driver向Master申請資源用于啟動Application
6) Master找到滿足資源的worker節(jié)點,啟動Excutor,反向注冊給Driver
7) Driver發(fā)送task到worker節(jié)點,監(jiān)控task,回收結(jié)果(collect方法)
流程圖示:
注:(1)先啟動Driver,再啟動Application
(2)Driver在隨機一臺worker節(jié)點上啟動,當有很多的SparkApplication提交時,這些Application作業(yè)的Driver都是分布在集群中不同worker節(jié)點上的,解決了client模式中單節(jié)點網(wǎng)卡流量激增的問題,適用于生產(chǎn)環(huán)境。
(3)在客戶端看不到task的執(zhí)行過程以及運行結(jié)果,要在WebUI中查看
Spark基于yarn集群提交任務(wù)的流程:
1.Client模式:
流程總結(jié):
1) NodeManager向ResourceManager匯報資源
2) ResourceManager掌握集群資源
3) 客戶端提交Application,在客戶端啟動Driver
4) 客戶端向ResourceManager申請啟動ApplicationMaster。
5) ResourceManager收到請求之后隨機找一臺NodeManager啟動ApplicationMaster
6) ApplicationMaster啟動之后向ResourceManager申請資源用于啟動Excutor,
7) ResourceManager收到請求后返回一批滿足要求的NodeManager節(jié)點給AM
8) ApplicationMaster連接NodeManager啟動Excutor
9) Excutor反向注冊給Driver
10)Driver發(fā)送task給NodeManager,監(jiān)控task執(zhí)行,并回收結(jié)果
流程圖示:
2.Cluster模式:
Spark基于Yarn的Cluster提交作業(yè)流程總結(jié):
1) 集群啟動后,NodeManager向ResourceManager匯報資源
2) ResourceManager掌握了集群資源
3) 客戶端提交SparkApplication
4) 客戶端向ResourceManager申請啟動ApplicationMaster
5) ResourceManager隨機找一臺NodeManager啟動ApplicationMaster(Driver)
6) ApplicationMaster向ResourceManager申請資源用于啟動Excutor
7) ResourceManager返回一批滿足資源的NodeManager節(jié)點給ApplicationMaster
8) ApplicationMaster在這些NodeManager上啟動Excutor
9) Excutor反向注冊給Driver(ApplicationMaster)
10) ApplicationMaster發(fā)送task給NodeManager,監(jiān)控task執(zhí)行,回收結(jié)果
流程圖示:
總結(jié):
總結(jié)
以上是生活随笔為你收集整理的spark提交到yarn_详细总结spark基于standalone、yarn集群提交作业流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有与参数列表匹配的 重载函数 getl
- 下一篇: 禅道设置bug模板_一款热度很高的项目管