轻松入门大数据 第4章 入门到进阶:系统玩转分布式计算框架MapReduce 4.1 Hadoop之MapReduce 4.1.36 本地预计算Combiner意义

矫情吗;* 2024-03-17 08:59 13阅读 0赞

轻松入门大数据

文章目录

    • 轻松入门大数据
      • 第4章 入门到进阶:系统玩转分布式计算框架MapReduce
        • 4.1 Hadoop之MapReduce
          • 4.1.36 本地预计算Combiner意义

在这里插入图片描述

第4章 入门到进阶:系统玩转分布式计算框架MapReduce

4.1 Hadoop之MapReduce
  1. 初识MapReduce
  2. MR优缺点
  3. MR核心思想
  4. 官方词频统计案例分析
  5. MR编程规范
  6. MR数据类型
  7. 词频统计分析详解
  8. 模板方法设计模式
  9. 序列化
  10. Hadoop序列化之Writable
  11. 自定义序列化案例实战
  12. 初识InputFormat&InputSplit
  13. InputSplit和Block的关系
  14. InputFormat系列编程
  15. Partitioner
  16. Combiner
  17. 排序
  18. 初识OutputFormat
  19. 自定义OutputFormat实战
  20. 场景题之group by
  21. 场景题之distinct
  22. 场景题之join
  23. Shuffle详解
  24. MR核心组件总结
4.1.36 本地预计算Combiner意义

看个场景

在这里插入图片描述

假设有四个Mapper, 以wc 词频统计为例

在这里插入图片描述

中间处理成这样了

在这里插入图片描述

现在只有两个Reducer,就成这样了,最后在Reducer 中计算出结果得到

在这里插入图片描述

这是我们的正常流程

在这里插入图片描述

以这个c 为例,前面两个要经过网络传输,后面三个也是要经过网络传输,能不能有一种机制【预聚合机制】,

即提前计算,因为我们要求wc 词频统计,在Mapper 端,处理完后,加上一个动作,这个动作做一个和我们的业务逻辑相同的操作,比如我们这里是要求出词频,在每个Mapper 结束时,加上一个求出这个word 出现的次数的操作(求和),

如果有(当然有) 这种操作,那么每一个Mapper 处理完后,就是下面这样的 。

在这里插入图片描述

到达Reducer 的时候,数据的样子就是下面这样的

在这里插入图片描述

比较一下

在这里插入图片描述

很明显,加上这个操作后,传输次数降低了,在大数据中,降低文件传输数量对作业性能也是很大的提升。

所以预聚合是分布式计算框架中非常常见的一个优化手段。

没错, MR 中有这个东西,它叫Combiner,它就是一个本地的Reducer 操作。

它和真正的Reducer 的区别:

  • 真的Reducer 是在接收到所有Mapper 的结果之后进行处理
  • Combiner:是在每个MapTask 上运行的

∴ Combiner 的意义:对每个MapTask 的输出做本地汇总,进而减少数据的网络传输量。

发表评论

表情:
评论列表 (有 0 条评论,13人围观)

还没有评论,来说两句吧...

相关阅读