请帮助 Hadoop 中的 Shuffle 和 Sorting 的必要性是啥?

Posted

技术标签:

【中文标题】请帮助 Hadoop 中的 Shuffle 和 Sorting 的必要性是啥?【英文标题】:Please help what is the necessity of Shuffle and Sorting in Hadoop?请帮助 Hadoop 中的 Shuffle 和 Sorting 的必要性是什么? 【发布时间】:2014-08-08 06:47:08 【问题描述】:

在 mapreduce 中的普通 wordcount 程序中,我们是否需要设置任何 shuffle 和 sort 方法,或者框架会处理这些?

【问题讨论】:

建议阅读***.com/a/23701182/1586965 【参考方案1】:

框架会处理这个问题。 混洗是将数据从映射器传输到reducer的过程,reducer按中间键(单词)的升序(字典)顺序减少数据。

您可以更改默认设置,但无需在字数统计程序中进行。 您只需要设置一个映射器和一个reducer 以及可选的(但确实有助于提高速度)一个组合器。

甚至不需要自己实现一个映射器和一个reducer,因为hadoop自带了wordcount mapper(TokenCounterMapper)和reducer(IntSumReducer,也可以用作combiner)这样的实现。

【讨论】:

我不同意“但确实有助于提高速度”。您应该说它可能有助于加快速度,但组合器可能根本无法运行,框架不保证它们会运行。 @Balduz 当然,一旦有内容溢出到磁盘,它们就会运行(在字数统计中总是如此 - 除非拆分为空)。

以上是关于请帮助 Hadoop 中的 Shuffle 和 Sorting 的必要性是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop与Spark中的Shuffle过程梳理

Hadoop与Spark中的Shuffle过程梳理

Hadoop与Spark中的Shuffle过程梳理

Hadoop与 Spark中的Shuffle之区别与联系

Hadoop学习之路(二十三)MapReduce中的shuffle详解

Hadoop--09---MapReduce_04----MapReduce工作流程Shuffle 机制Partition 分区