Celery for MapReduce,还是Python中的其他替代品?

2024-10-01 11:26:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些昂贵的工作,非常适合在map-and-reduce模型下运行(长话短说,就是将之前通过某种耗时算法计算的几百个排名汇总起来)。在

我想在集群上并行化这些作业(不仅仅是多处理),并将重点放在两个实现上:CeleryDisco。Celery不支持NaiveMap和reduce开箱即用,尽管“map”部分很容易使用TaskSet完成,但如何有效地实现“reduce”部分?在

(我对disco的问题是它不能在Windows上运行,而且我已经为程序的另一部分设置了celery,因此运行另一个map reduce框架似乎相当不雅观。)


Tags: and模型算法重点mapreduce作业集群
2条回答

基本上,您需要获取一个任务的输出,并将其作为输入应用于另一个任务。芹菜用起来不方便。在

以celery的方式,您可以有一个周期性的任务调度器,它以异步的方式执行作业(映射部分),如果任务引用是单台计算机,或者将引用发布到DB backend(redis/mongo/etc)。您可能需要调度程序来收集此结果并应用于reduce函数。在

我想说的是,您在所有集群上运行自己的python进程来执行map和reduce,并确保将结果存储在类似redis的内存db中,并使用celery来执行map和reduce上的任务。你的主要过程将收集并合并结果。在

相关问题 更多 >