具有已排序文件的 Hadoop MapReduce

发布于 2024-11-17 13:56:39 字数 157 浏览 0 评论 0原文

我正在使用 Hadoop MapReduce。我已经在 HDFS 中获取了数据,并且每个文件中的数据都已排序。是否可以强制 MapReduce 在映射阶段后不使用数据?我尝试将 map.sort.class 更改为无操作,但它不起作用(即数据未按我的预期排序)。有没有人尝试做类似的事情并设法实现它?

I'm working with Hadoop MapReduce. I've got data in HDFS and data in each file is already sorted. Is it possible to force MapReduce not to resort the data after map phase? I've tried to change the map.sort.class to no-op, but it didn't work (i.e. the data wasn't sorted as I'd expected). Does anyone tried doing something similar and managed to achieve it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

左秋 2024-11-24 13:56:39

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

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

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

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

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

I think it depends on what style result you want, sorted result or unsorted result?

If you need result be sorted, I think hadoop is not suitable to do this work. There are two reasons:

  • INPUT DATA will be stored in different chunk(if big enough) and partitioned into multi-splits. Each one split will be mapped to one map task and all output of map tasks will gathered(after processes of partitioned/sorted/combined/copied/merged) as reduce's input. It is hard to keep keys in order among these stages.
  • Sort function exists not only after map process in map task. When do merge process during reduce task, there is sort option,too.

If you do not need result be sorted,I think this patch may be what you want:

Support no sort dataflow in map output and reduce merge phrase : https://issues.apache.org/jira/browse/MAPREDUCE-3397

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文