我正在开发一个应用程序,我需要在可能相当大的不同机器集群中分配一组任务。Clojure/Java的分布式计算框架
理想情况下,我想要一个非常简单,习惯于在Clojure中做到这一点的方法,例如,是这样的:
; create a clustered set of machines
(def my-cluster (new-cluster list-of-ip-addresses))
; define a task to be executed
(deftask my-task (my-function arg1 arg2))
; run a task 10000 times on the cluster
(def my-job (run-task my-cluster my-task {:repeat 10000})
; do something with the results:
(some-function (get-results my-job))
奖金,如果它可以做一些在群集上类似的map-reduce以及.....
什么来实现这样的事情的最好方法?也许我可以包装一个适当的Java库?
UPDATE:
感谢的Apache Hadoop的所有建议 - 看起来似乎符合该法案,但它似乎有点像矫枉过正,因为我不是一个需要分布式数据存储系统,Hadoop等用途(即我不需要处理数十亿条记录)......如果它存在,那么更轻量级的并且专注于计算任务的东西将更可取。
在clojure谷歌组中,已经有关于兵马俑,GridGain和java(JMS,JXTA/shoal,JINI)标准的讨论,您可以通过谷歌搜索它们。 – 2011-03-26 03:14:15