Apache Tez

Ein Framework für YARN-basierte Datenverarbeitungsanwendungen in Hadoop

Apache™ Tez ist ein erweiterbares Framework zum Erstellen von leistungsstarken Batch- und interaktiven Datenverarbeitungsanwendungen, das von YARN in Apache Hadoop koordiniert wird. Tez verbessert das MapReduce-Paradigma, indem es seine Geschwindigkeit drastisch verbessert, während MapReduce weiterhin in der Lage ist, auf Petabytes an Daten zu skalieren. Wichtige Hadoop-Ökosystemprojekte wie Apache Hive und Apache Pig verwenden Apache Tez ebenso wie eine wachsende Anzahl von Datenzugriffsanwendungen von Drittanbietern, die für das breitere Hadoop-Ökosystem entwickelt wurden.

Hive mit Tez

Als De-facto-Standard für SQL-In-Hadoop,ist Apache Hive optimal sowohl für Batch- als auch für interaktive Abfragen im Petybyte-Maßstab. Hive bettet Tez so ein, dass komplexe SQL-Anweisungen in hochoptimierte, zweckgebundene Datenverarbeitungsdiagramme übersetzt werden können, die das richtige Gleichgewicht zwischen Leistung, Durchsatz und Skalierbarkeit herstellen. Die Innovationen von Apache Tez haben viele der Leistungsverbesserungen von Hive vorangetrieben, die durch die Stinger Initiative erzielt wurden. Dabei handelte es sich um eine breit angelegte Gemeinschaftsaktion, zu der Beiträge von 145 Ingenieuren aus 44 verschiedenen Organisationen gehörten. Tez macht Hive interaktiv.

Was genau macht Tez

Apache Tez bietet eine Entwickler-API und ein Framework zum Schreiben nativer YARN-Anwendungen, die das Spektrum von interaktiven und Batch-Workloads überbrücken. Damit können diese Datenzugriffsanwendungen mit Petabytes an Daten über Tausende von Knoten arbeiten. Mit der Apache Tez-Komponentenbibliothek können Entwickler Hadoop-Anwendungen erstellen, die sich nativ in Apache Hadoop YARN integrieren lassen und eine gute Leistung in Clustern mit gemischten Workloads erzielen. Da Tez sich erweitern und einbetten lässt, stellt es nach Bedarf die Möglichkeit für hochoptimierte Datenverarbeitungsanwendungen zur Verfügung und gibt ihnen einen Vorteil gegenüber Endbenutzer-Engines wie MapReduce und Apache Spark . Darüber hinaus Tez bietet eine anpassbare Ausführungsarchitektur, mit der Benutzer komplexe Berechnungen als Datenflussdiagramme ausdrücken können. Dies ermöglicht dynamische Leistungsoptimierungen auf der Grundlage realer Informationen über die Daten und den für deren Verarbeitung erforderlichen Ressourcen.

h1h2tez

 

So funktioniert Tez

Die Verbesserung der Datenverarbeitung in Hadoop durch Apache Tez geht weit über die Verbesserungen in Apache Hive und Apache Pig hinaus. Das Projekt hat den Standard für eine echte Integration in YARN für interaktive Workloads gesetzt. Lesen Sie die folgenden Kurzbeschreibungen darüber, wie Apache Tez die zentralen Aufgaben erledigt.

Ausdruck, Modellierung und Ausführung der Verarbeitungslogik

Tez modelliert die Datenverarbeitung als Datenflussdiagramm, wobei die Scheitelpunkte des Diagramms die Anwendungslogik und die Kanten die Datenbewegung darstellen. Mithilfe einer umfangreichen API zur Definition des Data Flow können Benutzer komplexe Abfragelogik intuitiv ausdrücken. Die API fügt sich gut in Abfragepläne ein, die von übergeordneten deklarativen Anwendungen wie Apache Hive und Apache Pig erstellt wurden.

Modellinteraktion zwischen Eingangs-, Prozessor- und Ausgangsmodulen

Tez modelliert die Benutzerlogik, die in jedem Scheitelpunkt des Datenflussdiagramms ausgeführt wird, als eine Zusammensetzung von Eingangs-, Prozessor- und Ausgangsmodulen. Eingang und Ausgang bestimmen das Datenformat und die Art und Weise sowie den Standort, an dem es gelesen bzw. geschrieben wird. Der Prozessor enthält die Datenumwandlungslogik. Tez schreibt kein Datenformat vor, sondern verlangt lediglich, dass die Eingangs-, Prozessor- und Ausgangsformate miteinander kompatibel sind.

Diagramme dynamisch neu konfigurieren

Die verteilte Datenverarbeitung ist dynamisch und es ist schwierig, die optimalen Datenbewegungsmethoden im Voraus zu bestimmen. Zur Laufzeit stehen weitere Informationen zur Verfügung, mit deren Hilfe der Ausführungsplan möglicherweise weiter optimiert werden kann. Daher bietet Tez Unterstützung für standardisierte Vertex-Verwaltungsmodule, mit denen Laufzeitinformationen gesammelt und das Datenflussdiagramm dynamisch geändert werden können, um die Leistung und die Ressourcennutzung zu optimieren.

Leistung und Ressourcenmanagement optimieren

YARN verwaltet Ressourcen in einem Hadoop-Cluster basierend auf der Cluster-Kapazität und -Last. Das Tez Execution Engine Framework bezieht Ressourcen effizient von YARN und verwendet jede Komponente in der Pipeline erneut, sodass Operationen nicht unnötig dupliziert werden.

API zur Definition gerichteter azyklischer Graphen (DAGs)

Tez definiert eine einfache Java-API, um eine DAG der Datenverarbeitung auszudrücken. Die API besteht aus drei Komponenten

  • DAG – das definiert die Gesamtaufgabe. Der Benutzer erstellt für jeden Datenverarbeitungsauftrag ein DAG-Objekt.
  • Vertex – definiert die Benutzerlogik sowie die Ressourcen und Umgebung, die zum Ausführen der Benutzerlogik erforderlich sind. Der Benutzer erstellt ein Vertex-Objekt für jeden Schritt im Job und fügt es der DAG hinzu.
  • Edge – hierdurch wird die Verbindung zwischen Producer- und Consumer-Vertices definiert. Der Benutzer erstellt ein Edge-Objekt und verbindet die Producer- und Consumer-Vertices damit.

Wiederverwenden von Containern

Tez folgt dem traditionellen Hadoop-Modell, einen Job in einzelne Aufgaben zu unterteilen, die alle im Auftrag der Benutzer als Prozesse über YARN ausgeführt werden. Dieses Modell ist mit inhärenten Kosten für den Start und die Initialisierung von Prozessen, den Umgang mit Nachzüglern und die Zuweisung der einzelnen Container über den YARN-Ressourcenmanager verbunden.

Your form submission has failed.

This may have been caused by one of the following:

  • Your request timed out
  • A plugin/browser extension blocked the submission. If you have an ad blocking plugin please disable it and close this message to reload the page.