【发布时间】:2013-12-17 21:10:06
【问题描述】:
我一直在努力让 Hadoop 和 Map/Reduce 开始使用单独的临时目录,而不是根目录上的 /tmp。
我已将以下内容添加到我的 core-site.xml 配置文件中:
<property>
<name>hadoop.tmp.dir</name>
<value>/data/tmp</value>
</property>
我已将以下内容添加到我的 mapreduce-site.xml 配置文件中:
<property>
<name>mapreduce.cluster.local.dir</name>
<value>${hadoop.tmp.dir}/mapred/local</value>
</property>
<property>
<name>mapreduce.jobtracker.system.dir</name>
<value>${hadoop.tmp.dir}/mapred/system</value>
</property>
<property>
<name>mapreduce.jobtracker.staging.root.dir</name>
<value>${hadoop.tmp.dir}/mapred/staging</value>
</property>
<property>
<name>mapreduce.cluster.temp.dir</name>
<value>${hadoop.tmp.dir}/mapred/temp</value>
</property>
无论我运行什么工作,它仍然在 /tmp 目录中完成所有中间工作。我一直在通过 df -h 观看它,当我进入那里时,它会创建所有临时文件。
我是否从配置中遗漏了什么?
这是在运行 Hadoop/Yarn Mapreduce 的 2.1.0.2.0.6.0 的 10 节点 Linux CentOS 集群上。
编辑: 经过一些进一步的研究,这些设置似乎适用于我的管理和命名节点/辅助命名节点框。只有在数据节点上这不起作用,并且只有在我的根驱动器上仍然会进入 /tmp 的 mapreduce 临时输出文件,而不是我在配置文件中设置的数据挂载。
【问题讨论】:
-
您是否对每个配置文件(在每个节点中)进行了更改?节点选择自己的配置文件,而不是主节点的。
-
我们使用 Ambari 来管理集群,它负责将更改从管理节点推送到所有其他节点。我在进行更改后验证了所有节点 core-site.xml 和 mapred-site.xml 文件具有相同的配置更改。