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的数目不能大于分区数目

相关推荐
Hello.Reader16 小时前
Flink Source/Sink 的 Exactly-Once、At-Least-Once 到底意味着什么?
大数据·flink
智驱力人工智能16 小时前
守护矿山动脉 矿山皮带跑偏AI识别系统的工程化实践与价值 皮带偏离检测 皮带状态异常检测 多模态皮带偏离监测系统
大数据·人工智能·opencv·算法·安全·yolo·边缘计算
binbinaishijie8816 小时前
Matlab读取CSV数据并处理实战指南:从入门到精通
大数据·数据库·其他·matlab
数琨创享TQMS质量数智化17 小时前
数琨创享成功入选江苏省首批入库培育数据企业,踏入数智发展新征程
大数据
WLJT12312312317 小时前
接插件:电子系统的连接核心与产业赋能
大数据·人工智能·科技·安全·生活
无心水17 小时前
2026全球与中国形势深度解析:政治格局、经济金融、科技突破与国家规划(附数据图表)
大数据·科技·金融
郑州光合科技余经理18 小时前
私有化B2B订货系统实战:核心模块设计与代码实现
java·大数据·开发语言·后端·架构·前端框架·php
xindoo18 小时前
最近AI领域爆火的 Agent Skills 是什么?
大数据·人工智能
脑壳疼___18 小时前
springAi集成es向量库
大数据·elasticsearch·搜索引擎
DX_水位流量监测18 小时前
阵列雷达波测流监测技术:原理、参数与应用实践
大数据·网络·人工智能·信息可视化·数据分析