2016-06-12 72 views
1

我在嘗試修補YARN容器分配代碼。通過容器分配,我的意思是決定將容器放置在集羣中的特定機器上。YARN(Hadoop)中的容器分配代碼

我想寫我自己的容器分配代碼。首先,我使用YARN以僞分佈模式運行Hadoop。我正試圖在源代碼中找到相關的要點。到目前爲止,使用打印語句,我已經能夠確定分配發生的類別hadoop-source-code/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ApplicationMasterProtocolPBClientImpl.java#allocate。但是,我無法進一步縮小範圍。進一步研究這種方法,我無法打印任何東西。

回顧一下 - 我想找到Hadoop源代碼中的確切位置,我需要編寫自己的代碼來替換現有的容器分配機制。

回答

0
I have not been able to print anything 

起初,我還以爲是記錄特定應用,但到資源管理器相關的所有信息都在log文件夾下的hadoop-{username}-resourcemanager-{username}.log日誌文件。我使用LOG.info進行調試,而不是打印語句。

Location of allocation mechanism in hadoop source code 

我使用FIFO調度器和分配機制是下方法FifoScheduler#assignContainersOnNode其從FifoScheduler#assignContainers其從FifoScheduler#nodeUpdate方法調用被調用。

FifoScheduler#handle方法(more information here),它不斷跟蹤不同的事件。 NODE_UPDATE是經常觸發的那些事件之一,因此發生給定節點上容器的分配。