【问题标题】:Where does the middle data produced in each stage in Hadoop MapReduce get stored?Hadoop MapReduce 各个阶段产生的中间数据存放在哪里?
【发布时间】:2017-07-14 02:42:29
【问题描述】:

学习hadoop mapreduce有一段时间了,大家知道的,hadoop使用hdfs将数据文件存储在硬盘上,当我们运行mapreduce的时候,progran从hdfs中获取数据,但是mapreduce的每个阶段,数据从哪里获取存储?我得到了一些答案

  1. hsfs
  2. 运行 mapreduce 的本地硬盘

【问题讨论】:

  • Mapper 在使用 reduce 阶段时对数据进行排序并将数据溢出到本地磁盘

标签: hadoop mapreduce


【解决方案1】:

通常map和reduce任务生成的中间数据文件存储在本地磁盘上运行MapReduce的目录(位置)中。该目录包含:

  • map 任务生成的输出文件用作 reduce 任务的输入。
  • reduce 任务生成的临时文件。

临时数据位置由mapreduce.cluster.local.dir 属性控制。您可以为 map 和 reduce 任务生成的中间数据配置一个或多个位置。

在某些情况下,ExecutorNode 没有足够的空间来存储中间数据,它也可以存储在另一个有足够空间的磁盘上。

link 有助于了解更多信息。

【讨论】:

  • 嗯,内存中没有缓存中间数据?
  • 直到缓冲内存它被存储在内存中。一旦达到总分配缓冲内存的 80%,线程将开始在后台将内容溢出到磁盘。这由属性mapreduce.map.sort.spill.percent 控制
猜你喜欢
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 2020-08-05
  • 1970-01-01
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多