2013-10-21 7 views
6

Ich habe einen einfachen Oozie Workflow mit Sqoop, Hive und Pig Aktionen erstellt. Für jede dieser Aktionen startet Oozie einen MR-Launcher und startet die Aktion (Sqoop/Hive/Pig). Somit gibt es insgesamt 6 MR-Jobs für 3 Aktionen im Workflow.Was ist die Bedeutung des Oozie MR Launcher?

Warum startet Oozie einen MR-Launcher, um die Aktion zu starten und nicht direkt die Aktion zu starten?

Antwort

4

Ich postete das gleiche in Apache Flume Foren und hier ist die Antwort.

Es ist auch zu verhindern, dass der Oozie-Server stecken bleibt oder instabil wird. Wenn Sie zum Beispiel eine Reihe von Workflows mit Pig-Jobs haben, , dann müsste der Oozie-Server mehrere Kopien des Pig-Clients direkt ausführen (was ein relativ "schweres" Programm ist). Durch Verschieben des gesamten Benutzercodes und externer Clients zum Zuordnen von Aufgaben im Launcher-Job bleibt der Oozie Server leichter und weniger fehleranfällig. Es kann auch auf diese Weise viel besser skalierbar sein, da die Launcher-Jobs den Job-Start/die Überwachung auf andere Maschinen im Cluster verteilen; Andernfalls, mit der Oozie Server alles tun, müssten wir die Anzahl der gleichzeitige Workflows basierend auf Ihrem Oozie Server Maschinenspezifikationen (RAM, CPU, usw.) begrenzen. Und schließlich ist der Oozie-Server aus architektonischer Sicht selbst zustandslos; Das heißt, alles ist in der Datenbank gespeichert und der Oozie-Server kann jederzeit heruntergefahren werden, ohne etwas zu verlieren. Wenn wir Jobs direkt vom Oozie-Server starten würden, hätten wir jetzt einen Zustand (z. B. kann der Pig-Client nicht neu gestartet und fortgesetzt werden).