Einführung in Apache Oozie

Einführung in Apache Oozie

Quellknoten: 2018153

Einleitung

Dieser Artikel ist ein ausführlicher Leitfaden für Anfänger in Apache Oozie. Apache Oozie ist ein Workflow-Scheduler-System zur Verwaltung von Hadoop-Jobs. Es ermöglicht Benutzern, komplexe Datenverarbeitungs-Workflows zu planen und auszuführen und gleichzeitig mehrere Aufgaben und Vorgänge im gesamten Hadoop-Ökosystem zu erledigen. Benutzer von Oozie können Abhängigkeiten zwischen verschiedenen Jobs und Aktivitäten beschreiben, die Reihenfolge festlegen, in der sie ausgeführt werden sollen, und Probleme und Wiederholungen handhaben. Es unterstützt viele Hadoop-bezogene Technologien, darunter Pig, Hive, Sqoop und Hadoop MapReduce. Oozie bietet eine API für die Interaktion mit anderen Tools und Systemen und eine webbasierte Schnittstelle zur Verwaltung und Überwachung von Prozessen. Apache Oozie ist ein effektives Tool zum Planen und Koordinieren wichtiger Datenoperationen in Hadoop.

Quelle - Analytics Vidhya

Quelle: Analytics Vidhya

Lernziele:

In diesem Artikel werden Sie:

  1. Verstehen Sie die Grundlagen von Apache Oozie.
  2. Wie wurde Apache Oozie erstellt und seine Entwicklung im Laufe der Zeit?
  3. Welche Komponente ist in Apache Oozie enthalten?
  4. Was sind seine Hauptmerkmale?
  5. Die Komponenten und der Workflow von Apache Oozie.

Dieser Artikel wurde als Teil des veröffentlicht Data-Science-Blogathon.

Inhaltsverzeichnis

Definition und Übersicht

Apache Oozie, ein Open-Source-Workflow-Planungstool, hilft bei der Handhabung und Organisation von Datenverarbeitungsaufgaben in der Hadoop-basierten Infrastruktur.

Benutzer können Workflows erstellen, planen und steuern, die eine koordinierte Reihe von Hadoop-Jobs, Pig-Skripten, Hive-Suchvorgängen und anderen Vorgängen enthalten. Oozie kann Aufgabenabhängigkeiten verarbeiten, Wiederholungsmechanismen verwalten und eine Vielzahl von Workflow-Typen unterstützen, einschließlich einfacher und anspruchsvoller Prozesse.

Insgesamt bietet Oozie eine flexible und anpassungsfähige Plattform für den Aufbau von Datenpipelines in Hadoop-Systemen und erleichtert gleichzeitig die Verwaltung und Planung wichtiger Datenverarbeitungsprozesse.

Geschichte und Entwicklung von Oozie

Yahoo hat Apache Oozie ursprünglich im Jahr 2008 als Tool für die private Verwaltung von Hadoop-Operationen entwickelt. Später, im Jahr 2011, wurde es als Open-Source-Unternehmen zur Verfügung gestellt, das von der Apache Software Foundation betrieben wird.

Oozie hat seitdem viele Updates und Verbesserungen erhalten, um seine Leistung und Funktionalität zu verbessern. Beispielsweise bot Oozie 3.2, das 2012 eingeführt wurde, zusätzliche Funktionen wie Unterstützung für Java-Aktionen und Unter-Workflows sowie Hadoop 2.x-Unterstützung.

Für die Verwaltung und Planung massiver Datenverarbeitungsprozesse ist Oozie von entscheidender Bedeutung Hadoop-Ökosystem Komponente, die häufig in Produktionsumgebungen verwendet wird. Die Community hat sich erweitert, und Entwickler tragen zu ihrer kontinuierlichen Entwicklung und Weiterentwicklung bei.

Um Benutzern dabei zu helfen, kompliziertere Workflows zu erstellen und eine breitere Palette von Datenverarbeitungsaufgaben zu bewältigen, wurde Oozie kürzlich in andere Produkte des Hadoop-Ökosystems wie z Apache Funken und Apache Flink.

Hauptkomponenten von Apache Oozie

Der Oozie Workflow Manager und Oozie Coordinators sind die beiden Hauptkomponenten für das Workflow-Management von Apache Oozie.

  • Der Oozie-Workflow-Manager verwaltet und führt Arbeitsabläufe und Aktionsfolgen aus, die in einer bestimmten Reihenfolge ausgeführt werden müssen. Die Workflow Definition Language (WDL), eine XML-basierte Sprache (Extensible Markup Language), definiert Arbeitsabläufe. Die WDL skizziert die Reihenfolge, in der Aktivitäten ausgeführt werden müssen, die Eingabe- und Ausgabedaten, die für jede Aktion erforderlich sind, und ihre gegenseitigen Abhängigkeiten. Neben der Verwaltung von Abhängigkeiten zwischen Aktionen und der Behandlung von Fehlern parst der Workflow-Manager die WDL und führt die Schritte in der vorgegebenen Reihenfolge aus.
  • Oozie-Koordinatoren sind für die Organisation und Überwachung wiederkehrender Arbeitsabläufe verantwortlich. Die Coordinator Application Language (CAL), eine XML-basierte Sprache, definiert Koordinatoren. Koordinatoren beschreiben einen Zeitplan für die Ausführung von Arbeitsabläufen, die Dateneingabe für jede Instanz des Arbeitsablaufs und Abhängigkeiten zwischen den Fällen des Prozesses. Der Koordinator arbeitet periodisch und generiert Workflowinstanzen anhand des Plans und der bereitgestellten Daten.

Der Workflow-Manager und die Koordinatoren arbeiten zusammen, um ein robustes System zur Steuerung und Durchführung komplizierter Workflows in Hadoop-Umgebungen zu erstellen. Mit einem REST-konforme API Für die programmgesteuerte Steuerung bietet Oozie eine webbasierte grafische Benutzeroberfläche zum Verwalten von Workflows und Koordinatoren.

Apache Oozie

Quelle: cloudduggu

Hauptmerkmale von Oozie

Apache Oozie ist aufgrund seiner vielen wesentlichen Funktionen ein leistungsstarkes Tool zum Verwalten und Planen wichtiger Datenverarbeitungsaktivitäten. Zu diesen Features gehören unter anderem:

  • Mit Oozie können Benutzer Workflow-Sammlungen von Aufgaben oder Aktionen erstellen, organisieren und ausführen.
  • Oozie unterstützt die Planung sich wiederholender Prozesse mithilfe von Koordinatoren, wodurch Benutzer einen Zeitplan für die Ausführung von Workflows bereitstellen können.
  • Die Verwaltung von Abhängigkeiten zwischen Aufgaben und Workflows wird von Oozie unterstützt und stellt sicher, dass Aktivitäten in der richtigen Reihenfolge ausgeführt und Workflows korrekt abgeschlossen werden.
  • Oozie basiert auf einer modularen, erweiterbaren Architektur, die es Benutzern ermöglicht, ihre Funktionen anzupassen und zu erweitern.
  • Oozie ist hochgradig skalierbar und für umfangreiche Datenverarbeitungsaufgaben in verteilten Computerumgebungen konzipiert.
  • Oozie bietet eine webbasierte grafische Benutzeroberfläche und eine RESTful-API zur Steuerung und Überwachung von Workflows und Koordinatoren.
  • Die Erstellung komplexer Datenverarbeitungspipelines wird durch die Integration von Oozie mit anderen Hadoop-Ökosystemtechnologien wie Pig, Hive und MapReduce ermöglicht.
  • Oozie bietet ein vollständiges Verwaltungs- und Planungstool für die massiven Datenverarbeitungsvorgänge von Hadoop-Umgebungen.
Apache Oozie

Quelle: Projekt pro

Bestandteile von Oozie

Apache Oozie ist aufgrund seiner vielen wesentlichen Funktionen ein leistungsstarkes Tool zum Verwalten und Planen wichtiger Datenverarbeitungsaktivitäten. Zu diesen Features gehören unter anderem:

  • Workflow-Management: Mit Oozie können Benutzer Workflow-Sammlungen von Aufgaben oder Aktionen erstellen, organisieren und ausführen.
  • Oozie unterstützt die Planung sich wiederholender Prozesse mithilfe von Koordinatoren, wodurch Benutzer einen Zeitplan für die Ausführung von Workflows bereitstellen können.
  • Abhängigkeitsmanagement: Die Verwaltung von Abhängigkeiten zwischen Aufgaben und Workflows wird von Oozie unterstützt und stellt sicher, dass Aktivitäten in der richtigen Reihenfolge ausgeführt und Workflows korrekt abgeschlossen werden.
  • Erweiterbare Architektur: Oozie basiert auf einer modularen, erweiterbaren Architektur, die es Benutzern ermöglicht, ihre Funktionen anzupassen und zu erweitern.
  • Skalierbarkeit: Oozie ist hochgradig skalierbar und für umfangreiche Datenverarbeitungsaufgaben in verteilten Computerumgebungen konzipiert.
  • Überwachung und Management: Oozie bietet eine webbasierte grafische Benutzeroberfläche und eine RESTful-API zur Steuerung und Überwachung von Workflows und Koordinatoren.
  • Integration mit dem Hadoop-Ökosystem: Das Erstellen komplexer Datenverarbeitungspipelines ist durch die Integration von Oozie mit anderen Hadoop-Ökosystemtechnologien wie z Schwein, Bienenstock und MapReduce.

Oozie bietet ein vollständiges Verwaltungs- und Planungstool für die massiven Datenverarbeitungsvorgänge von Hadoop-Umgebungen.

Oozie-Workflow: Erstellen und Entwerfen eines einfachen Workflows

Führen Sie die folgenden Schritte aus, um einen einfachen Workflow in Oozie zu erstellen und zu entwerfen:

  • Legen Sie den Arbeitsablauf fest: Der Workflow sollte zunächst mit der Workflow Definition Language (WDL) erstellt werden. Die WDL skizziert die Reihenfolge, in der Aktivitäten ausgeführt werden müssen, die Eingabe- und Ausgabedaten, die für jede Aktion erforderlich sind, und ihre gegenseitigen Abhängigkeiten.

Hier ist ein Beispiel für eine einfache WDL, die eine Wortzählung für eine Textdatei durchführt:

<workflow-app xmlns="uri:oozie:workflow:0.5" name="word-count"> <start to="word-count-action"/> <action name="word-count-action"> <map-reduce> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <configuration> <property> <name>mapred.mapper.class</name> <value>org.apache.hadoop.mapred.lib.IdentityMapper</value> </property> <property> <name>mapred.reducer.class</name> <value>org.apache.hadoop.mapred.lib.IdentityReducer</value> </property> <property> <name>mapred.input.dir</name> <value>/user/hadoop/input</value> </property> <property> <name>mapred.output.dir</name> <value>/user/hadoop/output</value> </property> </configuration> </map-reduce> <ok to="end"/> <error to="fail"/> </action> <kill name="fail"> <message>Workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> </kill> <end name="end"/>
</workflow-app>
#import csv#import csv
  • Definieren Sie die Aktivitäten: Geben Sie die Aktionen an, die während des Workflows in der WDL ausgeführt werden. Oozie unterstützt verschiedene Aktionstypen, einschließlich benutzerdefinierter Java-Aktionen, Hadoop MapReduce-Jobs, Pig-Skripts und Hive-Abfragen.

Im obigen WDL-Beispiel ist die Aktion ein MapReduce-Job, der die Wörter in einer Textdatei zählt.

  • Konfigurieren Sie den Arbeitsablauf: Konfigurieren Sie in der WDL den Workflow, indem Sie die Eingabe- und Ausgabedaten für jede Aktion und alle anderen für die Aktion erforderlichen Konfigurationsparameter angeben.

In der obigen Beispiel-WDL sind die Eingabedaten für den MapReduce-Job eine Textdatei, die sich in /user/Hadoop/input befindet, und die Ausgabedaten werden in /user/Hadoop/output geschrieben.

  • Nachdem die WDL definiert wurde, senden Sie sie bitte entweder über die Webkonsole oder die Oozie-Befehlszeilenschnittstelle an Oozie.
  • Senden Sie den Workflow in Verwenden Sie die Oozie CLI oder das Online-Portal, um den Workflow an Oozie zu senden.

Zusammenfassung

Zusammenfassend lässt sich sagen, dass Apache Oozie ein unverzichtbares Tool zum Organisieren und Ausführen komplizierter Operationen in Hadoop ist. Viele Unternehmen verwenden Apache Oozie als Hauptwerkzeug. Benutzer können verschiedene Hadoop-Aufgaben und -Prozesse mit Oozie planen und koordinieren, indem sie ihre Abhängigkeiten und Ausführungsprioritäten angeben. Dies ermöglicht eine effektive Datenverarbeitung und -analyse bei gleichzeitiger Bereitstellung von Fehlerbehandlungs- und Überwachungsfunktionen. Oozie bietet eine benutzerfreundliche Webschnittstelle, Kompatibilität mit vielen Hadoop-bezogenen Technologien und einfache System- und Tool-Integrations-APIs. Letztendlich hilft Oozie Unternehmen dabei, ihre Big-Data-Workflows effektiver zu verwalten und zu koordinieren und so die Leistung, Datenverarbeitung und Analyseeffektivität zu steigern.

Apache Oozie

Quelle: Enlyft

Die zentralen Thesen

  • Zunächst haben wir die Definition und Übersicht gesehen
  • Geschichte und Entwicklung von Oozie und Verständnis seines Workflow-Managers und seiner Koordinatoren
  • Und seine Hauptmerkmale von Oozie
  • Endlich haben wir die Komponenten und den Workflow von Oozie gesehen

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Zeitstempel:

Mehr von Analytics-Vidhya