当前位置: 首页 > article >正文

Hadoop之02:MR-图解

1、不是所有的MR都适合combine

1.1、map端统计出了不同班级的每个学生的年龄

如:(class1, 14)表示class1班的一个学生的年龄是14岁。

第一个map任务:

class1 14
class1 15
class1 16
class2 10

第二个map任务:

class1 16
class2 10
class2 11

平均年龄:

class1: ((14+15+16)+16)/4 = 61/4 = 15.25
class2: (10+10+11)/3 = 10.333
1.2、若强制使用combine的话。

第一个map任务:

class1 14
class1 15
class1 16
class2 10
==>平均值:
class1: (14+15+16)/3 = 15
class2: 10/1 = 10

第二个map任务:

class1 16
class2 10
class2 11
==>平均值:
class1: 16/1 = 16
class2: (10+11)/2  =10.5

平均年龄:

==>汇总求平均值:
class1: (15+16)/2  =15.5
class2: (10+10.5) = 10.25

比对结果:

class1: 15.25不等于15.5
class2: 10.333不等于10.25
1.3、结论:并非所有MR都适合combine操作

2、reduce端merge 排序 分组

第一个map输出

(hadoop,1)
(hadoop,1)
(hive,1)

第二个map输出

(hadoop,1)
(hive,1)

第三个map输出

(hadoop,1)
(hive,1)
(hive,1)
–>merge
(hadoop,1)
(hadoop,1)
(hive,1)
(hadoop,1)
(hive,1)
(hadoop,1)
(hive,1)
(hive,1)
–>排序
(hadoop,1)
(hadoop,1)
(hadoop,1)
(hadoop,1)

(hive,1)
(hive,1)
(hive,1)
(hive,1)
–>分组
一组
(hadoop,1)
(hadoop,1)
(hadoop,1)
(hadoop,1)
二组
(hive,1)
(hive,1)
(hive,1)
(hive,1)
–>每组调用一次reduce方法
(hadoop,1)
(hadoop,1)  -> hadoop, Iterable(1,1,1,1) -> reduce(hadoop, Iterable(1,1,1,1), context){...}
(hadoop,1)
(hadoop,1)

⭐️3、wordcount+combine过程

在这里插入图片描述

⭐️4、wordcount shuffle

在这里插入图片描述

5、grouping

在这里插入图片描述

6、自定义OutputFormat

在这里插入图片描述


http://www.kler.cn/a/568428.html

相关文章:

  • 基于Flask实现的多语言Hello World
  • 企业如何将ERP和BPM项目结合提升核心竞争力
  • 【数据挖掘】Matplotlib
  • Kubespray部署企业级高可用K8S指南
  • 基于Python Django的人脸识别上课考勤系统(附源码,部署)
  • uniapp 系统学习,从入门到实战(七)—— 网络请求与数据交互
  • 《国密算法开发实战:从合规落地到性能优化》
  • springboot项目Maven打包遇到的问题总结
  • 使用 REINFORCE 算法强化梯度策略
  • Android Studio安装与配置详解
  • 为你详细介绍系统数据库的概念结构、逻辑结构、物理结构设计方法,以及数据库的物理独立性的相关内容:
  • 正向代理、反向代理
  • 网络安全与等保2.0
  • 【Java项目】基于Spring Boot的体质测试数据分析及可视化设计
  • 力扣2662. 前往目标的最小代价
  • DeepSeek掘金——DeepSeek R1驱动的PDF机器人
  • 隐式转换为什么导致索引失效
  • LeetCode热题100刷题17
  • 15. C++多线程编程-网络编程-GUI编程(如Qt)学习建议
  • 16.4 LangChain LCEL 接口全解析:同步、异步与批处理的正确打开方式