what:分解大数据集,并行处理,汇总结果(分解组合思想)
目的:SQL查询转换为MR,理解MR更好优化SQL
优点:
只需关注业务逻辑(自定义函数map,reduce),不用知道分布式处理细节。
移动计算逻辑到数据所在节点
how:自定义函数map、reduce,系统自动完成分布式处理
map阶段:逻辑切片,并行map,转换为键值对<key,value>
shuffle阶段:按键分组排序,保证相同键分到同一个reduce
reduce阶段:拉取对应分区的键值对,聚合值
练习题 词频统计
需求:统计每个单词数量
"Hello World Hello Hadoop Hello MapReduce"
实现:
map阶段:拆分成单词,执行map函数输出键值对<word, 1>
<Hello, 1>
<World, 1>
<Hello, 1>
<Hadoop, 1>
<Hello, 1>
<MapReduce, 1>
shuffle阶段:按键合并值
"Hello": [1, 1, 1]
"World": [1]
"Hadoop": [1]
"MapReduce": [1]
reduce阶段:执行reduce函数,按键聚合值
<Hello, 3>
<World, 1>
<Hadoop, 1>
<MapReduce, 1>