Java 纱线中的容器分配代码(Hadoop)

Java 纱线中的容器分配代码(Hadoop),java,hadoop,yarn,hadoop2,Java,Hadoop,Yarn,Hadoop2,我正在尝试修补纱线容器分配代码。通过容器分配,我指的是将容器放置在集群中特定机器上的决策 我想编写自己的容器分配代码。首先,我使用纱线以伪分布式模式运行Hadoop。我试图找到源代码中的相关点。到目前为止,通过使用print语句,我已经能够精确定位类hadoop源代码/hadoop-thread项目/hadoop-thread/hadoop-thread-common/src/main/java/org/apache/hadoop/thread/api/impl/pb/client/Applic

我正在尝试修补纱线容器分配代码。通过容器分配,我指的是将容器放置在集群中特定机器上的决策

我想编写自己的容器分配代码。首先,我使用纱线以伪分布式模式运行Hadoop。我试图找到源代码中的相关点。到目前为止,通过使用print语句,我已经能够精确定位类
hadoop源代码/hadoop-thread项目/hadoop-thread/hadoop-thread-common/src/main/java/org/apache/hadoop/thread/api/impl/pb/client/ApplicationMasterProtocolPBClientImpl.java#allocate
。然而,我无法进一步缩小范围。进一步研究这种方法,我无法打印任何内容

总而言之,我想在Hadoop源代码中找到我需要编写自己的代码来替换现有容器分配机制的确切位置

I have not been able to print anything
起初,我认为日志记录是特定于应用程序的,但与资源管理器相关的所有信息都在名为
hadoop-{username}-resourcemanager-{username}.log的日志文件下,位于
log
文件夹下。我使用
LOG.info
进行调试,而不是print语句

Location of allocation mechanism in hadoop source code
我正在使用FIFO调度程序,分配机制在方法
FifoScheduler#assignContainersOnNode
下,该方法从
FifoScheduler#assignContainers
调用,该方法从
FifoScheduler#nodeUpdate
方法调用

有一种
FifoScheduler#handle
方法,可以跟踪不同的事件
NODE_UPDATE
是经常触发的事件之一,因此在给定节点上分配容器

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

Location of allocation mechanism in hadoop source code
我正在使用FIFO调度程序,分配机制在方法
FifoScheduler#assignContainersOnNode
下,该方法从
FifoScheduler#assignContainers
调用,该方法从
FifoScheduler#nodeUpdate
方法调用

有一种
FifoScheduler#handle
方法,可以跟踪不同的事件
NODE_UPDATE
是经常触发的事件之一,因此在给定节点上分配容器