YARN编程实例—Unmanaged AM工作原理介绍
1.??? 概述
在YARN中,一個ApplicationMaster需要占用一個container,該container可能位于任意一個NodeManager上,這給ApplicationMaster測試帶來很大麻煩,為了解決該問題,YARN引入了一種新的ApplicationMaster—Unmanaged AM(具體參考:MAPREDUCE-4427),這種AM運行在客戶端,不再由ResourceManager啟動和銷毀。用戶只需稍微修改一下客戶端即可將分布式環境下的AM運行在客戶端的一個單獨進程中。
2.??? Unmanaged AM工作原理
Unmanaged AM運行步驟如下:
步驟1?通過RPC函數ClientRMProtocol.getNewApplication()獲取一個ApplicationId.
步驟2?創建一個ApplicationSubmissionContext對象,填充各個字段,并通過調用函數ApplicationSubmissionContext.setUnmanagedAM(true)啟用Unmanaged AM。
步驟3?通過RPC函數ClientRMProtocol.submitApplication()將application提交到ResourceManage上,并監控application運行狀態,直到其狀態變為YarnApplicationState.ACCEPTED。
步驟4?在客戶端中的一個獨立線程中啟動ApplicationMaster,然后等待ApplicationMaster運行結束,接著再等待ResourceManage報告application運行結束。
YARN在
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher目錄中提供了一個應用實例(最新版本中有該實例,較早版本沒有),有興趣的讀者可以自行參考。
原創文章,轉載請注明:?轉載自董的博客
本文鏈接地址:?http://dongxicheng.org/mapreduce-nextgen/yarn-unmanaged-am-implemention/
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的YARN编程实例—Unmanaged AM工作原理介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop pipes编程
- 下一篇: Apache Spark学习:利用Sca