Apache Hadoop auf Amazon EMR

Warum Apache Hadoop in EMR?

Apache™ Hadoop® ist ein Open-Source-Softwareprojekt zur effizienten Verarbeitung großer Datensätze. Anstatt mit einem einzigen Computer die Daten zu verarbeiten und zu speichern, können Sie mit Hadoop Standardhardware zu Clustern vereinen, um parallel umfangreiche Datensätze zu analysieren.

Das Hadoop-Ökosystem verfügt über eine Menge an Anwendungen und Ausführungsengines, die die Tools bereitstellen, mit denen Sie Ihre Analyse-Jobs effektiv durchführen können. Mit Amazon EMR können Sie ganz einfach vollständig konfigurierte, elastische Cluster auf Amazon EC2 Instances erstellen, auf denen Sie Hadoop oder andere Anwendungen im Hadoop-Ökosystem ausführen können.

Anwendungen und Frameworks im Hadoop-Ökosystem

Unter Hadoop versteht man üblicherweise das tatsächliche Apache Hadoop-Projekt, das MapReduce (Framework zur Ausführung), YARN (Ressourcen-Manager) und HDFS (Verteilungsspeicher) enthält. Sie können auch Apache Tez installieren, ein Framework der nächsten Generation, das anstelle von Hadoop MapReduce als Ausführungsengine verwendet werden kann. In Amazon EMR ist außerdem EMRFS beinhaltet, eine Schnittstelle, mit der Hadoop Amazon S3 als Speicherebene verwenden kann.

Das Hadoop-Ökosystem umfasst allerdings auch noch andere Anwendungen und Frameworks, darunter Tools zur Aktivierung von Niedriglatenzabfragen, GUIs für interaktive Abfragen, eine Vielzahl an Schnittstellen wie SQL und verteilte NoSQL-Datenbanken. Im Hadoop-Ökosystem finden sich viele Open-Source-Tools, mit denen sich zusätzliche Funktionen für die Hadoop-Kernkomponenten entwickeln lassen. Mit Amazon EMR können Sie Tools wie Hive, Pig, Hue, Ganglia, Oozie und HBase ganz einfach auf Ihrem Cluster installieren und konfigurieren. Zusätzlich zu Hadoop auf Amazon EMR können Sie aber auch andere Frameworks ausführen, wie Apache Spark für die In-Memory-Verarbeitung oder Presto für interaktives SQL.

Hadoop: die Basiskomponenten

Amazon EMR installiert und konfiguriert programmatisch Anwendungen im Hadoop-Projekt auf den Knoten Ihres Clusters, darunter Hadoop MapReduce, YARN, HDFS und Apache Tez.

Hadoop MapReduce und Tez, Ausführungsengines im Hadoop-Ökosystem, verarbeiten Verarbeitungslasten mithilfe von Frameworks, die Aufträge in kleinere Komponenten aufteilen, die auf Knoten im Amazon EMR-Cluster verteilt werden können. Sie wurden speziell dafür entwickelt, um nicht für Rechnerausfälle auf einem Cluster anfällig zu sein. Wenn ein Server ausfällt, auf dem gerade eine Aufgabe ausgeführt wird, leitet Hadoop diese Aufgabe auf einen anderen Rechner um, bis sie abgeschlossen ist.

Sie können MapReduce- und Tez-Programme in Java schreiben, Hadoop Streaming zum parallelen Ausführen benutzerdefinierter Skripts verwenden, Hive und Pig für Abstraktionen höherer Ebene über MapReduce und Tez oder andere Tools für die Interaktion mit Hadoop nutzen.

Ab Hadoop 2 wird die Ressourcenverwaltung von YARN (Yet Another Resource Negotiator) übernommen. YARN behält die Übersicht über alle Ressourcen in Ihrem Cluster und stellt sicher, dass diese Ressourcen auf dynamische Weise verteilt werden, um die Aufgaben in Ihrem Verarbeitungs-Job zu erledigen. YARN kann Hadoop MapReduce- und Tez-Verarbeitungslasten so gut wie andere verteilte Frameworks, z. B. Apache Spark, verwalten.

Nutzen Sie EMR File System (EMRFS) auf Ihrem Amazon EMR-Cluster, um Amazon S3 als Datenebene für Hadoop zu verwenden. Amazon S3 ist hochskalierbar, kostengünstig und auf Langlebigkeit ausgelegt. Es eignet sich daher bestens als Datenspeicher für die Big Data-Verarbeitung. Wenn Sie Ihre Daten auf Amazon S3 speichern, können Sie die Computerebene von der Speicherebene trennen und CPU sowie Speicher Ihres Amazon EMR-Clusters entsprechend der Arbeitslasten anpassen und somit auf zusätzliche Knoten im Cluster zur Maximierung der Speicherfähigkeiten auf dem Cluster verzichten. Außerdem können Sie den Amazon EMR-Cluster bei Leerlauf ausschalten, um Kosten zu sparen, während die Daten sicher auf Amazon S3 liegen.

EMRFS ist darauf optimiert, dass Hadoop Daten direkt und performant zu Amazon S3 lesen und schreiben sowie Objekte, die mit der server- und clientseitigen Verschlüsselung von Amazon S3 geschützt wurden, verarbeiten kann. Mit EMRFS können Sie Amazon S3 als Data Lake nutzen, während Hadoop in Amazon EMR als elastische Abfrageebene fungieren kann.

Hadoop enthält außerdem ein verteiltes Speichersystem – Hadoop Distributed File System (HDFS) – in dem Daten auf mehreren Festplatten auf dem Cluster in großen Blöcken gespeichert werden. HDFS verfügt über einen konfigurierbaren Replikationsfaktor (Standardwert 3-fach) für erweiterte Verfügbarkeit und Langlebigkeit. HDFS überwacht Replikationen und teilt Daten gleichmäßig auf alle Knoten auf, auch wenn Knoten ausfallen oder neue hinzugefügt werden.

HDFS wird automatisch mit Hadoop auf Ihrem Amazon EMR-Cluster installiert. Sie können HDFS gemeinsam mit Amazon S3 verwenden, um Ihre Eingabe- und Ausgabedaten zu speichern. Eine Verschlüsselung von HDFS können Sie problemlos mithilfe einer Amazon EMR-Sicherheitskonfiguration erzielen. Amazon EMR konfiguriert Hadoop außerdem so, dass HDFS und lokale Festplatten zum Speichern von Zwischendaten verwendet werden, die während der Hadoop MapReduce-Jobs erstellt wurden, selbst wenn sich Ihre Eingabedaten auf Amazon S3 befinden.

Vorteile von Hadoop auf Amazon EMR

Sie können einen neuen Hadoop-Cluster schnell und dynamisch initialisieren oder Server zu Ihrem vorhandenen Amazon EMR-Cluster hinzufügen. Dadurch wird die erforderliche Zeit für das Verfügbarmachen von Ressourcen für Benutzer und Data Scientists spürbar reduziert. Verwenden Sie Hadoop auf der AWS-Plattform, um die betriebliche Agilität drastisch zu erhöhen und sowohl die Kosten als auch den Zeitaufwand zu senken, die notwendig sind, Ressourcen für Experimente und Entwicklung zuzuweisen.

Hadoop-Konfiguration, Netzwerke, Serverinstallationen, Sicherheitskonfigurationen, laufende administrative Wartung – all das kann kompliziert und fordernd sein. Als verwalteter Service kümmert sich Amazon EMR um Ihre Hadoop-Infrastrukturanforderungen, damit Sie sich um Ihr Kerngeschäft kümmern können.

Sie können Ihre Hadoop-Umgebung ganz einfach in andere Services wie Amazon S3, Amazon Kinesis, Amazon Redshift und Amazon DynamoDB integrieren, um die Datenverschiebung, Workflows und Analysen auf den vielen verschiedenen Services auf der AWS-Plattform zu ermöglichen. Außerdem können Sie den AWS Glue-Datenkatalog als verwaltetes Metadaten-Repository für Apache Hive und Apache Spark verwenden.

Viele Hadoop-Jobs müssen nicht permanent verarbeitet werden. Ein ETL-Job zum Beispiel kann stündlich, täglich oder monatlich ausgeführt werden, während Modell-Jobs für Finanzunternehmen oder genetische Sequenzierung vielleicht ein paar Mal pro Jahr vorkommen. Mit Hadoop auf Amazon EMR können Sie Cluster für diese Arbeitslasten jederzeit hochfahren, die Ergebnisse speichern und die Hadoop-Cluster dann wieder herunterfahren, wenn Sie sie nicht mehr benötigen. So vermeiden Sie unnötige Infrastrukturkosten. EMR 6.x unterstützt Hadoop 3, mit dem der YARN NodeManager Container entweder direkt auf dem EMR-Cluster-Host oder in einem Docker-Container starten kann. Details finden Sie in unserer Dokumentation.

Wenn Sie Hadoop auf Amazon EMR verwenden, können Sie Ihre Cluster in allen möglichen Availability Zones in jeder AWS-Region nach Belieben starten. Ein potentielles Problem oder eine Bedrohung in einer Region oder Zone können Sie einfach umgehen, indem Sie binnen weniger Minuten einen Cluster in einer anderen Zone starten.

Die Kapazitätsplanung kann oft zu teurer Ressourcenverschwendung oder Ressourcenbegrenzung führen, wenn Sie keine Hadoop-Umgebung nutzen. Amazon EMR ermöglicht Ihnen das minutenschnelle Erstellen von Clustern mit der erforderlichen Kapazität. Mittels EMR Managed Scaling lassen sich Knoten dynamisch vergrößern und verkleinern.

Wie stehen Hadoop und Big Data miteinander in Verbindung?

Hadoop wird aufgrund seiner exzellenten Skalierbarkeit häufig für die Verarbeitung von Big Data-Workloads verwendet. Fügen Sie einfach mehr Server mit den entsprechenden CPU- und Speicherwerten hinzu, um die Verarbeitungsleistung Ihres Hadoop-Clusters zu erhöhen und Ihre betrieblichen Anforderungen zu erfüllen.

Hadoop bietet Langlebigkeit und Verfügbarkeit in hohem Maße und kann dabei trotzdem analytische Arbeitslasten parallel verarbeiten. Diese Kombination aus Verfügbarkeit, Langlebigkeit und Skalierbarkeit macht Hadoop zur perfekten Lösung für Big Data-Arbeitslasten. Sie können mit Amazon EMR ein Cluster von Amazon EC2 Instances mit Hadoop binnen weniger Minuten erstellen und konfigurieren und sich Ihre Daten so zu Nutze machen.

Anwendungsfälle

Apache und Hadoop sind Markenzeichen der Apache Software Foundation.

Hadoop kann zur Analyse von Clickstream-Daten verwendet werden, um die Benutzer zu segmentieren und ihre Präferenzen zu verstehen. Inserenten können auch Clickstreams und die Aufrufprotokolle analysieren, um die Effizienz der Werbung zu steigern.

Erfahren Sie, wie Razorfish mit Hilfe von Hadoop auf Amazon EMR Clickstream-Analysen durchführt

Mit Hadoop lassen sich durch Web- und mobile Anwendungen generierte Protokolle verarbeiten. Hadoop hilft Ihnen, Petabytes an unstrukturierten und halbstrukturierten Daten in nützliche Einblicke in Ihre Anwendungen und Benutzerverhalten zu verwandeln.

Erfahren Sie, wie Yelp mithilfe von Hadoop auf Amazon EMR wichtige Website-Funktionen verbessert

 

Mit den Hadoop-Ökosystemanwendungen wie Hive können Benutzer Hadoop MapReduce über eine SQL-Schnittstelle nutzen, was Data Warehousing in gigantischem Umfang, verteilt und fehlertolerant ermöglicht. Speichern Sie mit Hadoop Ihre Daten und ermöglichen Sie Ihren Benutzern, Datenabfragen jeder Größe zu senden.

Sehen Sie sich an, wie Netflix mit Hilfe von Hadoop auf Amazon EMR ein Data Warehouse in Petabyte-Größe unterhält

Mit Hadoop können riesige Mengen genomischer Daten und anderer wissenschaftlicher Datensätze rasch und effizient verarbeitet werden. AWS hat die Daten des 1000 Genomes-Projekts der Öffentlichkeit kostenlos zur Verfügung gestellt.

Lesen Sie mehr über Genomik auf AWS

 

Dank der enormen Skalierbarkeit und den geringeren Kosten eignet sich Hadoop ideal für gewöhnliche ETL-Arbeitslasten, wie das Sammeln, Sortieren, Verbinden und Aggregieren großer Datensätze zur einfacheren Nutzung durch Downstream-Systeme.

Lesen Sie, wie Euclid mit Hilfe von Hadoop auf Amazon EMR ETL- und Datenaggregierungs-Arbeitslasten durchführt