小集群的工作分配。

mycloud的Python项目详细描述


我的云

利用小机群提高生产率。

mycloud不需要预先设置;如果您可以ssh到您的计算机,那么 它会开箱即用的。mycloud当前导出一个 具有几种常见输入格式的MapReduce API;添加对 自己的也很容易。

用法

启动群集:

import mycloud

cluster = mycloud.Cluster(['machine1', 'machine2'])

# or use defaults from ~/.config/mycloud
# cluster = mycloud.Cluster()

在列表上映射:

result = cluster.map(compute_factors, range(1000))

clientfs使得访问本地文件变得无缝!

def my_worker(filename):
  do_work(mycloud.fs.FS.open(filename, 'r'))

cluster.map(['client:///my/local/file'], my_worker)

使用MapReduce接口轻松处理较大的 数据集:

from mycloud.mapreduce import MapReduce, group
from mycloud.resource import CSV
input_desc = [CSV('client:///path/to/my_input_%d.csv') % i for i in range(100)]
output_desc = [CSV('client:///path/to/my_output_file.csv')]

def map_identity(kv_iter, output):
  for k, v in kv_iter:
    output(k, int(v[0]))

def reduce_sum(kv_iter, output):
  for k, values in group(kv_iter):
    output(k, sum(values))

mr = MapReduce(cluster, map_identity, reduce_sum, input_desc, output_desc)

result = mr.run()

for k, v in result[0].reader():
  print k, v

性能

请记住,它完全是用python编写的。

一些简单的操作(6台机器,96核):

  • 对十亿个数字进行排序:~500万
  • 预处理130万张图像(调整大小和筛选特征 提取):~1小时

输入格式

mycloud内置了处理以下文件类型的支持:

  • 级别数据库
  • CSV
  • 文本(行)
  • 拉链

添加对自己的支持很简单-只需编写一个资源类 描述如何获得读者和作家。(有关 详细信息)。

为什么?!?

有时候你在用python开发一些东西(因为这就是你 做),然后你决定你希望它被并行化。我们的电流 选项是多处理(将我们限制在一台机器上)和hadoop 流(限制我们使用字符串和hadoop的输入格式)。

还有,因为我可以。

学分

mycloud建立在物候有用的基础上 cloud序列化, SSH/Paramiko,和 LevelDB库。

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

推荐PyPI第三方库


热门话题
javajaxb在嵌套节点中生成xmlns:xsi声明   java重定向到youtube以上传jsp上可用的视频   java提高了JVM和ANT的性能   java如何将返回的JSON数据放在HTML表单中   java如何发送XWWWFORMURLENCODE在重新授权   java为什么jvm XX:+EliminateAllocations失败   堆移除和重建方法?(爪哇)   Stanford NPL in Spark(Scala)应用程序运行到Java堆空间(Java.lang.OutOfMemoryError)   调试java中打开/关闭println的任何方式(详细模式)   java IntelliJ在鼠标悬停时显示JavaDocs工具提示   Olingo Odata Java中的自动扩展选项   json将postgres文本arry转换为java列表?   oop需要帮助推断Java代码   复选框的java添加操作侦听器AbstractTableModel   java如何从公共静态void main(String[]args)传递值   java从数据库中获取大值   java Processing 2.0电影从jar运行时无法打开电影文件   java如何在不使用应用程序的情况下刷新活动?   尝试将JSON解析为ListView时的Android:JSON parse:null对象引用