Distributed-computing-framework für Clojure/Java

Entwickle ich eine Anwendung, wo ich verteilen müssen eine Reihe von Aufgaben, die über einen potenziell sehr großen cluster von verschiedenen Maschinen.

Idealerweise möchte ich eine sehr einfache, idiomatische Weise, dies zu tun in Clojure, z.B. so etwas wie:

; 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))

Bonus, wenn es etwas tun kann, wie Map-reduce " - auf die cluster.....

Was ist der beste Weg, etwas zu erreichen, wie diese? Vielleicht könnte ich wickeln Sie eine entsprechende Java-Bibliothek?

UPDATE:

Danke für den Vorschlag, die Apache-Hadoop - wie es aussieht, könnte die Rechnung passen, aber es scheint ein wenig wie overkill, da bin ich nicht benötigen eine verteilte Daten-storage-system wie Hadoop verwendet (d.h. ich brauche nicht zu verarbeiten Milliarden von Datensätzen)... etwas mehr leicht und konzentrierte sich auf die Rechen-Aufgaben nur dann vorzuziehen, wenn Sie existiert.

  • in der clojure google-Gruppe, gab es Diskussionen darüber, Terrakotta, GridGain und java (JMS, JXTA/shoal, JINI ) - standards, können Sie google für Sie.
InformationsquelleAutor mikera | 2011-02-26
Schreibe einen Kommentar