在yarn-client模式下,Driver運行在Client上,經過ApplicationMaster向RM獲取資源。本地Driver負責與全部的executor container進行交互,並將最後的結果彙總。html
- 1.客戶端提交一個Application,在客戶端啓動一個Driver進程。
- 2.Driver進程會向RS(ResourceManager)發送請求,啓動AM(ApplicationMaster)的資源。
- 3.RS收到請求,隨機選擇一臺NM(NodeManager)啓動AM。這裏的NM至關於Standalone中的Worker節點。
- 4.AM啓動後,會向RS請求一批container資源,用於啓動Executor.
- 5.RS會找到一批NM返回給AM,用於啓動Executor。
- 6.AM會向NM發送命令啓動Executor。
- 7.Executor啓動後,會反向註冊給Driver,Driver發送task到Executor,執行狀況和結果返回給Driver端。node
1.Yarn-client模式一樣是適用於測試,由於Driver運行在本地,Driver會與yarn集羣中的Executor進行大量的通訊,會形成客戶機網卡流量的大量增長.app
2.ApplicationMaster的做用: 測試
5.Executor反向註冊到AM所在的節點的Driver。Driver發送task到Executor。.net
1.Yarn-Cluster主要用於生產環境中,由於Driver運行在Yarn集羣中某一臺nodeManager中,每次提交任務的Driver所在的機器都是隨機的,不會產生某一臺機器網卡流量激增的現象,缺點是任務提交後不能看到日誌。只能經過yarn查看日誌。日誌
2.ApplicationMaster的做用: server
3.中止集羣任務命令:yarn application -kill applicationIDhtm
它們的區別就是ApplicationMaster的區別blog
yarn-cluster中ApplicationMaster不只負責申請資源,並負責監控Task的運行情況,所以能夠關掉client;生命週期
yarn-client中ApplicationMaster僅負責申請資源,由client中的driver來監控調度Task的運行,所以不能關掉client。