纯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+)标准库(至少要运行)。

明确的非目标是:

  • 做一个文件系统。
  • 强大到掌握失败。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从活动中刷新片段,然后返回片段   java如何按获取列排序?   java可以使用访问者模式来执行一般的双重分派吗?   如何从C++调用java方法   编译时java非法启动类型错误   shell通过Java程序使用Haskell的GHCI   如何使用ffmpeg在java程序中获取视频的持续时间?   比较java中的arraylist对象   java阻止Eclipse/Maven调用一个特定插件   java改进列表列表?   使用Java查找SFTP最旧文件的文件大小和上次修改   上下文中SQLite DB的java相对路径。xml   Java:何时使用检查的异常、未检查的异常或断言   如何在Java中使用递归生成负斐波那契序列?   java在画布中绘制,并将其保存到更大的图像中