【问题标题】:Hadoop/MR temporary directoryHadoop/MR 临时目录
【发布时间】: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 文件具有相同的配置更改。

标签: hadoop mapreduce


【解决方案1】:

如果您运行的是 Hadoop 2.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

尝试将/etc/hadoop/conf/ 目录中的mapreduce-site.xml 文件重命名为mapred-site.xml,看看是否可以解决问题。

如果您使用的是Ambari,您应该可以只使用 MapReduce2 / Custom mapred-site.xml 部分上的“添加属性”按钮,输入 'mapreduce.cluster.local .dir' 用于属性名称,以及要使用的目录的逗号分隔列表。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 那里有一堆目录设置,但是,hadoop.tmp.dir 没有被列为此页面的有效属性:
    • 我认为你应该尝试在 hdfs-site.xml 中添加它,然后检查它是否有效
    • 尝试添加它。 Mapreduce 作业仍在使用主 /tmp 目录,而不是配置中的目录。不过还是谢谢。
    • 我认为您应该尝试重新启动守护程序服务并检查它是否有效
    【解决方案3】:

    mapreduce 属性应该在 mapred-site.xml 中。

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题,有些节点不支持配置中设置的 hadoop.tmp.dir。

      重新启动行为不端的节点为我修复了它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-08
        • 2016-01-03
        • 2019-12-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多