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

相关推荐
微订校园外卖平台5 小时前
校园外卖平台选模板还是定制:架构、数据流与验收清单
大数据·架构·外卖系统·本地生活·微订
Eloudy7 小时前
Qwen2.5-14B-Instruct-AWQ 模型文件结构分析
大数据·elasticsearch·搜索引擎
重生之高冷汉堡包9 小时前
跨境电商运营团队如何安全交接店铺账号?多账号权限管理指南
大数据
玩AI的奶茶10 小时前
MiniMax H3 出 30 秒长片:显存账、拼接法和一次的成本
大数据·人工智能·ai·gpu算力·算力租赁
SelectDB10 小时前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析
爱签AI电子合同11 小时前
电子合同全维度实测与选型指南
大数据·人工智能
AI办公探索者11 小时前
从SaaS到本地部署:大模型推理成本优化与8888元私有化方案的技术解析
大数据·人工智能
做运维的阿瑞11 小时前
云项目可观测性与成本治理:告警、日志、Dashboard 与预算标签
大数据·云原生·云计算·terraform
4SAPI12 小时前
多国产模型混合调度与企业级治理生产选型指南:4SAPI、硅基流动与 OpenRouter 的架构权衡
大数据·人工智能·架构·php
智购科技自动售货机厂家12 小时前
让AI经营自动售货机:从Project Vend看工具权限与业务规则~YH
大数据·服务器·单片机·嵌入式硬件·深度学习