MapReduce是一个抽象的分布式计算模型,主要对键值对进行运算处理。用户需要提供两个自定义函数:
- map:用于接受输入,并生成中间键值对。
- reduce:接受map输出的中间键值对集合,进行sorting后进行合并和数据规模的缩减,并进行期望信息的提取。
用户通过map和reduce函数声明键值对的处理方式,而调度,并行计算和容灾等底层问题则是对用户透明的。
1、示例
1.1 词频统计
在这个案例中,目标是将文本作为输入,将其中的单词出现频率进行统计。 此时,map和reduce的伪代码如下:
map(String key, String value):
// key: document name