参考原文:
http://code.google.com/intl/zh-CN/edu/parallel/mapreduce-tutorial.html
MapReduce其实是两个分离的阶段:map和reduce。首先看一个简单的例子:
现需要计算1w篇文章中字母‘w’的数量。这些文章以键值对(key/value)的形式存储(表一):
DocumentID(key) | DocumentContent(Value) |
---|---|
1 | “This is an article”//假设这篇文章中含有“w”字母5个 |
2 | “This is another article”// 含有“w”字母8个 |
. | “…” |
. | “…” |
10000 | “This is the last article” //含有“w”字母9个 |
下面是一段伪代码:
map(String key, String value):
// key: document ID
// value: document contents
for each word w in value:
EmitIntermediate(w, “1”);
map函数将被应用到每一个键值对。因此第一次调用为map(1, “This is a article”),最后一次是map(10000, “This is the