-
yarn-client提交任務方式
-
客戶端提交一個Application,在客戶端啟動一個Driver進程
-
Driver進程會向RS(ResourceManager)發送請求,啟動AM(ApplicationMaster)的資源
-
RS收到請求,隨機選擇一台NM(NodeManager)啟動AM。這里的NM相當於Standalone中的Worker節點
-
AM啟動后,會向RS請求一批container資源,用於啟動Executor
-
RS會找到一批NM返回給AM,用於啟動Executor
-
AM會向NM發送命令啟動Executor
-
Executor啟動后,會反向注冊給Driver,Driver發送task到Executor,執行情況和結果返回給Driver端
Yarn-client模式同樣是適用於測試,因為Driver運行在本地,Driver會與yarn集群中的Executor進行大量的通信,會造成客戶機網卡流量的大量增加
-
yarn-cluster提交任務方式
-
客戶機提交Application應用程序
-
發送請求到RS(ResourceManager),請求啟動AM(ApplicationMaster)
-
RS收到請求后隨機在一台NM(NodeManager)上啟動AM(相當於Driver端)
-
AM啟動,AM發送請求到RS,請求一批container用於啟動Executor
-
RS返回一批NM節點給AM
-
AM連接到NM,發送請求到NM啟動Executor
-
Executor反向注冊到AM所在的節點的Driver。Driver發送task到Executor,監控task執行,回收結果
Yarn-Cluster主要用於生產環境中,因為Driver運行在Yarn集群中某一台nodeManager中,每次提交任務的Driver所在的機器都是隨機的,不會產生某一台機器網卡流量激增的現象,缺點是任務提交后不能看到日志。只能通過yarn查看日志