Python中最佳的mapReduce实现是什么?

5 投票
3 回答
7387 浏览
提问于 2025-04-17 01:02

有没有什么好的Python实现的MapReduce,无论是框架还是库,最好能和Apache的hadoop一样好,但前提是它是用Python写的,并且文档齐全、易于理解,完全支持MapReduce的模式,具有高扩展性、高稳定性,并且轻量级。

我在网上找到了一个叫mincemeat的,不太确定它怎么样,还有没有其他比较知名的?

谢谢!

3 个回答

2

你还可以看看这个Mrs: http://code.google.com/p/mrs-mapreduce/

它特别适合那些需要大量计算的重复性程序。

4

2019年的更新:强烈推荐Apache Beam

===

另一个不错的选择是Dumbo

下面是用来进行单词计数的map/reduce代码。

def mapper(key,value):
  for word in value.split(): yield word,1
def reducer(key,values):
  yield key,sum(values)

if __name__ == "__main__":
  import dumbo
  dumbo.run(mapper,reducer)

要运行这个程序,只需提供你的文本文件wc_input.txt进行计数,输出结果会保存为wc_output

 python -m dumbo wordcount.py -hadoop /path/to/hadoop -input wc_input.txt -output wc_output
7

如果你搜索一下,会发现一些相关的资源。例如,有OctopyDisco,还有Hadoopy

不过,我觉得这些工具在成熟度、稳定性、可扩展性和性能等方面都比不上Hadoop。对于一些小项目来说,它们可能够用,但如果你想做一些更复杂的事情,还是得用Hadoop。

记住,你仍然可以用python或者jython在Hadoop上写map/reduce程序。

补充一下:我最近发现了mrjob。这个工具看起来很不错,它可以简化写map/reduce程序的过程,然后把这些程序在Hadoop或者亚马逊的Elastic MapReduce平台上运行。带来这个好消息的文章可以在这里找到。

撰写回答