map reduce

大略的把google的论文看完了,需要几个实例形象地了解一下map reduce这种并行计算模型.

map reduce实例分析,有待详细研究计算模型

http://hi.baidu.com/cccomeon/blog/item/e2aac8560577285e574e007e.html 

基本理解,字数统计是很直观的例子。

map(String key, String value):

// key: document name

// value: document contents

for each word w in value:

EmitIntermediate(w, "1");

reduce(String key, Iterator values):

// key: a word

// values: a list of counts

int result = 0;

for each v in values:

result += ParseInt(v);

Emit(AsString(result));

有多个文档,map方法,将不同的文档映射到不同的机器去统计,产生中间结果。中间结果为键值对列表:me 100次、you 50次,并根据key对列表排序。reduce方法,统计某个特定的词you的出现次数,到不同的map机器上去读取you的出现次数,并且累加,最终得出you的出现次数。

抽象的模型表示如下:

map (k1,v1) → list(k2,v2)

reduce (k2,list(v2)) → list(v2)

猜你喜欢

转载自hill007299.iteye.com/blog/1434752