hadoop3.x MapReduce Combiner作用

环形缓冲区溢写

环形缓冲区,当缓冲区的数据达到 缓冲区的 80% 时(100M 80% =80M),就启动 *溢写

每次溢写,会在磁盘上生成一个临时文件,内容如下:

(李雷,1)
(李雷,1)
(lucy,1)
(lucy,1)
(lucy,1)

可见有很多重复的数据

Combiner

在 溢写 前,执行 Combiner ,对 key 相同的 value,
进行 累加合并,然后写入磁盘,内容如下:

(李雷,2)
(lucy,3)

作用

Combiner对MapTask的输出进行汇总,以减小网络传输量

实现

Combiner的父类是 Reducer

Combiner和Reducer的区别

在于运行的位置:

  • Combiner是在 环形缓冲区溢写时运行
  • Mapper执行结束后,才执行Reducer

Combiner的应用场景

适合 累加,最大值 的 MapReduce 任务

不适合求 平均数,中位数 的 MapReduce 任务


原文出处:/show_1IX2Baovg8xf.html