在部署hadoop时,我想要一些节点来运行HDFS服务器但不要运行任何MapReduce任务。
例如,有两个节点A和B运行HDFS。
我想排除节点A运行任何map / reduce任务。
我怎样才能实现它?感谢
答案 0 :(得分:4)
如果您不想在特定节点或一组节点中运行任何MapReduce作业,
如果nodemanager
守护程序已经在运行,则停止yarn-daemon.sh stop nodemanager
守护程序将是最简单的选项。
在不应尝试MR任务的节点上运行此命令。
yarn.resourcemanager.nodes.exclude-path
或使用yarn-site.xml
<property>
<name>yarn.resourcemanager.nodes.exclude-path</name>
<value>/path/to/excludes.txt</value>
<description>Path of the file containing the hosts to exclude. Should be readable by YARN user</description>
</property>
排除主机
yarn rmadmin -refreshNodes
在添加此属性时,请刷新资源管理器
var source = {"foo": 25, "xyz": 49};
var target = Object.keys(source).map(key => [key, source[key]]);
console.log(target);
文件中指定的节点将免于尝试MapReduce任务。
答案 1 :(得分:0)
我回答我的问题
去检查franklinsijo的答案。
制作一个节点列表,您将运行MR任务并将其路径指定为&#39; mapred.hosts&#39;在mapred-default文件中。 (https://hadoop.apache.org/docs/r1.2.1/mapred-default.html)