如何为MapReduce作业单独指定HDFS和其他节点的一组节点?

时间:2017-01-24 05:39:19

标签: hadoop mapreduce

在部署hadoop时,我想要一些节点来运行HDFS服务器但不要运行任何MapReduce任务。

例如,有两个节点A和B运行HDFS。

我想排除节点A运行任何map / reduce任务。

我怎样才能实现它?感谢

2 个答案:

答案 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)

我回答我的问题

  1. 如果您使用Yarn进行资源管理,
  2. 去检查franklinsijo的答案。

    1. 如果您使用独立模式,
    2. 制作一个节点列表,您将运行MR任务并将其路径指定为&#39; mapred.hosts&#39;在mapred-default文件中。 (https://hadoop.apache.org/docs/r1.2.1/mapred-default.html