Hadoop MapReduce

MapReduce 分为两个阶段,分为Map 阶段和Reduce 阶段,可以自定义map函数 和reduce函数 ,

map函数 的输入是行在文件的字节偏移量 ,value是文件的一行数据。

reduce函数 的输入是key 和对应key的value组 ,然后reduce函数 可以对这一组数据进行处理

再来看mapreduce是如何实现的,因为可以知道reduce阶段 的value是一组 的,包括mapreduce还发生了文件读取 和写入文件的操作,包括一些序列化

当有一个文件 时,文件 在底层操作系统 是很多个数据块,

map 是以数据切片 逻辑进行处理 的,所以当读取文件数据 时,会对物理文件 进行逻辑切片 ,然后一个切片 就对应一个MapTask ,尽量 保证切片大小等于数据块大小 ,让一个MapTask 直接本地处理 ,加快处理速度

Map 阶段处理逻辑 ,map读入文件的每行数据 ,然后以key-value 的方式处理输出到一个分区 ,输出到哪个分区 取决于默认 的还是自定义分区处理 了,默认 是根据键的哈希值确定分区。

分区 其实是先保存到一个环形缓存区 ,当环形缓存区达到一定阈值 的时候,就会把缓冲区数据落盘 ,落盘前 会对分区内 的数据 进行快速排序 ,如果有多个小文件 ,会对多个小文件进行归并排序 ,合成一个大文件,然后分区和reduceTask的数量一样。

reduce 阶段,reduce可会读取所有mapTask 对应分区的所有文件 ,如果有多个文件 ,也会进行归并排序 ,这样就保证了Reduce函数的输入里的value,是一个相同Key的value集合 。然后经过reduceTask函数进行数据处理,最终输出,输出文件数 也跟reduceTask的个数 相关,reduceTask的数目不能大于分区数目

相关推荐
198******126346 小时前
2026企业AI办公工具选型指南:从评估框架到场景适配
大数据·运维·人工智能
2601_967212726 小时前
专利型电源轨道系统技术路线对比与选型框架
大数据·运维·网络·经验分享
数字化顾问7 小时前
(138页PPT)流程体系的建设优化与运营(附下载方式)
大数据·运维·人工智能
织码weavecodes8 小时前
培训平台部署备份与容灾:从三服务交付到可恢复运行
大数据·学习·开源软件
天涯明月19938 小时前
世界模型:原理、范式与工程实践
大数据·人工智能·大模型·具身智能·世界模型
梦想画家10 小时前
SQLMesh Python 模型入门(三):前后置语句、蓝图建模与避坑指南
大数据·python·sqlmesh
和裕10 小时前
年度框架直供 vs 零散按需采购:定制纸箱采购成本、交付与服务核心区别全对比
大数据·运维·网络·人工智能·算法
具身AGI11 小时前
ARR还是交付量,物理AI 国产 的三种收入口径
大数据·人工智能
计算机源码社11 小时前
基于大数据技术的城市空气质量时序趋势与站点特征分析系统 面向监测站点的城市空气污染时空异质性分析与可视化系统
大数据·机器学习·数据挖掘·数据分析·毕业设计·课程设计·数据可视化
AC赳赳老秦12 小时前
OpenClaw 数据引用规范自动生成:为公开数据构建可信来源标注与标准引用体系
大数据·开发语言·汇编·数据库·人工智能·deepseek·openclaw