【发布时间】:2017-01-24 05:39:19
【问题描述】:
在部署 hadoop 时,我希望一些节点集运行 HDFS 服务器,但不运行任何 MapReduce 任务。
例如,有两个节点 A 和 B 运行 HDFS。
我想排除节点 A 运行任何 map/reduce 任务。
我怎样才能实现它?谢谢
【问题讨论】:
在部署 hadoop 时,我希望一些节点集运行 HDFS 服务器,但不运行任何 MapReduce 任务。
例如,有两个节点 A 和 B 运行 HDFS。
我想排除节点 A 运行任何 map/reduce 任务。
我怎样才能实现它?谢谢
【问题讨论】:
如果您不想在特定节点或一组节点中运行任何 MapReduce 作业,
如果nodemanager 守护程序已经在运行,那么停止它们将是最简单的选择。
在不应尝试 MR 任务的节点上运行此命令。
yarn-daemon.sh stop nodemanager
或者使用yarn-site.xml中的属性yarn.resourcemanager.nodes.exclude-path排除主机
<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
文件中指定的节点将免于尝试 MapReduce 任务。
【讨论】:
我回答我的问题
去检查 franklinsijo 的答案。
列出您将运行 MR 任务的节点列表,并在 mapred-default 文件中将其路径指定为“mapred.hosts”。 (https://hadoop.apache.org/docs/r1.2.1/mapred-default.html)
【讨论】: