首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MapReduce Hadoop中的排序

MapReduce Hadoop中的排序
EN

Stack Overflow用户
提问于 2015-07-16 06:52:09
回答 1查看 1.6K关注 0票数 3

在Hadoop MapReduce中,我有几个基本问题。

  1. 假设执行了100个映射器和零减速器。它会生成100个文件吗?所有的人都被分类了?所有映射器输出都排序了吗?
  2. 减速器的输入是关键的->值。对于每个键,所有的值都被排序了吗?
  3. 假设有50名减速器被处决。它会生成50个文件吗?所有单独的文件都被排序了?所有减速机的输出都是排序的?

在MapReduce中有保证排序的地方吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-16 08:16:00

1.假设执行了100个映射器和零减速器。它会生成100个文件吗?

是。

所有的人都被分类了?

不是的。如果没有使用减速器,则映射器的输出不会排序。排序只在有减少阶段时进行。

所有映射器输出都排序了吗?

不,出于同样的原因,就像上面一样。

2.减速器的输入是关键的->值。对于每个键,所有的值都被排序了吗?

不是的。然而,键是排序的。在洗牌阶段之后,还原器得到映射器的输出,它合并-排序映射器的排序输出键(因为有一个减少阶段),当它开始减少时,键被排序。

3.假设有50名减速器被处决。它会生成50个文件吗?

是。(除非您使用MultipleOutputs)

所有单独的文件都被排序了?

不是的。排序输入不能保证排序输出。输出取决于您在还原方法中使用的算法。

所有减速机的输出都是排序的?

不,原因和上面一样。但是,如果您使用标识减速器,也就是说,您只是在得到它时写入减速器的输入,则减速器的输出将按减速器排序,而不是全局排序。

在MapReduce中有保证排序的地方吗?

排序是在存在约简阶段时进行的,并应用于每个映射器的输出键和每个减速器的输入键。如果要对减速器的输入进行全局排序,可以使用单个减速器,也可以使用TotalOrderPartitioner,这有点棘手.

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31447195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档