数据处理:MapReduce及其他
1. MapReduce 概述
MapReduce 是 Hadoop 1 中支持的主要处理模型,它遵循分治策略处理数据,这种策略因 Google 在 2006 年发表的一篇论文(http://research.google.com/archive/mapreduce.html)而流行,并且其基础源于函数式编程和数据库研究。
1.1 MapReduce 的基本概念
MapReduce 这个名字指的是对所有输入数据应用的两个不同步骤: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,l
超级会员免费看
订阅专栏 解锁全文
1720

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



