Architektur und Service-Ebenen - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Architektur und Service-Ebenen

Die EMR Amazon-Servicearchitektur besteht aus mehreren Ebenen, von denen jede dem Cluster bestimmte Fähigkeiten und Funktionen bietet. Dieser Abschnitt bietet eine Übersicht über die jeweiligen Ebenen und Komponenten.

Speicher

Die Speicherschicht umfasst die verschiedenen Dateisysteme, die Sie in Ihrem Cluster verwendet werden. Es gibt mehrere verschiedene Speicheroptionen wie nachfolgend beschrieben.

Verteiltes Hadoop-Dateisystem () HDFS

Hadoop Distributed File System (HDFS) ist ein verteiltes, skalierbares Dateisystem für Hadoop. HDFSverteilt die gespeicherten Daten auf die Instanzen im Cluster und speichert mehrere Kopien der Daten auf verschiedenen Instanzen, um sicherzustellen, dass beim Ausfall einer einzelnen Instanz keine Daten verloren gehen. HDFSist kurzlebiger Speicher, der zurückgewonnen wird, wenn Sie einen Cluster beenden. HDFSist nützlich für das Zwischenspeichern von Zwischenergebnissen während der MapReduce Verarbeitung oder für Workloads mit erheblichen zufälligen I/O-Vorgängen.

Weitere Informationen finden Sie Speicheroptionen und Verhalten von Instances in diesem Handbuch oder im HDFSBenutzerhandbuch auf der Apache Hadoop-Website.

EMRDateisystem () EMRFS

Mithilfe des EMR Dateisystems (EMRFS) EMR erweitert Amazon Hadoop um die Möglichkeit, direkt auf Daten zuzugreifen, die in Amazon S3 gespeichert sind, als ob es sich um ein Dateisystem wie HDFS ein Dateisystem handeln würde. Sie können entweder Amazon S3 HDFS oder Amazon S3 als Dateisystem in Ihrem Cluster verwenden. In den meisten Fällen wird Amazon S3 zum Speichern von Eingabe- und Ausgabedaten verwendet, und Zwischenergebnisse werden in gespeichertHDFS.

Lokales Dateisystem

Das lokale Dateisystem bezieht sich auf einen lokal verbundenen Datenträger. Wenn Sie einen Hadoop-Cluster erstellen, wird jeder Knoten aus einer EC2 Amazon-Instance erstellt, die über einen vorkonfigurierten Block von vorinstalliertem Festplattenspeicher verfügt, der als Instance-Speicher bezeichnet wird. Daten zu Instance-Speicher-Volumes bleiben nur während des Lebenszyklus der EC2 Amazon-Instance erhalten.

Cluster-Ressourcenverwaltung

Der Ressourcenverwaltungs-Layer ist verantwortlich für die Verwaltung der Cluster-Ressourcen und die Planung der Aufträge für die Datenverarbeitung.

Standardmäßig EMR verwendet Amazon YARN (Yet Another Resource Negotiator), eine in Apache Hadoop 2.0 eingeführte Komponente, um Cluster-Ressourcen für mehrere Datenverarbeitungs-Frameworks zentral zu verwalten. Es gibt jedoch auch andere Frameworks und Anwendungen, die in Amazon EMR angeboten werden und nicht YARN als Ressourcenmanager verwendet werden. Amazon hat EMR außerdem auf jedem Knoten einen Agenten, der YARN Komponenten verwaltet, den Cluster funktionsfähig hält und mit Amazon kommuniziert. EMR

Da Spot-Instances häufig zum Ausführen von Task-Knoten verwendet werden, EMR verfügt Amazon über Standardfunktionen für die Planung von YARN Jobs, sodass laufende Jobs nicht fehlschlagen, wenn Task-Knoten, die auf Spot-Instances ausgeführt werden, beendet werden. Amazon ermöglicht EMR dies, indem es die Ausführung von Anwendungsmasterprozessen nur auf Kernknoten zulässt. Der Anwendungsmasterprozess steuert die Ausführung von Aufträgen und muss während der gesamten Laufzeit des Auftrags aktiv bleiben.

EMRAmazon-Version 5.19.0 und höher verwendet die integrierte YARNNode Labels-Funktion, um dies zu erreichen. (Frühere Versionen verwendeten einen Code-Patch). Die Eigenschaften in den Klassifizierungen yarn-site und der capacity-scheduler Konfiguration sind standardmäßig so konfiguriert, dass der YARN Capacity-Scheduler und der Fair-Scheduler die Vorteile von Node-Labels nutzen. Amazon kennzeichnet Kernknoten EMR automatisch mit dem CORE Label und legt Eigenschaften fest, sodass Anwendungsmaster nur für Knoten mit dem CORE Label geplant werden. Durch manuelles Ändern verwandter Eigenschaften in den Konfigurationsklassifizierungen von Yarn-Site und Capacity-Scheduler oder direkt in den zugehörigen XML Dateien könnte diese Funktion beeinträchtigt oder verändert werden.

Datenverarbeitungs-Frameworks

Der Datenverarbeitungs-Framework-Layer ist die Engine, die zur Verarbeitung und Analyse der Daten verwendet wird. Es sind viele Frameworks verfügbar, die auf einem eigenen Ressourcenmanagement laufen YARN oder über ein eigenes Ressourcenmanagement verfügen. Es gibt unterschiedliche Frameworks für die verschiedenen Verarbeitungsanforderungen, beispielsweise Stapel, Interaktiv, In-Memory, Streaming und so weiter. Das Framework, das Sie auswählen sollten, hängt von Ihrem Anwendungsfall ab. Dies wirkt sich auf die Sprachen und Schnittstellen der Anwendungsebene aus, d. h. der Ebene, über die mit den zu verarbeitenden Daten interagiert wird. Die wichtigsten für Amazon verfügbaren Verarbeitungs-Frameworks EMR sind Hadoop MapReduce und Spark.

Hadoop MapReduce

Hadoop MapReduce ist ein Open-Source-Programmiermodell für verteiltes Rechnen. Es vereinfacht den Prozess der Entwicklung paralleler verteilter Anwendungen, indem die gesamte Logik gehandhabt wird, während Sie die Funktionen "Map" und "Reduce" bereitstellen. Die Funktion "Map" führt eine Zuordnung von Daten und Sätzen von Schlüssel/Wert-Paaren durch, die als Zwischenergebnisse bezeichnet werden. Die Funktion "Reduce" kombiniert die Zwischenergebnisse, wendet weitere Algorithmen an und generiert das Endergebnis. Es stehen mehrere Frameworks zur Verfügung MapReduce, z. B. Hive, das automatisch Map- und Reduce-Programme generiert.

Weitere Informationen finden Sie unter Wie Karten- und Reduziervorgänge tatsächlich ausgeführt werden auf der Wiki-Website von Apache Hadoop.

Apache Spark

Spark ist ein Cluster-Framework und Programmiermodell für die Verarbeitung von Big-Data-Workloads. Wie Hadoop MapReduce ist Spark ein verteiltes Open-Source-Verarbeitungssystem, verwendet jedoch gerichtete azyklische Graphen für Ausführungspläne und In-Memory-Caching für Datensätze. Wenn Sie Spark auf Amazon ausführenEMR, können Sie EMRFS damit direkt auf Ihre Daten in Amazon S3 zugreifen. Spark unterstützt mehrere interaktive Abfragemodule wie SparkSQL.

Weitere Informationen finden Sie unter Apache Spark on Amazon EMR Clusters im Amazon EMR Release Guide.

Anwendungen und Programme

Amazon EMR unterstützt viele Anwendungen wie Hive, Pig und die Spark-Streaming-Bibliothek, um Funktionen wie die Verwendung von Sprachen auf höherer Ebene zur Erstellung von Verarbeitungs-Workloads, die Nutzung von Algorithmen für maschinelles Lernen, die Erstellung von Stream-Verarbeitungsanwendungen und den Aufbau von Data Warehouses bereitzustellen. Darüber hinaus unterstützt Amazon EMR auch Open-Source-Projekte, die über eigene Clusterverwaltungsfunktionen verfügen, anstatt sie zu verwendenYARN.

Sie verwenden verschiedene Bibliotheken und Sprachen, um mit den Anwendungen zu interagieren, die Sie in Amazon ausführenEMR. Sie können beispielsweise Java, Hive oder Pig mit MapReduce oder Spark Streaming, Spark und GraphX mit SQL Spark verwenden. MLlib

Weitere Informationen finden Sie im Amazon EMR Release Guide.