【问题标题】:Does hadoop mapreduce open temporary files in hdfshadoop mapreduce是否在hdfs中打开临时文件
【发布时间】:2014-09-23 14:39:30
【问题描述】:

当一个 map-reduce 作业运行时,它必须创建大量的临时文件来存储各种 mapper 和 reducer 的结果。那些临时文件是写入hdfs的吗?

如果是,namenode 的编辑日志可能会在短时间内变得巨大,因为它记录了文件打开、关闭等每一个事务。可以通过直接写入本机文件系统而不是 hdfs 来避免这种情况吗?想法?

【问题讨论】:

    标签: hadoop mapreduce hdfs


    【解决方案1】:

    map reduce 代码的中间结果已写入本地文件系统而不是 hdfs,并在作业完成后自动将其删除。

    我的意思是说映射器的输出已经写入本地文件系统,可以配置特定位置,但默认情况下它写入 /tmp/hadoop-username* 位置

    【讨论】:

      【解决方案2】:

      您的意思是,每次 Mapper 运行时都会创建临时文件。 如果是,那么您将无法避免这种情况,因为 Mapper 的输出被写入磁盘而不是内存。 TaskTracker 将负责为 MR 作业创建设置并为 Mapper 中间输出创建临时磁盘空间。一旦 MR 作业完成,TaskTracker 也会清理临时空间。

      这是 MR 编程范式的瓶颈之一。

      任何 cmets/反馈将不胜感激。

      【讨论】:

      • “你无法避免这种情况,因为 Mapper 的输出被写入磁盘而不是内存” - 我理解这部分。我不确定它是直接写入 hdfs 还是底层文件系统本身。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多