Hadoop MapReduce已经排序好的文件

时间:2011-06-27 10:58:04

标签: hadoop mapreduce

我正在使用Hadoop MapReduce。我在HDFS中有数据,每个文件中的数据已经排序。是否有可能强制MapReduce在映射阶段后不采用数据?我试图将map.sort.class更改为no-op,但它不起作用(即数据没有像我预期的那样排序)。有没有人尝试做类似的事情并设法实现它?

1 个答案:

答案 0 :(得分:0)

我认为这取决于您想要的样式结果,排序结果或未排序的结果?

如果你需要对结果进行排序,我认为hadoop不适合做这项工作。有两个原因:

  • INPUT DATA将存储在不同的块中(如果足够大)并分区为多分裂。每个分割将被映射到一个地图任务,并且所有地图任务输出将被收集(在分区/排序/组合/复制/合并的过程之后)作为reduce的输入。在这些阶段之间很难保持关键。
  • 排序功能不仅存在于地图任务中的地图处理之后。在reduce任务期间进行合并处理时,也有排序选项。

如果你不需要对结果进行排序,我认为这个补丁可能是你想要的:

在地图输出中不支持排序数据流并减少合并短语:https://issues.apache.org/jira/browse/MAPREDUCE-3397