Verteilte Jobplanung, Verwaltung und Berichterstellung

9

Ich habe kürzlich mit Hadoop gespielt und war beeindruckt von der Planung, Verwaltung und Berichterstellung von MapReduce-Jobs. Es scheint, dass die Verteilung und Ausführung neuer Jobs ziemlich nahtlos verläuft und der Entwickler sich auf die Umsetzung seiner Jobs konzentrieren kann.

Ich frage mich, ob etwas in der Java-Domäne für die verteilte Ausführung von Jobs existiert, die nicht einfach als MapReduce-Probleme ausgedrückt werden können. Zum Beispiel:

  • Jobs, die Aufgabenkoordination und Synchronisation erfordern. Zum Beispiel können sie sequenzielle Ausführung von Aufgaben beinhalten, aber es ist möglich, einige Aufgaben gleichzeitig auszuführen:

    %Vor%
  • CPU-intensive Aufgaben, die Sie verteilen möchten, aber keine Ausgaben zur Reduzierung bereitstellen - z. B. Bildkonvertierung / Größenanpassung.

Gibt es ein Java-Framework / eine Java-Plattform, die eine solche verteilte Computerumgebung bietet? Oder ist das mit Hadoop akzeptabel / erreichbar - und wenn ja, gibt es irgendwelche Muster / Richtlinien für diese Art von Jobs?

    
teabot 16.12.2009, 14:12
quelle

6 Antworten

3

Ich habe seitdem Spring Batch und Spring Batch Integration , die viele meiner Anforderungen zu erfüllen scheinen. Ich werde dich wissen lassen, wie es mir geht.

    
teabot 04.01.2010, 15:40
quelle
2

Sieh dir Quarz an. Ich denke, es unterstützt Dinge wie Remote-Verwaltung von Jobs und Clustering mehrerer Maschinen, um Jobs auszuführen.

    
Upgradingdave 17.12.2009 14:28
quelle
0

Ich denke, Sie suchen nach einer Workflow-Engine für CPU-intensive Aufgaben (wissen Sie auch "wissenschaftlichen Workflow", zB Ссылка ). Aber ich bin mir nicht sicher, wie verteilt du es haben willst. Normalerweise haben alle Workflow-Engines einen "Single Point of Failure".

    
Alexey Kalmykov 16.12.2009 14:21
quelle
0

Ich glaube, dass einige Probleme als Map-Reduction-Probleme ausgedrückt werden können.

Bei Problemen, die Sie nicht ändern können, um sie an die Struktur anzupassen, können Sie nachsehen, wie Sie mit ExecutorService . Aber es wird auf eine JVM beschränkt sein und es wird ein ziemlich niedriges Level sein. Es wird jedoch eine einfache Koordination und Synchronisation ermöglichen.

    
Fried Hoeben 16.12.2009 14:26
quelle
0

ProActive Scheduler scheint Ihren Anforderungen zu entsprechen, insbesondere den komplexen Workflows, die Sie bei der Aufgabenkoordinierung erwähnt haben. Es ist Open Source und Java basiert. Sie können damit beliebige Aktionen, Hadoop-Jobs, Skripte, Java-Code, ... ausführen.

Haftungsausschluss: Ich arbeite für die Firma dahinter

    
Youri 26.03.2014 13:48
quelle
0

Probieren Sie Redisson -Rahmen aus. Es bietet eine einfache API zum Ausführen und Planen von java.util.concurrent.Callable und java.lang.Runnable Aufgaben. Hier ist Dokumentation über verteilte Executor Service und Scheduler-Service

    
Nikita Koksharov 25.08.2016 14:11
quelle