需求:单词计数
"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>
思想
分而治之:大拆小,并行处理
移动计算而非数据