您好,登錄后才能下訂單哦!
spark02--Standalone模式兩種提交任務方式是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一、Standalone-client提交任務方式
提交命令
./spark-submit --master spark://xxx:7077 --class xxx.jar 或者 ./spark-submit --master spark://xxx:7077 --deploy-mode client --class xxx.jar
執行流程
1、client模式提交任務后,會在客戶端啟動Driver進程。
2、Driver會向Master申請啟動Application啟動的資源。
3、資源申請成功,Driver端將task發送到worker端執行。
4、worker將task執行結果返回到Driver端。
總結
client模式適用于測試調試程序。Driver進程是在客戶端啟動的,這里的客戶端就是指提交應用程序的當前節點。在Driver端可以看到task執行的情況。生產環境下不能使用client模式,是因為:假設要提交100個application到集群運行,Driver每次都會在client端啟動,那么就會導致客戶端100次網卡流量暴增的問題。
cluster
提交命令
./spark-submit --master spark://xxx:7077 --deploy-mode cluster --class xxx.jar
執行流程
1、cluster模式提交應用程序后,會向Master請求啟動Driver.
2、Master接受請求,隨機在集群一臺節點啟動Driver進程。
3、Driver啟動后為當前的應用程序申請資源。
4、Driver端發送task到worker節點上執行。
5、worker將執行情況和執行結果返回給Driver端。
總結
Driver進程是在集群某一臺Worker上啟動的,在客戶端是無法查看task的執行情況的。假設要提交100個application到集群運行,每次Driver會隨機在集群中某一臺Worker上啟動,那么這100次網卡流量暴增的問題就散布在集群上
總結Standalone兩種方式提交任務,Driver與集群的通信包括:
1、Driver負責應用程序資源的申請
2、 任務的分發
3、結果的回收
4、監控task執行情況
二、Yarn模式兩種提交任務方式
client
提交命令
./spark-submit --master yarn --class xxx.jar 或者 ./spark-submit --master yarn–client --class xxx.jar 或者 ./spark-submit --master yarn --deploy-mode client --class xxx.jar
執行流程
客戶端提交一個Application,在客戶端啟動一個Driver進程。
應用程序啟動后會向RM(ResourceManager)發送請求,啟動AM(ApplicationMaster)的資源。
RM收到請求,隨機選擇一臺NM(NodeManager)啟動AM。這里的NM相當于Standalone中的Worker節點。
AM啟動后,會向RM請求一批container資源,用于啟動Executor.
RM會找到一批NM返回給AM,用于啟動Executor。
AM會向NM發送命令啟動Executor。
Executor啟動后,會反向注冊給Driver,Driver發送task到Executor,執行情況和結果返回給Driver端。
總結
Yarn-client模式同樣是適用于測試,因為Driver運行在本地,Driver會與yarn集群中的Executor進行大量的通信,會造成客戶機網卡流量的大量增加.
ApplicationMaster的作用:
為當前的Application申請資源
給NameNode發送消息啟動Executor。
注意:ApplicationMaster有launchExecutor和申請資源的功能,并沒有作業調度的功能。
cluster
提交命令
./spark-submit --master yarn-cluster --class xxx.jar 或者 ./spark-submit --master yarn --deploy-mode cluster --class xxx.jar
執行流程
客戶機提交Application應用程序,發送請求到RS(ResourceManager),請求啟動AM(ApplicationMaster)。
RM收到請求后隨機在一臺NM(NodeManager)上啟動AM(相當于Driver端)。
AM啟動,AM發送請求到RM,請求一批container用于啟動Executor。
RM返回一批NM節點給AM。
AM連接到NM,發送請求到NM啟動Executor。
Executor反向注冊到AM所在的節點的Driver。Driver發送task到Executor。
總結
Yarn-Cluster主要用于生產環境中,因為Driver運行在Yarn集群中某一臺nodeManager中,每次提交任務的Driver所在的機器都是隨機的,不會產生某一臺機器網卡流量激增的現象,缺點是任務提交后不能看到日志。只能通過yarn查看日志。
ApplicationMaster的作用:
為當前的Application申請資源
給NameNode發送消息啟動Excutor。
任務調度。
看完上述內容,你們掌握spark02--Standalone模式兩種提交任務方式是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。