DistributtedShell的container在所有节点上仅执行一次
DistributtedShell的container在所有节点上仅执行一次
问题
在上Hadoop2培训课的时候,老师出了这么一道题
修改Distributedshell的源代码,使得用户提供的命令(由“--shell_command”参数指定)可以在所有节点上仅执行一次。(目前的实现是,如果该命令由N个task同时执行,则这N个task可能位于任意节点上,比如都在node1上。) |
修改代码
该问题需要在两个地方对源码进行修改:
博客将主要介绍过程2的实现过程,主要思路是首先获取节点列表,再在申请container时,指定节点。具体过程如下:
总结
在获取计算节点列表时,被卡住了,最后在和别人交流的时候,知道ApplicationMaster通过yarnClient可以从RM中获取计算节点列表。最后将问题解决了。感谢所有提供帮助的人
评论暂时关闭