Google在2004年发表了一篇论文:MapReduce: Simplified Data Processing on Large Clusters,介绍了他们内部如何实现和使用MapReduce。
简单地说,MapReduce是一个受限的分布式并行编程模型,可用于处理和输出很大的数据集。而编写MapReduce任务的用户只需要实现两个函数:
伪代码来自Google的原始论文:
map (String key, String value) :
// key: document name
// value: ducument content
for each word w in value :
EmitIntermediate(w, "1");
reduce (String key, Interator values) :
// key: a word
// value: a list of counts
int result = 0;
for each v in values :
result += ParseInt(v);
Emit(AsString(result));
MapReduce全程概览