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端输出压缩
代码更改

输出结果

相关推荐
Hello.Reader6 分钟前
Flink DynamoDB Connector 用 Streams 做 CDC,用 BatchWriteItem 高吞吐写回
大数据·python·flink
早日退休!!!7 分钟前
内存泄露(Memory Leak)核心原理与工程实践报告
大数据·网络
发哥来了27 分钟前
主流AI视频生成工具商用化能力评测:五大关键维度对比分析
大数据·人工智能·音视频
無森~37 分钟前
MapReduce
大数据·mapreduce
重生之绝世牛码1 小时前
Linux软件安装 —— zookeeper集群安装
大数据·linux·运维·服务器·zookeeper·软件安装
!chen1 小时前
大数据技术领域发展与Spark的性能优化
大数据·性能优化·spark
重生之绝世牛码1 小时前
Linux软件安装 —— kafka集群安装(SASL密码验证)
大数据·linux·运维·服务器·分布式·kafka·软件安装
行业探路者2 小时前
如何利用二维码提升富媒体展示的效果?
大数据·人工智能·学习·产品运营·软件工程
YangYang9YangYan2 小时前
2026高职大数据与会计专业学数据分析的价值分析
大数据·数据挖掘·数据分析
Dxy12393102163 小时前
Elasticsearch 8.13.4 深度进阶指南:从底层架构到高阶实战的全维突围
大数据·elasticsearch·架构