数据处理:MapReduce及其他
1. MapReduce概述
MapReduce是一种数据处理模型,它遵循分治策略,由Google在2006年提出并流行起来,其思想源于函数式编程和数据库研究。它主要包含两个步骤:map函数和reduce函数。
每个MapReduce应用都是基于这个简单模型构建的一系列作业。有时,整个应用可能需要多个作业,一个作业的reduce阶段输出会作为另一个作业的map阶段输入;有时可能会有多个map或reduce函数,但核心概念保持不变。
从功能角度看,MapReduce将数据结构从一个(key, value)对列表转换为另一个。在Map阶段,数据从HDFS加载,一个函数并行应用于每个输入(key, value),输出一个新的(key, value)对列表:
map(k1,v1) -> list(k2,v2)
框架会收集所有列表中具有相同键的对并将它们分组,为每个键创建一个组。Reduce函数并行应用于每个组,进而产生一个值列表:
reduce(k2, list (v2)) → k3,list(v3)
最终输出会写回HDFS。
1.1 MapReduce执行流程
以下是MapReduce执行的简单流程图:
graph LR
A[数据源] --> B[数据切片]
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



