Hadoop---MapReduce(3)

MapTask工作机制

(1)Read阶段 :MapTask通过InputFormat获得的RecordReader,从输入InputSplit中解析出一个个key/value。

(2)Map阶段 :该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。

(3)Collect收集阶段 :在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓冲区中。

(4)Spill阶段 :即"溢写",当环形缓冲区满后,MapReduce会将数据写到本地磁盘上,生成一个临时文件。需要注意的是,将数据写入本地磁盘之前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压缩等操作。

溢写阶段详情:利用快速排序算法

(5)Merge阶段:当所有数据处理完成后,MapTask对所有临时文件进行一次合并,以确保最终只会生成一个数据文件。

Reduce-join案例

将左边两个表合并为右边的表

数据清洗(ETL)

在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。
原始数据:

清洗后的数据

Hadoop数据压缩


Map端输出压缩

运行后不会产生.bzip

reduce端输出压缩
代码更改

输出结果

相关推荐
巧克力味的桃子24 分钟前
Spark 课程核心知识点复习汇总
大数据·分布式·spark
金刚猿32 分钟前
工作流调度平台 Dolphinscheduler - Standalone 单机部署 + Flink 部署【kafka消息推送、flink 消费】
大数据·flink
木风小助理35 分钟前
解读 SQL 累加计算:从传统方法到窗口函数
大数据·数据库·sql
SeaTunnel1 小时前
Apache SeaTunnel 2025 案例精选重磅发布!
大数据·开源·apache·seatunnel·案例
竹君子1 小时前
新能源知识库(167)什么是章鱼能源?
大数据·人工智能·能源
期货资管源码2 小时前
外盘期货资管分仓软件源码搭建教程
大数据·源代码管理
Justice Young2 小时前
Hive第四章:HIVE Operators and Functions
大数据·数据仓库·hive·hadoop
百***24373 小时前
GPT-5.2国内调用+API中转+成本管控
大数据·人工智能·深度学习
min1811234563 小时前
金融风控中的实时行为建模
大数据·人工智能
LF3_3 小时前
hive,Relative path in absolute URI: ${system:user.name%7D 解决
数据仓库·hive·hadoop