`
zlx19900228
  • 浏览: 51572 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MapReduce为什么shuffle

阅读更多

mapreduce有一个shuffle过程,但是以前一直没有关注,也不清楚为什么有这样一个过程,今天在阅读Hadoop in Action的时候,看到了其中关于shuffle的介绍,结合自己的实际运用以及理解,明白了为什么需要shuffle,以wordcount为例,我们会将documentSet中的不同document放入不同的机器,即放入cluster中,当第一阶段处理完成,即这个cluster中的node完成对本身包含的document的处理之后(独立的),会把结果sendToSecondPhase,如果secondphase是单台机器,那么If the documents are all stored in one central storage server, then the bottleneck   is in the bandwidth of that server.所以我们肯定会将firstphase的结果发送给secondpharse集群,这样才是合理的,不会产生bottleneck,但是第一步的结果如何发送给第二步呢?以wordcount为例,我们会把第一步的结果shuffle,比如pharse_two_a机器会处理以a开头的所有第一步的处理结果,即第一步shuffle之后,会按照语法表与secondpharse的cluster的处理规则来发送结果,wordcount中第一步处理完成之后,shuffle过程即把a开头的发送给pharse_two_a机器,b开头的发送给pharse_two_b机器,c开头的发送给pharse_two_c机器·········,这样就完成了用集群来处理第一步处理完成的结果。Each machine in
phase one will shuffl  e   its results among the machines in phase two

分享到:
评论
1 楼 ddvk2007 2012-09-05  
我想請問
我们会将documentSet中的不同document放入不同的机器,即放入cluster中,当第一阶段处理完成,即这个cluster中的node完成对本身包含的document的处理之后(独立的)

你這裡指的第一階段完成是指哪一個階段呢?
如果以wordcount為例的話,會區分三個工作階段
map→shuffle→reduce 你這裡指的階段是指map嗎?

再來就是
我们会把第一步的结果shuffle,比如pharse_two_a机器会处理以a开头的所有第一步的处理结果,即第一步shuffle之后,会按照语法表与secondpharse的cluster的处理规则来发送结果,wordcount中第一步处理完成之后,shuffle过程即把a开头的发送给pharse_two_a机器,b开头的发送给pharse_two_b机器,c开头的发送给pharse_two_c机器

這裡的意思是說,你確定shuffle抓取key的機制是用字母的順序來區分嗎?
因為當處理的文件,執行到shuffle的階段時,shuffle會隨機抓取key的來做自述的統計,如果以單存以字母來區分的話,難道不會抓取到同樣的key嗎?

相关推荐

    MapReduce详解Shuffle过程

    MapReduce详解Shuffle过程 MapReduce的Shuffle过程是MapReduce的核心部分,也被称为奇迹发生的地方。要想理解MapReduce,Shuffle是必须要了解的。Shuffle过程描述着数据从map task输出到reduce task输入的这段过程...

    hadoop-mapreduce-client-shuffle-2.5.1-API文档-中文版.zip

    赠送jar包:hadoop-mapreduce-client-shuffle-2.5.1.jar; 赠送原API文档:hadoop-mapreduce-client-shuffle-2.5.1-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-shuffle-2.5.1-sources.jar; 赠送Maven依赖...

    hadoop-mapreduce-client-shuffle-2.5.1-API文档-中英对照版.zip

    赠送jar包:hadoop-mapreduce-client-shuffle-2.5.1.jar; 赠送原API文档:hadoop-mapreduce-client-shuffle-2.5.1-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-shuffle-2.5.1-sources.jar; 赠送Maven依赖...

    hadoop-mapreduce-client-shuffle-2.6.5-API文档-中文版.zip

    赠送jar包:hadoop-mapreduce-client-shuffle-2.6.5.jar; 赠送原API文档:hadoop-mapreduce-client-shuffle-2.6.5-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-shuffle-2.6.5-sources.jar; 赠送Maven依赖...

    hadoop-mapreduce-client-shuffle-2.6.5-API文档-中英对照版.zip

    赠送jar包:hadoop-mapreduce-client-shuffle-2.6.5.jar; 赠送原API文档:hadoop-mapreduce-client-shuffle-2.6.5-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-shuffle-2.6.5-sources.jar; 赠送Maven依赖...

    MapReduce Shuffle 过程图解 Xmind文件

    MapReduce Shuffle 过程图解 Xmind文件

    自己实现MapReduce-Shuffle过程.zip

    Shuffle是MapReduce中的一个重要环节,负责在Map和Reduce之间进行数据的排序和分区,确保正确性。 在Java中实现MapReduce的Shuffle过程,首先需要理解以下几个核心概念: 1. **Map阶段**:Map阶段是数据处理的起始...

    【MapReduce篇05】MapReduce之Shuffle机制1

    在MapReduce的工作流程中,Shuffle机制扮演着至关重要的角色,它确保了数据在传递到Reducer阶段之前被正确地分区和排序。本文将深入探讨MapReduce的Shuffle机制,并讨论如何通过自定义Partitioner来满足特定的业务...

    mapreduce高级特性及shuffle

    1.shuffle机制详细讲解 2.MR案例多文件输出 3.MR案例partition使用 4.MR案例内容去重 5.MR案例敏感词汇过滤 6.MR案例自定义combiner的使用 7.MR案例倒排序索引 8.MR案例简单排序

    Hadoop mapreduce实现wordcount

    MapReduce 是 Apache Hadoop 的核心组件之一,它为大数据处理提供了一个分布式计算框架。WordCount 是 MapReduce 框架中经典的入门示例,它统计文本文件中每个单词出现的次数。在这个案例中,我们将深入探讨如何在 ...

    学生mapreduce成绩分析

    MapReduce虽然强大,但也存在一些局限,如内存限制和数据 Shuffle 开销。为了优化性能,可以使用更高级的工具,比如Apache Spark,它提供了内存计算,减少了磁盘I/O,从而提升了处理速度。此外,可以使用Combiner来...

    Hadoop Shuffle过程全解析

    Hadoop Mapreduce过程shuffle过程全解析,Shuffle过程

    MapReduceShuffle原理与SparkShuffle原理

    为什么MapReduce计算模型需要Shuffle过程?我们都知道MapReduce计算模型一般包括两个重要的阶段:Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。Reduce的数据来源于Map,Map的输出即是Reduce的...

    使用MyEclipse实现MapReduce

    4. Shuffle与Reduce阶段:中间键值对经过Shuffle过程分发到对应的Reduce任务,每个Reduce任务调用用户定义的Reduce函数处理其分得的所有键值对,生成最终结果。 5. 输出收集:Reduce任务的结果被写入到HDFS,作为...

    MapReduce高阶实现

    - **HDFS(Hadoop Distributed File System)**:MapReduce通常与HDFS配合使用,HDFS为MapReduce提供分布式存储。 - **YARN(Yet Another Resource Negotiator)**:作为Hadoop的资源管理系统,YARN负责作业调度和...

    MapReduce实现矩阵相乘算法

    - **优化策略**:可以通过调整MapReduce的配置参数,如减少shuffle的数据传输量,提高并行度,优化磁盘I/O等,来提升计算效率。 最后,`AlgorithmProject`可能是该项目的源代码或者文档,里面可能包含了具体的实现...

    kmeans(mapreduce)

    这个过程可以视为“更新”步骤,但因为MapReduce模型不支持原地更新,所以需要再次运行MapReduce作业,将新的质心作为输入,开始下一轮迭代。 4. **迭代过程**:重复上述过程,直到质心不再明显变化或者达到预设的...

    MapReduce简单程序示例

    这个模型将复杂的并行计算任务分解为两个主要阶段:Map(映射)和Reduce(规约),同时借助一个中间步骤——Shuffle(混洗)。在大数据处理领域,MapReduce已经成为一种重要的工具,广泛应用于日志分析、搜索引擎...

Global site tag (gtag.js) - Google Analytics