MapReduce 原理
2015-12-05 21:02:15 12 举报
MapReduce是一种分布式计算框架,它允许用户在大量数据上执行复杂的计算任务。其核心原理是将一个大的计算任务拆分成多个小的子任务,这些子任务可以在多台计算机上并行执行。Map阶段负责将输入数据分解成键值对,并对其进行处理和转换;Reduce阶段则负责将Map阶段输出的中间结果按照键进行合并和汇总,最终得到所需的输出结果。通过这种方式,MapReduce可以有效地利用集群中的多台计算机资源,提高计算效率和可扩展性。同时,MapReduce还提供了容错机制和自动调度功能,使得用户无需关心底层的细节实现,只需编写简单的Map和Reduce函数即可完成复杂的数据处理任务。
作者其他创作
大纲/内容
合并
一个任务的 Map 端
buffle环形内存缓冲区
输出数据阶段
溢出到磁盘的 spill 文件
合并 Map 的输出1. 排序阶段是循环进行的
拉取其他 Map 任务Key-Value 对
一个任务的 MapTask 端
HTTP 方式 COPY 数据
Reduce 输出文件阶段Shuffle 结束
Reduce Copy 阶段
读取到内存缓冲区
一个任务的 Reduce 端
合并 spill 文件
map 函数处理阶段Shuffle 开始
Map 输出写在本地
一个输入分片
通过不断地 merge 合并操作后最终生成一个文件可能在内存、磁盘中(默认)
0 条评论
下一页