2012-11-18 42 views
0

摘要:在处理数据库中的数据集合时,MapReduce是一个好主意,而不是找到一些有点复杂(或者很大)问题的答案。GAE MapReduce巨大的查询

我要同步的一组联合源(例如网址等http://xkcd.com/rss.xml),其被存储在GAE的数据存储,作为一个收集/表。我看到两种选择,一种是直截了当的。做一个简单的任务,放入队列中,每个任务句柄的100或1000或任何自然数似乎适合每个任务。另一种选择是MapReduce。

在后一种情况下,Map会处理所有事情,而Reduce不做任何事情。此外,地图没有结果,它只是改变了(状态)(数据存储)。你可以看到,一个源可以映射到很多帖子,所以我的地图也可能被称为“爆炸”(Explode)。

所以不排放,没有减少的事情。我喜欢这种地图方法的原因是,我告诉谷歌:在这里,拿我的收藏/表格,分割它,但是你认为适合不同的地图绘制者,然后将帖子存储在任何你喜欢的地方。数据存储使用“高度复制”。因此,数据的可用性很高,对于什么“计算单位”来说,什么样的实体并不会真正减少网络通信的最佳选择。保存帖子也是一样,因为他们需要去所有数据存储单元。我喜欢的是,mapreduce对于卡住的地图计算有一定的故障恢复方式,并且它知道发送到哪个节点需要多少任务,而不是在希望有意义的地方排队一些实体。

也许我这里的思维方式是错误的,在这种情况下,请纠正我。无论如何,这种方法对于缺少缩减和地图是“爆炸”是错误的吗?

回答

1

不,地图漂亮和你手动排列任务一样。