YARN(Hadoop)中的容器分配代码

时间:2016-06-12 14:42:04

标签: java hadoop yarn hadoop2

我正在尝试修补YARN容器分配代码。通过容器分配,我的意思是决定将容器放在集群中的特定机器上。

我想写自己的容器分配代码。首先,我使用YARN以伪分布式模式运行Hadoop。我试图找到源代码中的相关点。到目前为止,使用print语句,我已经能够确定分配发生的类public class MyProfile : Profile { CreateMissingTypeMaps = true; // Mappings... } 。但是,我无法进一步缩小范围。进一步研究这种方法,我无法打印任何东西。

回顾一下 - 我想找到Hadoop源代码中的确切位置,我需要编写自己的代码来替换现有的容器分配机制。

1 个答案:

答案 0 :(得分:0)

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方法(more information here),可以跟踪不同的事件。 NODE_UPDATE是经常触发的那些之一,因此在给定节点上分配容器。