yarn中的容器分配代码(hadoop)

kq0g1dla  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(401)

我正在尝试修补容器分配代码。通过容器分配,我指的是将容器放置在集群中特定机器上的决策。
我想写我自己的容器分配代码。首先,我用yarn以伪分布式模式运行hadoop。我试图找到源代码中的相关点。到目前为止,使用print语句,我已经能够确定类 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源代码中找到一个确切的点,在那里我需要编写自己的代码来替换现有的容器分配机制。

wlzqhblo

wlzqhblo1#

I have not been able to print anything

起初,我认为日志记录是特定于应用程序的,但所有与资源管理器相关的信息都在名为 hadoop-{username}-resourcemanager-{username}.log 低于 log 文件夹。我用了 LOG.info 用于调试。

Location of allocation mechanism in hadoop source code

我使用先进先出调度和分配机制下的方法 FifoScheduler#assignContainersOnNode 它是从 FifoScheduler#assignContainers 它是从 FifoScheduler#nodeUpdate 方法。
FifoScheduler#handle 方法(此处提供更多信息),它不断跟踪不同的事件。 NODE_UPDATE 是经常触发的事件之一,因此在给定节点上分配容器。

相关问题