Clojure/Java 的分布式计算框架
2022-09-03 01:37:21
我正在开发一个应用程序,我需要在一个可能非常大的不同计算机集群中分配一组任务。
理想情况下,我想要一种非常简单的惯用方式在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库?
更新:
感谢Apache Hadoop的所有建议 - 看起来它可能符合要求,但是它似乎有点过分,因为我不需要像Hadoop那样的分布式数据存储系统(即我不需要处理数十亿条记录)...如果存在更轻量级且仅专注于计算任务的东西将更可取。