gpt4 book ai didi

java - Clojure/Java分布式计算框架

转载 作者:太空狗 更新时间:2023-10-29 22:39:50 24 4
gpt4 key购买 nike

我正在开发一个应用程序,我需要在一个可能相当大的不同机器集群中分配一组任务。

理想情况下,我想要一种非常简单、惯用的方式在 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 使用的分布式数据存储系统(即我不需要处理数十亿条记录)...如果存在更轻量级且只专注于计算任务的东西,那将是更可取的。

最佳答案

Hadoop 是近来 Clojure 世界中几乎所有大规模 大数据 激动人心的基础,尽管有比直接使用 Hadoop 更好的方法。

Cascalog是一个非常流行的前端:

    Cascalog is a tool for processing data on Hadoop with Clojure in a concise and    expressive manner. Cascalog combines two cutting edge technologies in Clojure     and Hadoop and resurrects an old one in Datalog. Cascalog is high performance,     flexible, and robust.

另请查看 Amit Rathor 的 swarmiji建立在 RabbitMQ 之上的分布式 worker 框架。它较少关注数据处理,而更多地关注将固定数量的任务分配给可用计算能力池。 (附:在他的书里,Clojure in Action)

关于java - Clojure/Java分布式计算框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com