hadoop/mr临时目录

uyto3xhc  于 2021-06-04  发布在  Hadoop
关注(0)|答案(4)|浏览(357)

我一直在努力让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来做,当我进入那里,那里有它创建的所有临时文件。
我是不是在配置中遗漏了什么?
这是一个10节点的linux centos集群,运行hadoop/mapreduce的2.1.0.2.0.6.0。
编辑:经过进一步研究,设置似乎在我的管理和namednode/secondarynamednodes框中起作用。只有在数据节点上,这是不起作用的,而且只有mapreduce临时输出文件仍将转到根驱动器上的/tmp,而不是配置文件中设置的my data mount。

krugob8w

krugob8w1#

mapreduce属性应位于mapred-site.xml中。

wz3gfoph

wz3gfoph2#

我遇到了一个类似的问题,其中一些节点不遵守配置中设置的hadoop.tmp.dir。
一个行为不端的节点重新启动为我修复了它。

vyu0f0g1

vyu0f0g13#

我认为您需要在hdfs-site.xml而不是core-site.xml中指定此属性。请尝试在hdfs-site.xml中设置此属性。我希望这能解决你的问题

b5buobof

b5buobof4#

如果您运行的是hadoop2.0,那么需要更改的配置文件的正确名称是 mapred-site.xml ,不是 mapreduce-site.xml .
可以在apache站点上找到一个示例:http://hadoop.apache.org/docs/r2.3.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
它使用 mapreduce.cluster.local.dir 属性名,默认值为 ${hadoop.tmp.dir}/mapred/local 尝试重命名您的 mapreduce-site.xml 文件到 mapred-site.xml 在你的 /etc/hadoop/conf/ 目录,看看能不能修复它。
如果您使用的是ambari,您应该可以直接使用mapreduce2/custom mapred-site.xml部分上的“add property”按钮,输入“mapreduce.cluster.local.dir”作为属性名,并输入一个以逗号分隔的目录列表。

相关问题