MapReduce
最好的Python实现是什么,一个框架还是一个库,可能和Apache hadoop
一样好,但只要它是Python的,并且在良好的文档和易于理解方面最好,完全实现了MapReduce
模式,高可伸缩性,高稳定性和轻量级。
我谷歌了一个叫mincemeat
的,不确定,但还有其他众所周知的吗?
谢谢
如果你搜索的话,这里那里有一些片段。例如Octopy和Disco以及hadoop。
然而,我不相信它们中的任何一个能在成熟度、稳定性、可伸缩性、性能等方面与Hadoop竞争。对于小的情况,它们应该足够了,但是对于更"辉煌"的事情,你必须坚持使用Hadoop。
请记住,您仍然可以使用python/jython在Hadoop中编写map/reduce程序。
编辑:我最近遇到了mrjob。它看起来很棒,因为它简化了编写map/reduce程序,然后在Hadoop或Amazon的Elastic MapReduce平台上启动它们的方式。带来好消息的文章在这里2019年更新:强烈推荐Apache Beam。
= = =
另一个不错的选择是小飞象。
下面是运行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
您还应该查看Mrs: http://code.google.com/p/mrs-mapreduce/
它特别适合于计算密集的迭代程序。