纯python高度分布的mapreduce集群。
pluribus的Python项目详细描述
刚读完最初的google MapReduce paper,我 显然觉得有必要尝试用python实现这样一个系统。
我的目标是实现 虽然我强烈警告不要使用此代码 为了任何真实的东西。
因为目标之一(见下面的目标)是来自最终用户的简单性 站在立场上,我遵循了肯尼思·雷茨的一些观点 有自述文件和文档。
示例
典型字数示例:
# myjob.py from pluribus import job @job.map_ def emit_words(key, value): # key: document name # value: document contents for word in value.split(): yield word, 1 @job.reduce_ def sum_occurences(key, values): # key: a word # values: a list of counts return sum(values)
假设您在一台主机上运行所有内容,则可以忽略 网络连接信息。
启动pluribusmaster:
$ pluribus master
启动pluribusworker(或几百个):
$ pluribus worker
在主机上或可以与主机通话的另一台机器上:
$ pluribus job myjob # ... wait <results>
目标
明确的目标是:
- 简单易用,既是管理员又是最终用户。
- 有据可查。
- 对工人的失败很有信心。
- 够快了。
- 只使用python(2.7+)标准库(至少要运行)。
明确的非目标是:
- 做一个文件系统。
- 强大到掌握失败。