我正在尝试使用Map-Reduce框架计算出一个大型程序,该框架需要将整个过程分成三个Map-Reduce作业,这些作业应该按顺序进行。
我正在使用mincemeat.py,因为我在许多地方读到它比octo.py和python中的其他框架实现更快。
但我无法链接多个作业,因为每个客户端都需要提供密码并连接到服务器以执行。我的想法是,通过启动客户端,所有作业应按顺序运行。我是python的新手。感谢有人可以在这方面帮助我。
下面是启动作业的代码,例如wordCount ..
s = mincemeat.Server()
s.datasource = datasource
s.mapfn = map_wordCount
s.reducefn = reduce_wordCount
wordCounts = s.run_server(password="password")
print wordCounts
我想要另一个作业的map并减少要调用的函数,而不需要单独的客户端调用它。任何指出如何做到这一点的人。
感谢。
答案 0 :(得分:1)
您是否可以map
为Pool
工作人员使用Pool
,这些工作人员将启动一批工作,这些工作的目标是启动另一个map
每个运行mincemeat.py
的工作人员 - 减少工作?我从来没有听说过pathos
,但我使用Pool
框架执行此操作...它为map
提供了阻止imap
,迭代amap
和异步{ {1}}(以及pipes
)用于后端,例如multiprocessing
,threading
,mpi4py
,parallel python
(基于套接字的分布式并行计算),和ssh-tunneling。
这有你选择的后端或后端的开销,因此对于非常小的任务,你会看到很多时间作为开销,但对于任何更大的嵌套分布式并行计算都是一个胜利。
您可以在此处找到pathos
(和pyina
- mpi4py
部分pathos
部分:https://github.com/uqfoundation