Suchen

Definition Was ist Apache Tez?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Apache Tez ist ein Open-Source-basiertes Framework, das zusammen mit Hadoop für Big-Data-Anwendungen geeignet ist. Es sorgt für eine performante Verarbeitung der Daten und wird häufig als Alternative zu Hadoop MapReduce eingesetzt. Ursprünglich wurde es von Hortonworks entwickelt. Seit 2013 ist es ein Apache-Projekt.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Bei Apache Tez handelt es sich um ein auf YARN basierendes Framework, das für eine performante Datenprozessierung in Hadoop sorgt. Mit dem Framework lassen sich Big-Data-Anwendungen realisieren, die Daten interaktiv oder im Batch Processing verarbeiten. Apache Tez erstellt komplexe azyklische gerichtete Graphen (DAGs) und kommt häufig als Alternative zu Hadoop MapReduce zum Einsatz. Systeme und Projekte wie Apache Hive und Apache Pig nutzen Apache Tez. Darüber hinaus verwenden viele Unternehmen wie Microsoft, Netflix, Yahoo oder die NASA Tez für ihre Anwendungen. Ursprünglich entwickelt wurde Tez von Hortonworks, dem Distributor von Hadoop. Seit 2013 ist Tez ein Projekt von Apache. Mittlerweile hat es die Graduierung eines Top-Level-Projekts. Die Software steht unter Apache License 2.0 und ist frei verfügbar. Aktuellste Version ist Apache Tez 0.9.2 (Stand Mai 2020).

Die Ziele der Entwicklung von Apache Tez

Apache Tez ist nicht für Endanwender, sondern für Entwickler konzipiert. Wichtigstes Ziel des Frameworks ist es, Abfragen und Jobs in Hadoop zu ermöglichen, die Daten schnell in nahezu Echtzeit mit hoher Performance verarbeiten. Es stellt eine API zur Verfügung, mit der sich azyklische gerichtete Graphen zur Datenverarbeitung beschreiben lassen. Das Framework bietet ein flexibles Input-Processor-Output-Runtime-Modell und fungiert als Client-Anwendung. Weitere Designziele des Tez-Frameworks sind ein einfaches Deployment und ein optimiertes Ressourcen-Management.

Das Grundkonzept von Apache Tez

Apache Tez stellt Entwicklern eine API und ein Framework zur Verfügung, um YARN-Anwendungen mit einem breiten Spektrum an Datenverarbeitungsaufgaben zu programmieren. Das Framework erlaubt große Datenmengen zu prozessieren und lässt sich auf vielen verschiedenen Knoten ausführen. Über die Komponentenbibliothek von Apache Tez lassen sich die Anwendungen native in Apache Hadoop integrieren. Die Architektur ist anpassbar und erlaubt die Abbildung komplexer Verarbeitungsprozesse in Form von Datenflussdiagrammen.

Die Funktionsweise von Apache Tez

Tez moduliert die Datenverarbeitung als Datenflussdiagramm. Das Diagramm stellt die Applikationslogik und die Bewegung der Daten dar. Über eine API lassen sich komplexe Abfragelogiken implementieren. Die Logik einer Tez-Datenverarbeitung setzt sich aus Eingabe-, Prozessor- und Ausgabemodulen zusammen. Ein- und Ausgabemodule definieren die Datenformate sowie die Speicher- und Ablageorte. Der Prozessor bildet die auf die Daten anzuwendende Transformationslogik ab. Tez unterstützt Funktionen zur Sammlung von Runtime-Informationen. Das Datenflussdiagramm lässt sich dynamisch anpassen und hinsichtlich Performance und Ressourcennutzung optimieren. Wie Hadoop teilt auch Tez die Jobs in verschiedene Tasks auf.

Die Tez-API im Detail

Die API von Tez erlaubt die Beschreibung der Datenverarbeitung in Form eines DAG. Sie besteht aus drei Hauptkomponenten. Diese sind:

  • 1. Azyklisch gerichteter Graph (DAG) – Definiert die eigentliche Aufgabe. Für jeden Datenverarbeitungsjob wird ein DAG entworfen.
  • 2. Vertex – Definiert die Logik, die Ressourcen und die Umgebung zur Ausführung der Logik. Für jeden Verarbeitungsschritt eines Jobs ist ein Vertex-Objekt angelegt.
  • 3. Edge – Definiert die Verbindung zwischen dem produzierenden und dem konsumierenden Vertex.

Gegenüberstellung Apache Tez und Apache Spark

Apache Tez und Spark bieten teils ähnliche Funktionalitäten. Sie sind für die Zusammenarbeit mit Hive und YARN optimiert und unterstützen azyklische gerichtete Graphen. Beide Frameworks sind in der Lage, verschiedenste Arten von Daten zu verarbeiten und bieten In-Memory-Technologien. Dennoch gibt es wichtige Unterscheidungsmerkmale.

Der Einsatz von Tez ist besonders sinnvoll, wenn Umgebungen mit Hive und Pig zum Einsatz kommen. Für solche Umgebungen ist Tez optimiert. Für die Implementierung von Distributed-Machine-Learning-Algorithmen, um beispielsweise Transformations-Jobs zu erstellen, oder für das Erstellen eigener Datenprozessierungssprachen, ist Spark besser geeignet.

Die Vorteile von Apache Tez

Die Anwendung von Tez zur Prozessierung von Daten in Hadoop bietet zahlreiche Vorteile. Im Folgenden ein Überblick über einige der wichtigsten Vorteile:

  • Tez ist optimiert für Umgebungen mit Hadoop, YARN, Hive und Pig
  • Tez ermöglicht die Realisierung performanter Big-Data-Anwendungen
  • Tez ist als Alternative und Erweiterung zur MapReduce-Implementierung in Hadoop einsetzbar
  • komplexe Datenverarbeitungsvorgänge lassen sich über die API einfach als azyklische gerichtete Graphen beschreiben
  • Tez bietet kurze Antwortzeiten und ist für große Datenmengen im Petabyte-Bereich einsetzbar
  • Tez ermöglicht die Programmierung eines breiten Spektrums an Datenverarbeitungsaufgaben
  • Tez lässt sich auf vielen verschiedenen Knoten ausführen
  • Tez lässt sich über eine Komponentenbibliothek native in Apache Hadoop integrieren

(ID:46585220)

Über den Autor