大資料開發之Hadoop篇----提交作業到yarn上的流程
當一個mapreduce作業被提交到yarn上面的時候,他的流程是這樣的:
1,當client想yarn提交了作業後,就意味著想ResourceManager申請一個ApplicationMaster。這個時候RM(這裡我們將ResourceManager簡稱為RM,同理NodeManager為NM)將分配一個ApplicationMaster給這個作業,同時向相應的NM進行rpc通訊要求其啟動一個container,在這個container裡面啟動所分配的ApplicationMaster。
2,隨後這個ApplicationMaster將向RM中的ApplicationManager反向註冊,這樣使用者就可以通過web介面直接監控和檢視作業的具體情況。然後ApplicationMaster將想ResourceScheduer申請和領取資源(資源列表就是一系列NM)。
3,當獲取到了NM列表後ApplicationMaster將與相關的NM進行rpc通訊,要求他們啟動相關的container,這些container裡面就是執行作業的task任務的。
4,各個container裡面的task通過rpc通訊定期想ApplicationMaster彙報自己的狀態和進度,以讓ApplicationMaster隨時掌握各個task的執行狀態,從而在task失敗的時候可以重啟task,使用者也可以通過web介面來實時地檢視應用程式的情況。
5,當作業完成後,ApplicationMaster將想ApplicationManager登出並關閉。
總結起來就是兩個階段:第一個階段是提交作業到RM上面並開啟一個ApplicationMaster。第二階段,ApplicationMaster申請資源並將task分配到NM上運行同時監控他們直到作業完成並被登出關閉。