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