zoukankan      html  css  js  c++  java
  • MapReduce 运行原理---再聊MapReduce 的 Map ,Reduce 以及shuffle 过程

    官网使用了三张图来描述shuffle 过程 ,Map 和 reduce 是我们自己写的程序,所以没有写进这三个图里面,今天主要围绕这三张图我们做一个简单的说明和复习 :


    第一张图,从整体上把握流程


    上图提供的是整个流程的一部分,全部流程应该是有 4 个  Map  ,3 个 Reduce ,这里只有一个map 一个  reduce

    第一个问题 : partition 什么时候做 ?

    partition 是一直会做的,不管有几个reduce 任务 ,默认是一个reduce ,所以默认也就是一个partition ,这两个在数量上是一致的 ,在这里reduce 有三个,所以 partition 也就有三个 。现在回答问题 ,partition 什么时间做的 ,上图的 buffer in memory 是map 处理后的数据写入缓存的一个步骤,partition 会在这个步骤前的步骤做  。(partition 可能会为数据加入一个标志,哈哈 现在不确定,但是这样理解应该不会产生歧义)

    第二个问题 : 溢写机制

    buffer in memory 的空间是有限的,所以当空间达到一定的阀值后就会写到磁盘上,按partition 写 ,上图可以看到 partitions 有三个

    第三个问题: merge and sort

    在有merge 地方就会有sort 发生,这个当然会影响效率问题 ,很多时间是不需要sort 的 ,map 的最后阶段 会把所有的小的merge 的数据merge 成一个更大的文件,这个文件也是分区的。

    第四个问题 :reduce 阶段,也会有merge ,sort

    reduce 会发出命令,到指定的datanode 的 copy 相应的partition 数据 ,并把所有的copy 过来的数据merge

    第五个问题 : reduce 阶段 也需要用到内存溢写

    第六个问题 : group by  发生在 reduce 结果

    第七个问题: combline 发生在map 结果,目的是减少map 键值对的输出

    第八个问题: 从map 到reduce 用的是http 协议,走网络通信。


    =================================华丽分割线==================

    亮瞎眼










  • 相关阅读:
    2020-2021-1 20201329 《信息安全专业导论》第十一周学习总结
    python gui
    2020-2021-1 20201329 《信息安全专业导论》第十周学习总结
    2020-2021-1 20201329 《信息安全专业导论》第九周学习总结
    四则运算
    熟悉编程语言
    链表
    网站设计
    使用nmap扫描队友
    熟悉编程语言
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501436.html
Copyright © 2011-2022 走看看