Hadoop Ecosystem and Components

Hadoop-Ökosystem und Komponenten

  • Orchestrierung
6 Minuten Lesezeit Aktualisiert Apr 6, 2016

Auf einen Blick: Das Hadoop-Ökosystem verbessert die Verarbeitung großer Daten durch verschiedene Komponenten und Werkzeuge, darunter bemerkenswerte Apache-Projekte wie Spark, Hive und Pig, die das Datenmanagement und die Analyse erleichtern.

  • Hadoop bietet ein grundlegendes Rahmenwerk mit zusätzlichen Werkzeugen für spezifische Aufgaben.
  • Kommerzielle Distributionen verbessern die Funktionalität und Benutzerfreundlichkeit von Hadoop.

Überblick über das Hadoop-Ökosystem

Denken Sie daran, dass Hadoop ein Framework ist. Wenn Hadoop ein Haus wäre, wäre es kein besonders komfortabler Ort zum Leben. Es würde Wände, Fenster, Türen, Rohre und Kabel bereitstellen. Das Hadoop-Ökosystem bietet die Einrichtung, die das Framework in ein komfortables Zuhause für Big-Data-Aktivitäten verwandelt, das Ihre spezifischen Bedürfnisse und Vorlieben widerspiegelt.

Das Hadoop-Ökosystem umfasst sowohl offizielle Open-Source-Projekte von Apache als auch eine breite Palette kommerzieller Werkzeuge und Lösungen. Zu den bekanntesten Open-Source-Beispielen zählen Spark, Hive, Pig, Oozie und Sqoop. Die kommerziellen Hadoop-Angebote sind noch vielfältiger und umfassen Plattformen und Paketdistributionen von Anbietern wie Cloudera, Hortonworks und MapR sowie eine Vielzahl von Tools für spezifische Hadoop-Entwicklung, Produktion und Wartungsaufgaben.

Die meisten der im Hadoop-Ökosystem verfügbaren Lösungen sollen ein oder zwei der vier Kernelemente von Hadoop (HDFS, MapReduce, YARN und Common) ergänzen. Die kommerziell verfügbaren Framework-Lösungen bieten jedoch umfassendere Funktionalität. Die folgenden Abschnitte geben einen genaueren Blick auf einige der prominenteren Komponenten des Hadoop-Ökosystems, beginnend mit den Apache-Projekten

play

Open-Source-Hadoop-Ökosystemelemente von Apache

Das Apache Hadoop-Projekt unterstützt aktiv mehrere Projekte, die darauf abzielen, die Fähigkeiten von Hadoop zu erweitern und die Nutzung zu erleichtern. Es gibt mehrere Top-Level-Projekte zur Entwicklung von Entwicklungstools sowie zur Verwaltung von Hadoop-Datenfluss und -verarbeitung. Viele kommerzielle Drittanbieterlösungen bauen auf den Technologien auf, die im Apache Hadoop-Ökosystem entwickelt wurden.

Spark, Pig und Hive sind drei der bekanntesten Apache Hadoop-Projekte. Jedes wird verwendet, um Anwendungen zur Verarbeitung von Hadoop-Daten zu erstellen. Obwohl es viele Artikel und Diskussionen darüber gibt, ob Spark, Hive oder Pig besser ist, verwenden viele Organisationen in der Praxis nicht nur ein einzelnes Projekt, da jedes für bestimmte Funktionen optimiert ist.

Spark ist sowohl ein Programmiermodell als auch ein Rechenmodell. Es bietet ein Gateway zum In-Memory-Computing für Hadoop, was ein großer Grund für seine Beliebtheit und breite Akzeptanz ist. Spark bietet eine Alternative zu MapReduce, die es ermöglicht, Workloads im Speicher statt auf Festplatte auszuführen. Spark greift auf Daten von HDFS zu, umgeht jedoch das MapReduce-Verarbeitungsframework und eliminiert somit die ressourcenintensiven Festplattenoperationen, die MapReduce benötigt. Durch die Nutzung von In-Memory-Computing laufen Spark-Workloads typischerweise zwischen 10 und 100 Mal schneller als die Festplattenausführung.

Spark kann unabhängig von Hadoop verwendet werden. Am häufigsten wird es jedoch mit Hadoop als Alternative zu MapReduce für die Datenverarbeitung verwendet. Spark kann problemlos mit MapReduce und anderen Ökosystemkomponenten koexistieren, die andere Aufgaben ausführen.

Spark ist auch beliebt, weil es SQL unterstützt, was hilft, eine Schwäche in der Kern-Hadoop-Technologie zu überwinden. Die Spark-Programmierumgebung arbeitet interaktiv mit Scala-, Python- und R-Shells. Sie wurde für Datenextraktion/Transform/Laden (ETL)-Operationen, Streamverarbeitung, maschinelles Lernen sowie mit der Apache GraphX API für Graphenberechnung und -darstellung verwendet. Spark kann auf verschiedenen Hadoop- und Nicht-Hadoop-Clustern laufen, einschließlich Amazon S3.

Hive ist eine Data-Warehousing-Software, die behandelt, wie Daten in verteilten Hadoop-Clustern strukturiert und abgefragt werden. Hive ist außerdem eine beliebte Entwicklungsumgebung, die verwendet wird, um Abfragen für Daten in der Hadoop-Umgebung zu schreiben. Sie stellt Werkzeuge für ETL-Operationen bereit und bringt einige SQL-ähnliche Funktionen in die Umgebung. Hive ist eine deklarative Sprache, die zur Entwicklung von Anwendungen für die Hadoop-Umgebung verwendet wird, jedoch keine Echtzeitabfragen unterstützt.

Hive besteht aus mehreren Komponenten, darunter:

  • HCatalog – Hilft Datenverarbeitungstools beim Lesen und Schreiben von Daten im Grid. Es unterstützt MapReduce und Pig.
  • WebHCat – Ermöglicht die Nutzung einer HTTP/REST-Schnittstelle, um MapReduce-, Yarn-, Pig- und Hive-Jobs auszuführen.
  • HiveQL – Die Abfragesprache von Hive, die SQL-Entwicklern ermöglicht, einfach in Hadoop zu arbeiten. Sie ähnelt SQL und hilft sowohl bei der Strukturierung als auch bei der Abfrage von Daten in verteilten Hadoop-Clustern.

Hive-Abfragen können von der Hive-Shell, JDBC oder ODBC ausgeführt werden. MapReduce (oder eine Alternative) zerlegt HiveQL-Anweisungen zur Ausführung im gesamten Cluster.

Hive ermöglicht es außerdem MapReduce-kompatible Mapping- und Reduktionssoftware, komplexere Funktionen auszuführen. Hive erlaubt jedoch keine Zeilen-Updates oder Unterstützung für Echtzeitabfragen und ist nicht für OLTP-Workloads gedacht. Viele halten Hive für viel effektiver für die Verarbeitung strukturierter Daten als unstrukturierte Daten, für die Pig als vorteilhaft gilt.

Pig ist eine prozedurale Sprache zur Entwicklung paralleler Verarbeitungsanwendungen für große Datensätze in der Hadoop-Umgebung. Pig ist eine Alternative zur Java-Programmierung für MapReduce und generiert automatisch MapReduce-Funktionen. Pig enthält Pig Latin, eine Skriptsprache. Pig übersetzt Pig Latin-Schriften in MapReduce, das dann auf YARN laufen und Daten im HDFS-Cluster verarbeiten kann. Pig ist beliebt, weil es einen Teil der Komplexität der MapReduce-Entwicklung automatisiert.

Pig wird häufig für komplexe Anwendungsfälle verwendet, die mehrere Datenoperationen erfordern. Es ist eher eine Verarbeitungssprache als eine Abfragesprache. Pig hilft bei der Entwicklung von Anwendungen, die Daten aggregieren und sortieren, und unterstützt mehrere Eingaben und Exporte. Es ist hochgradig anpassbar, da Nutzer ihre eigenen Funktionen mit ihrer bevorzugten Skriptsprache schreiben können. Ruby, Python und sogar Java werden alle unterstützt. Daher ist Pig eine beliebte Option für Entwickler, die mit diesen Sprachen vertraut sind, aber nicht mit MapReduce. SQL-Entwickler könnten jedoch Hive leichter zu erlernen finden.

HBase ist eine skalierbare, verteilte NoSQL-Datenbank, die auf dem HFDS liegt. Sie wurde entwickelt, um strukturierte Daten in Tabellen zu speichern, die Milliarden von Zeilen und Millionen von Spalten haben können. Sie wurde eingesetzt, um historische Suchen durch große Datensätze zu ermöglichen, insbesondere wenn sich die gewünschten Daten in einer großen Menge unwichtiger oder irrelevanter Daten (auch als Sparse Data Sets bekannt) befinden. Sie ist auch eine zugrunde liegende Technologie hinter mehreren großen Messaging-Anwendungen, darunter auch die von Facebook.

HBase ist keine relationale Datenbank und wurde nicht für die Unterstützung transaktionaler und anderer Echtzeitanwendungen entwickelt. Sie ist über eine Java-API zugänglich und verfügt über ODBC- und JDBC-Treiber. HBase unterstützt keine SQL-Abfragen, jedoch gibt es mehrere SQL-Unterstützungstools vom Apache-Projekt und von Softwareanbietern. Zum Beispiel kann Hive verwendet werden, um SQL-ähnliche Abfragen in HBase auszuführen.

Oozie ist der Workflow-Scheduler, der im Rahmen des Apache Hadoop-Projekts entwickelt wurde. Er verwaltet, wie Workflows starten und ausgeführt werden, und steuert außerdem den Ausführungspfad. Oozie ist eine serverbasierte Java-Webanwendung, die Workflow-Definitionen verwendet, die in hPDL geschrieben sind, einer XML-Prozessdefinitionssprache, die JBOSS JBPM jPDL ähnelt. Oozie unterstützt nur bestimmte Workflow-Typen, daher werden in Hadoop-Umgebungen häufig andere Workload-Scheduler anstelle oder zusätzlich zu Oozie verwendet.

Man kann sich Sqoop als einen Frontend-Loader für Big Data vorstellen. Sqoop ist eine Kommandozeilen-Schnittstelle, die das Verschieben von Massendaten von Hadoop in relationale Datenbanken und andere strukturierte Datenspeicher erleichtert. Die Nutzung von Sqoop ersetzt die Notwendigkeit, Skripte zum Exportieren und Importieren von Daten zu entwickeln. Ein häufiger Anwendungsfall ist das Übertragen von Daten aus einem Unternehmens-Data Warehouse in einen Hadoop-Cluster zur ETL-Verarbeitung. Die Durchführung von ETL auf dem Standard-Hadoop-Cluster ist ressourceneffizient, während Sqoop eine praktische Übertragungsmethode bietet.

Weitere Open-Source-Projekte im Zusammenhang mit Apache Hadoop

So beschreibt die Apache-Organisation einige der anderen Komponenten ihres Hadoop-Ökosystems.

  • Ambari – Ein webbasiertes Tool zur Bereitstellung, Verwaltung und Überwachung von Apache Hadoop-Clustern, das Unterstützung für Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig und Sqoop beinhaltet.
  • Avro – Ein Datenserialisierungssystem.
  • Cassandra – Eine skalierbare Multi-Master-Datenbank ohne einzelne Fehlerpunkte.
  • Chukwa – Ein Datenerfassungssystem zur Verwaltung großer verteilter Systeme.
  • Impala – Die Open-Source-Datenbank, native Analysedatenbank für Apache Hadoop. Impala wird von Cloudera, MapR, Oracle und Amazon ausgeliefert.
  • Flume – Ein verteilter, zuverlässiger und verfügbarer Dienst zur effizienten Erfassung, Aggregation und Übertragung großer Mengen an Streaming-Ereignisdaten.
  • Kafka – Ein Messaging-Broker, der oft anstelle traditioneller Broker in der Hadoop-Umgebung eingesetzt wird, da er für einen höheren Durchsatz konzipiert ist und Replikation sowie eine höhere Fehlertoleranz bietet.
  • Mahout – Eine skalierbare Bibliothek für maschinelles Lernen und Data Mining.
  • Tajo – Ein robustes Big-Data-Relational- und Distributed Data Warehouse-System für Apache Hadoop. Tajo ist für latenzarme und skalierbare Ad-hoc-Abfragen, Online-Aggregation und ETL auf großen Datensätzen auf HDFS und anderen Datenquellen konzipiert. Durch die Unterstützung von SQL-Standards und die Nutzung fortschrittlicher Datenbanktechniken ermöglicht Tajo eine direkte Kontrolle über verteilte Ausführung und Datenfluss über verschiedene Abfragebewertungsstrategien und Optimierungsmöglichkeiten.
  • Tez – Ein verallgemeinertes Data-Flow-Programmierungsframework, aufgebaut auf Hadoop YARN, das eine leistungsstarke und flexible Engine bietet, um eine beliebige DAG von Aufgaben auszuführen, um Daten sowohl für Batch- als auch für interaktive Anwendungsfälle zu verarbeiten. Tez wird von Hive, Pig und anderen Frameworks im Hadoop-Ökosystem sowie von anderer kommerzieller Software (z. B. ETL-Tools) übernommen, um MapReduce als zugrundeliegende Ausführungs-Engine zu ersetzen.
  • Zookeper – Ein Hochleistungskoordinationsdienst für verteilte Anwendungen.

Die oben beschriebenen Ökosystemelemente sind allesamt Open-Source-Projekte von Apache Hadoop. Es gibt zahlreiche kommerzielle Lösungen, die die Open-Source-Hadoop-Projekte nutzen oder unterstützen. Einige der bekanntesten werden in den folgenden Abschnitten beschrieben.

Kommerzielle Hadoop-Vertriebe

Hadoop kann von www.hadoop.apache.org heruntergeladen und kostenlos verwendet werden, was Tausende von Organisationen bereits getan haben. Es gibt auch kommerzielle Distributionen, die die Kerntechnologie von Hadoop mit zusätzlichen Funktionen, Funktionalitäten und Dokumentationen kombinieren. Zu den führenden kommerziellen Vertriebsanbietern von Hadoop gehören Cloudera, Hortonworks und MapR. Es gibt auch viele weniger umfassende, arbeitsspezifischere Tools für die Hadoop-Umgebung, wie Entwicklertools und Job-Scheduler.

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus Orchestrierung

Interessieren Sie sich für mehr von BMC?

The Brief ist unsere monatliche E-Mail zum Mainframe und zur Enterprise-Orchestrierung: Recherchen, Kundenberichte, Produktnachrichten, Events.

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Sie haben The Brief abonniert

Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.