Allgemeines

F: Was ist Amazon EMR?

Amazon EMR ist ein Web-Service, mit dem Unternehmen, Forscher, Datenanalysten und Entwickler einfach und kosteneffektiv riesige Datenmengen verarbeiten können. Zum Einsatz kommt dabei ein Hadoop-Framework, das in der Cloud Computing-Infrastruktur von Amazon Elastic Compute Cloud (Amazon EC2) und Amazon Simple Storage Service (Amazon S3) ausgeführt wird.

F: Was kann ich mit Amazon EMR tun?

Mit Amazon EMR können Sie ohne Verzögerung so viel oder so wenig Kapazität wie gewünscht bereitstellen, um datenintensive Aufgaben in Anwendungsbereichen wie Webindizierung, Data Mining, Protokolldateianalyse, Machine Learning, Finanzanalyse, wissenschaftliche Simulation und bioinformatische Forschung durchzuführen. Mit Amazon EMR können Sie sich auf das Zerlegen oder Analysieren Ihrer Daten konzentrieren, ohne sich um die zeitaufwändige Einrichtung, Verwaltung oder Optimierung von Clustern kümmern zu müssen, auf denen Open Source-Big-Data-Anwendungen ausgeführt werden, oder um die Rechenkapazität, auf der sie basieren.

Amazon EMR eignet sich hervorragend für Prozesse, die eine schnelle und effiziente Verarbeitung großer Datenmengen erfordern. Auf der Web-Service-Oberfläche können Verarbeitungs-Workflows erstellt sowie der Fortschritt von ausgeführten Clustern überwacht werden. Zudem können Sie die unkomplizierte Web-Oberfläche der AWS Management Console verwenden, um Ihre Cluster zu starten und verarbeitungsintensive Berechnungen in Clustern aus Amazon EC2-Instances zu überwachen.

F: Wer kann Amazon EMR verwenden?

Jeder, der einen unkomplizierten Zugang zu leistungsstarker Datenanalyse wünscht, kann Amazon EMR einsetzen. Sie benötigen keine Erfahrung in der Software-Entwicklung, um mit mehreren Beispielanwendungen zu experimentieren, die im Entwicklerhandbuch und im AWS Big Data-Blog zur Verfügung stehen.

F: Über welche neuen Funktionen verfügt Amazon EMR?

Amazon EMR vereinfacht wesentlich die Installation, Verwaltung und Abstimmung von Hadoop-Clustern und der zugrunde liegenden Rechenkapazität. Sie können ohne Wartezeit große Hadoop-Cluster einrichten, mit denen die Verarbeitung innerhalb von Minuten und nicht von Stunden oder Tagen gestartet wird. Wenn Ihr Cluster die Verarbeitung abschließt und Sie nichts anderes angeben, wird er automatisch gelöscht, damit Sie nicht für Ressourcen bezahlen, die Sie nicht mehr benötigen.

Mit diesem Service können datenintensive Aufgaben für Anwendungen wie Web-Indexing, Data Mining, Logdateianalysen, Maschinenlernen, Finanzanalysen, wissenschaftliche Simulationen und bioinformatische Forschungsarbeiten schnell und unkompliziert durchgeführt werden.

Softwareentwickler können eigene anspruchsvolle Anwendungen entwickeln und ausführen, um Funktionen z. B. zur Planung, zur Erstellung von Auftragsabläufen oder zur Überwachung hinzuzufügen.

F: Was ist Apache Spark?

Apache SparkTMist ein verteiltes Open-Source-Verarbeitungssystem, das für große Datenmengen verwendet wird. Es nutzt In-Memory-Caching und optimierte Abfrageausführung für schnelle analytische Abfragen gegen Daten beliebiger Größe. Amazon EMR eignet sich perfekt, um Apache Spark in der Cloud einzusetzen, da es die Integrations- und Testanforderungen kommerzieller Spark-Distributionen mit dem Umfang, der Einfachheit und der Kosteneffizienz der Cloud kombiniert. Es ermöglicht den Einsatz von Spark-Clustern in nur wenigen Minuten, ohne dass Sie sich um Knotenbereitstellung, Cluster-Setup, Spark-Konfiguration oder Cluster-Tuning Gedanken machen müssen. EMR bietet eine Amazon EMR-Laufzeit für Apache Spark, eine leistungsoptimierte Laufzeitumgebung für Apache Spark, die standardmäßig in Amazon EMR-Clustern aktiv ist. Die Amazon EMR-Laufzeit für Apache Spark kann mehr als dreimal schneller sein als Cluster ohne EMR-Laufzeit und ist zu 100% API-kompatibel mit Standard-Apache Spark. Erfahren Sie mehr über Spark und Spark auf Amazon EMR.

F: Was ist Presto?

Presto ist eine verteilte Open-Source-SQL-Abfrage-Engine, die von Grund auf für schnelle analytische Abfragen gegen Daten beliebiger Größe entwickelt wurde. Mit Amazon EMR können Sie Presto-Cluster in Minutenschnelle starten, ohne sich um Knotenbereitstellung, Cluster-Setup, Presto-Konfiguration oder Cluster-Tuning Gedanken machen zu müssen. EMR erlaubt es Ihnen, eine, hunderte oder tausende von Recheninstanzen innerhalb von Minuten bereitzustellen. Presto hat zwei Community-Projekte - PrestoDB und PrestoSQL. Amazon EMR unterstützt beide Projekte. Erfahren Sie mehr über Presto und Presto auf Amazon EMR.

Cluster

F: Was ist ein Amazon EMR-Cluster?

In Amazon EMR wird ein Amazon EMR-Auftrag (und alle ihm zugewiesenen Verarbeitungsschritte) als "Cluster" bezeichnet. Jeder Cluster hat einen mit "j-" beginnenden eindeutigen Bezeichner.

F: Was ist ein Cluster-Schritt?

Ein Cluster-Schritt ist eine vom Benutzer definierte Verarbeitungseinheit, die grob einen datenverarbeitenden Algorithmus abbildet. Bei einem Schritt handelt es sich um eine Hadoop MapReduce-Anwendung in Form einer Java-JAR oder um ein in Java, Ruby, Perl, Python, PHP, R oder C++ implementiertes Streaming-Programm. Zur Ermittlung der Häufigkeit bestimmter Wörter in einem Dokument und Sortierung nach Häufigkeit: Zunächst wird eine MapReduce-Anwendung ausgeführt, mit der die Häufigkeit jedes Wortes ermittelt wird. Anschließend sortiert eine weitere MapReduce-Anwendung die Ergebnisse des ersten Schrittes.

F: In welchem Status kann sich ein Cluster befinden?

STARTING – EC2-Instances werden vom Cluster bereitgestellt, gestartet und konfiguriert.
BOOTSTRAPPING – Bootstrap-Aktionen werden auf den Cluster angewendet.
RUNNING – Ein Schritt für den Cluster wird derzeit ausgeführt.
WAITING – Der Cluster ist derzeit aktiv, es werden jedoch keine Schritte ausgeführt.
TERMINATING – Der Cluster wird gerade heruntergefahren.
TERMINATED – Der Cluster wurde fehlerfrei heruntergefahren.
TERMINATED_WITH_ERRORS – Der Cluster wurde mit Fehlern heruntergefahren.

F: In welchem Status kann sich ein Schritt befinden?

PENDING – Der Schritt wurde noch nicht ausgeführt.
RUNNING – Der Schritt wird ausgeführt.
COMPLETED – Der Schritt wurde erfolgreich abgeschlossen.
CANCELLED – Der Schritt wurde vor der Ausführung storniert, da ein früherer Schritt fehlgeschlagen ist oder ein Cluster vor der Ausführung abgebrochen wurde.
FAILED – Der Schritt ist während der Ausführung fehlgeschlagen.

Starten eines Clusters

F: Wie erhalte ich Zugriff auf Amazon EMR?

Sie können über EMR Studio, die AWS Management-Konsole, Befehlszeilen-Tools, SDKs oder die EMR-API auf Amazon EMR zugreifen.

F: Wie starte ich einen Cluster?

Sie können in der AWS Management Console durch Ausfüllen eines einfachen Antragsformulars einen Cluster starten. Legen Sie im Antragsformular den Namen Ihres Clusters, den Speicherort Ihrer Eingabedaten in Amazon S3, Ihre Verarbeitungsanwendung, den gewünschten Speicherort der Datenausgabe sowie Anzahl und Typ der gewünschten Amazon EC2-Instances fest. Optional können Sie einen Speicherort Ihrer Cluster-Protokolldateien sowie SSH-Schlüssel zur Anmeldung bei Ihrem Cluster während der Ausführung angeben. Alternativ können Sie einen Cluster über die "RunJobFlow"-API oder den Befehl "create" in den Befehlszeilen-Tools starten. Informationen zum Starten eines Clusters mit EMR Studio finden Sie im folgenden Abschnitt zu EMR Studio.

F: Was sind die ersten Schritte zum Einstieg in Amazon EMR?

Zur Anmeldung bei Amazon EMR klicken Sie auf der Amazon EMR-Detailseite https://aws.amazon.com/emr. Für den Zugriff auf Amazon EMR müssen Sie bei Amazon EC2 und Amazon S3 angemeldet sein. Ansonsten werden Sie während des Anmeldeprozesses bei Amazon EMR zu einer Anmeldung aufgefordert. In der Amazon EMR-Dokumentation erhalten Sie mit dem Handbuch „Erste Schritte“ eine erste Einführung in den Service.

F: Wie beende ich einen Cluster?

Sie können einen Cluster jederzeit über die AWS Management Console beenden, indem Sie auf den entsprechenden Cluster und anschließend auf die Schaltfläche "Terminate" klicken. Alternativ können Sie die "TerminateJobFlows"-API verwenden. Wenn Sie einen ausgeführten Cluster beenden, gehen alle Ergebnisse, die nicht dauerhaft in Amazon S3 gespeichert wurden, verloren und alle Amazon EC2-Instances werden heruntergefahren.

F: Unterstützt Amazon EMR mehrere Cluster gleichzeitig?

Ja. Sie können jederzeit einen neuen Cluster erstellen, auch wenn bereits ein oder mehrere Cluster ausgeführt werden.

F: Wie viele Cluster kann ich gleichzeitig ausführen?

Sie können beliebig viele Cluster ausführen. Wenn Sie beginnen, sind Sie auf 20 Instances in allen Ihren Clustern beschränkt. Wenn Sie weitere Instances benötigen, füllen Sie das Antragsformular für Amazon EC2-Instances aus. Sobald Ihr Amazon EC2-Limit erhöht wurde, wird das neue Limit automatisch bei Ihren Amazon EMR-Clustern berücksichtigt.

Verwalten eines Clusters

F: Wie werden Amazon EC2 und Amazon S3 von Amazon EMR verwendet?

Sie können Ihre Eingabedaten sowie eine Datenverarbeitungsanwendung in Amazon S3 hochladen. Amazon EMR startet dann eine von Ihnen festgelegte Anzahl von Amazon EC2-Instances. Der Service beginnt mit der Ausführung des Clusters. Die Eingabedaten von Amazon S3 werden mit dem S3 URI-Protokoll in die gestarteten Amazon EC2-Instances übertragen. Nach Abschluss des Clusters überträgt Amazon EMR die Ausgabedaten an Amazon S3. Dort können Sie diese abrufen oder als Eingabe für einen anderen Cluster verwenden.

F: Wie werden in Amazon EMR Berechnungen durchgeführt?

Amazon EMR verwendet das Hadoop-Datenverarbeitungssystem zur Durchführung von Berechnungen im MapReduce-Programmiermodell. Der Kunde implementiert deren Algorithmen mit "Map()"- und "Reduce()"-Funktionen. Der Dienst startet eine kundenspezifische Anzahl von Amazon EC2-Instances, die aus einem Master- und mehreren anderen Knoten bestehen. Amazon EMR führt auf diesen Instances die Hadoop-Software aus. Der Master-Knoten teilt die Eingabedaten in Blöcke und weist den anderen-Knoten die Verarbeitung der Blöcke zu. Jeder Knoten führt anschließend die Map-Funktion mit den zugewiesenen Daten aus und generiert Zwischendaten. Die Zwischendaten werden sortiert und aufgeteilt und an Prozesse weitergeleitet, die lokal auf den Knoten die Reducer-Funktion anwenden. Schließlich wird das Output von den Reducer-Tasks in Dateien gesammelt. Ein einzelner Cluster kann eine Reihe dieser MapReduce-Schritte enthalten.

F: Wie zuverlässig ist Amazon EMR?

Bitte beachten Sie unsere Service Level Agreement

F: Welche Instance-Typen von Amazon EC2 unterstützt Amazon EMR?

Auf der Seite mit der Preisübersicht für EMR finden Sie Details zu den verfügbaren Instance-Typen und Preisen für die jeweilige Region.

F: Wie wähle ich den richtigen Amazon EC2-Instance-Typ aus?

Verwenden Sie die Anleitungen in diesem Abschnitt, um die Instance-Typen, Kaufoptionen und die Menge an Speicher zu bestimmen, die für jeden Knotentyp in einem EMR-Cluster bereitgestellt werden sollen.

F: Wie lange dauert es, bis mein Cluster startbereit ist?

Dies ist abhängig von verschiedenen Faktoren: Typ des Clusters, Menge der Eingabedaten sowie Anzahl und Typ der für den Cluster gewählten Amazon EC2-Instances.

F: Kann ein im Cluster ausgefallener Master-Knoten von Amazon EMR wiederhergestellt werden?

Ja. Sie können ein EMR-Cluster (Version 5.23 oder neuer) mit drei Master-Knoten starten und Hochverfügbarkeit für Anwendungen wie YARN Resource Manager, HDFS Name Node, Spark, Hive und Ganglia unterstützen. Amazon EMR stellt automatisch ein Failover auf einem Standby-Master-Knoten bereit, wenn der primäre Master-Knoten ausfällt oder wenn kritische Prozesse, wie Resource Manager oder Name Node, abstürzen. Da der Master-Knoten kein potenzieller einzelner Ausfallpunkt ist, können Sie langlebige EMR-Cluster ohne Unterbrechung ausführen. Im Falle eines Failovers ersetzt Amazon EMR den ausgefallenen Master-Knoten automatisch durch einen neuen Master-Knoten mit derselben Konfiguration und den selben Boot-Strap-Aktionen. 

F: Kann ein im Cluster ausgefallener Knoten von Amazon EMR wiederhergestellt werden?

Ja. Amazon EMR ist bei Knoten-Ausfällen fehlertolerant, sodass der Auftrag bei Ausfall eines Knotens fortgesetzt wird. Amazon EMR stellt außerdem einen neuen Knoten bereit, wenn ein anderer Knoten ausfällt. Jedoch ersetzt Amazon EMR keine Knoten, wenn alle Knoten im Cluster verloren sind.

F: Kann ich SSH auf meine Cluster-Knoten anwenden?

Ja. Sie können sich per SSH mit Ihren Cluster-Knoten verbinden und Hadoop-Befehle direkt auf ihnen ausführen. Wenn Sie sich per SSH mit einem bestimmten Knoten verbinden möchten, muss zunächst eine SSH-Verbindung mit dem Master-Knoten hergestellt werden. Anschließend können Sie sich per SSH mit dem gewünschten Knoten verbinden.

F: Was sind Amazon EMR-Bootstrap-Aktionen?

Bootstrap-Aktionen sind eine Funktion in Amazon EMR, die den Benutzern eine kundenspezifische Einrichtung vor der Ausführung ihrer Cluster ermöglicht. Bootstrap-Aktionen können verwendet werden, um Software zu installieren oder Instances zu konfigurieren, bevor der Cluster ausgeführt wird. Weitere Informationen zu Bootstrap-Aktionen finden Sie im Entwicklerhandbuch zu EMR.

F: Wie kann ich Bootstrap-Aktionen verwenden?

Sie können ein Bootstrap-Aktionsskript in einer Sprache schreiben, die bereits für die Cluster-Instance installiert ist, z. B. Bash, Perl, Python, Ruby, C++ oder Java. Mehrere vordefinierte Bootstrap-Aktionen sind verfügbar. Nachdem das Skript geschrieben wurde, müssen Sie es in Amazon S3 hochladen und auf seinen Speicherort verweisen, wenn Sie einen Cluster starten. Im Entwicklerhandbuch erhalten Sie weitere Informationen zur Verwendung von Bootstrap Actions.

F: Wie kann ich Hadoop-Einstellungen für meinen Cluster konfigurieren?

Die Hadoop-Standardkonfiguration von EMR ist für die meisten Arbeitslasten geeignet. Jedoch kann es angesichts der spezifischen Arbeitsspeicher- und Verarbeitungsanforderungen Ihres Clusters angebracht sein, diese Einstellungen zu ändern. Wenn Ihre Cluster-Aufgaben beispielsweise arbeitsspeicherintensiv sind, können Sie beispielsweise weniger Aufgaben pro Kern nutzen und die Heap-Größe des Auftrag-Trackers verringern. Für diesen Fall steht eine vordefinierte Bootstrap-Aktion zur Konfiguration Ihres Clusters beim Start zur Verfügung. Im Entwicklerhandbuch erfahren Sie im Abschnitt Konfiguration arbeitsspeicherintensiver Bootstrap-Aktionen mehr über die Konfiguration und Verwendung. Eine zusätzliche vordefinierte Bootstrap-Aktion steht zur Verfügung. Dadurch haben Sie die Möglichkeit Ihre Clustereinstellungen Ihren Wünschen entsprechend anzupassen. Im Entwicklerhandbuch erfahren Sie im Abschnitt Konfiguration der Hadoop Bootstrap-Aktion mehr über die Verwendung.

F: Kann ich die Anzahl der Knoten in einem ausgeführten Cluster ändern?

Ja. Zwei Typen von Knoten sind möglich: (1) Core-Knoten, die sowohl persistente Daten im Hadoop Distributed File System (HDFS) hosten als auch Hadoop-Aufgaben ausführen, und (2) Aufgabenknoten, die nur Hadoop-Aufgaben ausführen. Während der Ausführung eines Clusters können Sie die Anzahl der Kernknoten erhöhen oder Anzahl von Aufgabenknoten verringern. Dies kann über die API, das Java SDK oder den Befehlszeilen-Client erfolgen. Nähere Informationen zum Ändern der Größe eines ausgeführten Clusters erhalten Sie im Entwicklerhandbuch im Abschnitt Größenanpassung eines aktiven Clusters. Sie können auch EMR Managed Scaling verwenden.

F: Wann würde ich Kernknoten anstelle von Aufgabenknoten verwenden?

Da Kernknoten persistente Daten in HDFS hosten und nicht entfernt werden können, sollten Kernknoten für die Kapazität reserviert werden, die bis zum Abschluss des Clusters benötigt wird. Da Aufgabenknoten hinzugefügt oder entfernt werden können und kein HDFS enthalten, sind sie optimal für Kapazität geeignet, die nur temporär benötigt wird. Sie können Aufgaben-Instance-Flotten auf Spot-Instances starten, um die Kapazität zu erhöhen und gleichzeitig die Kosten zu minimieren.

F: Aus welchem Grund sollte ich die Anzahl der Knoten in meinem ausgeführten Cluster ändern?

Es gibt einige Szenarien, bei denen die Anzahl der Knoten in einem ausgeführten Cluster geändert werden sollte. Wenn ein Cluster langsamer als erwartet ausgeführt wird oder sich die zeitlichen Anforderungen ändern, können Sie die Anzahl von Kernknoten erhöhen, um die Cluster-Leistung zu steigern. Wenn einzelne Phasen des Clusters unterschiedliche Kapazitätserfordernisse haben, können Sie mit einer geringen Anzahl von Kernknoten beginnen und die Anzahl von Aufgabenknoten den wechselnden Anforderungen an die Cluster-Kapazität entsprechend erhöhen oder verringern. Sie können auch EMR Managed Scaling verwenden.

F: Kann ich die Anzahl der Knoten zwischen Cluster-Schritten ändern?

Ja. Der Cluster kann einen vordefinierten Schritt enthalten, der die Cluster-Größe zwischen Schritten, die bekanntermaßen unterschiedliche Kapazitätserfordernisse haben, automatisch anpasst. Da alle Schritte garantiert sequenziell ausgeführt werden, kann auf diese Weise die Anzahl der Knoten festgesetzt werden, die einen bestimmten Schritt des Clusters ausführen.

F: Wie kann ich anderen IAM-Benutzern erlauben, auf meinen Cluster zuzugreifen?

Um einen neuen Cluster zu erstellen, der allen IAM-Benutzern an der Befehlszeilen-Schnittstelle von EMR angezeigt wird, fügen Sie beim Erstellen des Clusters das Kennzeichen "--visible-to-all-users" hinzu. Beispiel: elastic-mapreduce --create --visible-to-all-users. Wählen Sie in der Management Console im Create Cluster Wizard im Bereich "Advanced Options" die Option "Visible to all IAM Users" aus.

Damit ein vorhandener Cluster allen IAM-Benutzern angezeigt wird, müssen Sie die Befehlszeilen-Schnittstelle von EMR verwenden. Verwenden Sie "--set-visible-to-all-users" und geben Sie die Cluster-ID an. Beispiel: elastic-mapreduce --set-visible-to-all-users true --jobflow j-xxxxxxx. Dies ist nur dem Ersteller des Clusters möglich.

Weitere Informationen finden Sie im EMR-Entwicklerhandbuch im Abschnitt Konfigurieren von Benutzerberechtigungen.

Markieren eines Clusters

F: Welche Amazon EMR-Ressourcen kann ich mit Tags versehen?

Sie können Tags zu einem aktiven Amazon EMR-Cluster hinzufügen. Ein Amazon EMR-Cluster besteht aus Amazon EC2-Instances, und ein zu einem Amazon EMR-Cluster hinzugefügtes Tag wird auf alle aktiven Amazon EC2-Instances in diesem Cluster verteilt. Tags aus beendeten Clustern oder beendeten Amazon EC2-Instances, die Teil eines aktiven Clusters waren, können nicht hinzugefügt, bearbeitet oder entfernt werden.

F: Unterstützt das Amazon EMR-Tagging ressourcenbasierte Berechtigungen bei IAM-Benutzern?

Nein. Amazon EMR unterstützt keine ressourcenbasierten Genehmigungen nach Tag. Allerdings ist unbedingt zu beachten, dass sich auf Amazon EC2-Instances verteilte Tags wie normale Amazon EC2-Tags verhalten. Daher wirkt sich eine IAM-Richtlinie für Amazon EC2 auf Tags aus, die von Amazon EMR verteilt wurden, wenn sie den Bedingungen in dieser Richtlinie entsprechen.

F: Wie viele Tags kann ich einer Ressource hinzufügen?

Sie können maximal zehn Tags zu einem Amazon EMR-Cluster hinzufügen.

F: Werden meine Amazon EMR-Tags für einen Cluster in jeder Amazon EC2-Instance in diesem Cluster angezeigt? Wenn ich ein Tag für meinem Amazon EMR- Cluster entferne, wird dieses Tag automatisch aus jeder zugehörigen EC2-Instance entfernt?

Ja. Amazon EMR verteilt die zu einem Cluster hinzugefügten Tags auf die EC2-Instances, die diesem Cluster zugrunde liegen. Wenn Sie ein Tag zu einem Amazon EMR-Cluster hinzufügen, wird es auch in den dazugehörigen Amazon EC2-Instances angezeigt. Dasselbe gilt, wenn Sie ein Tag aus einem Amazon EMR-Cluster entfernen. Es wird dann ebenfalls aus den dazugehörigen Amazon EC2-Instances entfernt. Wenn Sie für Amazon EC2 jedoch IAM-Richtlinien verwenden und die Tagging-Funktionalität von Amazon EMR nutzen möchten, sollten Sie sich vergewissern, dass die Verwendung der Tagging-APIs CreateTags und DeleteTags von Amazon EC2 genehmigt ist.

F: Was muss ich tun, damit meine Tags in meiner Abrechnung für Segmentkosten erscheinen?

Wählen Sie hier die Tags, die Sie für Ihren AWS Abrechnungsbericht verwenden möchten. Zum Anzeigen der Kosten für die kombinierten Ressourcen können Sie anschließend Ihre Abrechnungsdaten nach Ressourcen mit denselben Tag-Schlüsselwerten gliedern.

F: Woran erkenne ich, welche Amazon EC2-Instances Teil eines Amazon EMR-Clusters sind?

Eine Amazon EC2-Instance, die einem Amazon EMR-Cluster zugeordnet ist, weist zwei System-Tags auf:

  • aws:elasticmapreduce:instance-group-role=CORE
    • Schlüssel = instance-group role; Wert = [CORE oder TASK];
  • aws:elasticmapreduce:job-flow-id=j-12345678
    • Schlüssel = job-flow-id; Wert = [JobFlowID]

F: Kann ich Tags direkt in den Amazon EC2-Instances bearbeiten?

Ja. Sie können Tags direkt zu Amazon EC2-Instances hinzufügen oder daraus entfernen, die Teil eines Amazon EMR-Clusters sind. Wir raten von dieser Vorgehensweise jedoch ab, weil das Tagging-System von Amazon EMR die von Ihnen direkt an einer zugehörigen Amazon EC2-Instance vorgenommenen Änderungen nicht synchronisiert. Wir empfehlen, Tags für Amazon EMR-Cluster zu Amazon EMR-Konsole, CLI oder API hinzuzufügen oder daraus zu entfernen, um sicherzustellen, dass der Cluster und eine zugehörigen Amazon EC2-Instances die richtigen Tags aufweisen.

Entwicklung & Debugging

Entwicklung

F: Wo finde ich Codebeispiele?

Beispielcode finden Sie in diesen Artikeln und Tutorials.

F: Wie entwickle ich eine Anwendung zur Datenverarbeitung?

Sie können einen Datenverarbeitungsauftrag auf Ihrem Desktop entwickeln, indem Sie beispielsweise Eclipse- oder NetBeans-Plug-Ins wie IBM MapReduce Tools for Eclipse (http://www.alphaworks.ibm.com/tech/mapreducetools) verwenden. Mit diesen Tools können Sie MapReduce-Aufträge auf einfache Weise entwickeln, debuggen und lokal auf Ihrem Rechner testen. Alternativ können Sie Ihren Cluster unter Einsatz einer oder mehrerer Instances direkt in Amazon EMR entwickeln.

F: Worin liegen die Vorteile von Befehlszeilen-Tools oder APIs im Vergleich zur AWS Management Console?

Die Befehlszeilen-Tools oder APIs bieten die Möglichkeit, Cluster programmgesteuert zu starten und ihre Ausführung zu überwachen, zusätzliche maßgeschneiderte Funktionen für Cluster zu erstellen (z. B. Sequenzen mit mehreren Verarbeitungsschritten, Planung, Workflows oder Überwachung) oder nützliche Tools und Anwendungen für andere Amazon EMR-Kunden zu entwickeln. Die AWS Management Console hingegen bietet eine benutzerfreundliche grafische Oberfläche, auf der Ihre Cluster direkt in einem Web-Browser gestartet und überwacht werden können.

F: Kann ich einem bereits ausgeführten Cluster Schritte hinzufügen?

Ja. Sobald ein Auftrag durchgeführt wird, können Sie über die "AddJobFlowSteps"-API optional weitere Schritte hinzufügen. Mit der "AddJobFlowSteps"-API werden am Ende der aktuellen Schrittfrequenz neue Schritte hinzugefügt. Diese API können Sie einsetzen, um eine bedingte Logik in Ihren Cluster zu implementieren, oder für Debug-Vorgänge nutzen.

F: Kann ich einen permanenten Cluster ausführen?

Ja. Amazon EMR-Cluster, die mit aktiviertem Beendigungsschutz-Flag gestartet werden, werden so lange ausgeführt, bis sie explizit beendet werden. Dies erlaubt es Kunden, einem Cluster bei Bedarf Schritte hinzuzufügen. Sie können diese Möglichkeit zum Debuggen der Logik Ihres Clusters nutzen, ohne wiederholt auf den Start des Clusters warten zu müssen. Ein permanenter Cluster bietet sich ebenfalls an, um umfangreiche Data Warehouse-Cluster auszuführen. Dies kann mit Data Warehouse- und Analysepaketen, die auf Hadoop basierend ausgeführt werden, beispielsweise Hive und Pig, kombiniert werden.

F: Werde ich benachrichtigt, wenn mein Cluster beendet ist?

Sie können sich für Amazon SNS registrieren und veranlassen, dass der Cluster nach Beendigung eine Nachricht an Ihr SNS-Thema übermittelt. Sie können auch den Fortschritt Ihres Clusters in der AWS Management Console einsehen oder über die Befehlszeile, das SDK oder die APIs abrufen, um den Status Ihres Clusters zu ermitteln.

F: Kann ich meinen Cluster beenden, wenn meine Schritte abgeschlossen sind?

Ja. Sie können Ihren Cluster automatisch beenden, wenn alle Schritte abgeschlossen sind, indem Sie das Flag für die automatische Beendigung aktivieren.

F: Welche Programmiersprachen unterstützt Amazon EMR?

Sie können Java zum Implementieren von Hadoop Custom-JARs verwenden. Alternativ sind andere Sprachen wie Perl, Python, Ruby, C++, PHP und R über Hadoop Streaming verwendbar. Nähere Informationen zur Verwendung von Hadoop Streaming finden Sie im Entwicklerhandbuch.

F: Welche Betriebssystemversionen unterstützt Amazon EMR?

Amazon EMR erstellt Cluster-Instances mit einem Amazon Linux Amazon Machine Image (AMI), das für Amazon EMR optimiert ist. Die AMI enthält das Betriebssystem Amazon Linux, andere Software und Konfigurationen, die für jede Instance erforderlich sind, um Ihre Cluster-Anwendungen zu hosten. Das Ende der Lebensdauer von Amazon Linux AMI ist der 31. Dezember 2020. EMR AMIs basieren auf Amazon Linux 2 ab 5.30.0 und 6.0.0. Alternativ können Sie eine eigene AMI angeben, die Sie auf Basis der Amazon Linux AMI erstellen. Dies ermöglicht Ihnen eine ausgefeilte Vorkonfiguration für nahezu jede Anwendung. Weitere Informationen finden Sie unter Verwenden eines benutzerdefinierten AMI.

F: Ist die Hadoop-Benutzeroberfläche während der Ausführung meines Clusters sichtbar?

Ja. Nähere Informationen zum Zugriff auf die Hadoop-Benutzeroberfläche finden Sie im Entwicklerhandbuch im Abschnitt Hadoop-Benutzeroberfläche.

F: Unterstützt Amazon EMR Softwarepakete anderer Hersteller?

Ja. Die empfohlene Methode zum Installieren von Software-Paketen anderer Hersteller in Ihrem Cluster ist die Verwendung von Bootstrap-Aktionen. Alternativ können Sie Bibliotheken Dritter direkt in die Mapper- oder Reducer-Befehlsdatei packen. Sie können auch statisch kompilierte Befehlsdateien mit dem Hadoop Distributed-Cache-Mechanismus hochladen. 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. Weitere Details finden Sie in unserer Dokumentation.

F: Welche Hadoop-Versionen unterstützt Amazon EMR?

Informationen zu den aktuellen von Amazon EMR unterstützten Versionen finden Sie in der Dokumentation.

F: Stellt Amazon der Open-Source-Community Verbesserungen für Hadoop zur Verfügung?

Ja. Amazon EMR ist in der Open Source-Community aktiv und trägt viele Korrekturen zur Open Source-Community von Hadoop bei.

F: Aktualisiert Amazon EMR die unterstützte Hadoop-Version?

Amazon EMR aktualisiert regelmäßig seine unterstützte Version von Hadoop und richtet sich dabei nach Hadoop-Veröffentlichungen der Community. Dabei kann es vorkommen, dass von Amazon EMR einzelne Hadoop-Versionen übersprungen werden.

F: Wie lange dauert es in der Regel, bis Amazon EMR ältere Versionen von Hadoop nicht mehr unterstützt?

Amazon EMR stellt die Unterstützung älterer Hadoop-Versionen einige Monate nach der Aktualisierung ein. Amazon EMR-APIs sind jedoch abwärtskompatibel. Wenn Tools auf Basis dieser APIs entwickelt werden, sind diese auch dann funktionsfähig, wenn die verwendete Hadoop-Version von Amazon EMR aktualisiert wird.

Debugging

F: Welche Tools stehen mir zum Debuggen zur Verfügung?

Es gibt verschiedene Tools, mit denen Sie Informationen zu Ihrem Cluster sammeln können, um festzustellen, was schief gelaufen ist. Einige erfordern, dass Sie sie beim Starten des Clusters initialisieren; andere sind für jeden Cluster verfügbar. Sie erhalten Tools zum Anzeigen von Clusterdetails, Tools zum Anzeigen von Protokolldateien und Tools zum Überwachen der Clusterleistung. Weitere Informationen finden Sie in der Dokumentation.

F: Wie kann ich auf die für einzelne Anwendungen in meinem Cluster verfügbaren Webschnittstellen zugreifen?

Sie können über SSH eine Verbindung zu Ihrem Master-Knoten herstellen.. Hadoop veröffentlicht Benutzeroberflächen auch als Websites, die auf den Kern- und Aufgabenknoten gehostet werden. Diese Websites sind auch nur auf lokalen Webservern auf den Knoten verfügbar. Hier sind die Webschnittstellen, die Sie für Cluster-Instances anzeigen können.

F: Kann ich einfach auf den Anwendungsverlauf zugreifen, ohne dass SSH in den Cluster aufgenommen wird?

Ja. Sie haben mehrere Optionen, um Zugriff außerhalb des Clusters auf dauerhafte Anwendungsbenutzeroberflächen für Apache Spark, Tez UI und den YARN-Timeline-Server zu erhalten, mehrere Benutzeroberflächen für Clusteranwendungen und eine zusammenfassende Ansicht des Anwendungsverlaufs in der EMR-Konsole für alle YARN-Anwendungen. Weitere Details finden Sie in der Dokumentation.

EMR Notebooks

F: Was sind EMR Notebooks?

EMR Notebooks bieten eine verwaltete Umgebung auf Basis von Jupyter Notebook, die es Datenwissenschaftlern, Analysten und Entwicklern ermöglicht, Daten vorzubereiten und zu visualisieren, mit Kollegen zusammenzuarbeiten, Anwendungen zu erstellen und interaktive Analysen mit EMR-Clustern durchzuführen.

F: Was kann ich mit EMR Notebooks tun?

Sie können EMR Notebooks verwenden, um Apache Spark-Anwendungen zu erstellen und interaktive Abfragen auf Ihrem EMR-Cluster mit minimalem Aufwand durchzuführen. Mehrere Benutzer können serverlose Notebooks direkt von der Konsole aus erstellen, sie an einen bestehenden gemeinsamen EMR-Cluster anschließen oder einen Cluster direkt von der Konsole aus bereitstellen und sofort mit Spark experimentieren. Sie können Notebooks trennen und wieder an neue Cluster anhängen. Notebooks werden automatisch in S3-Buckets gespeichert, und Sie können gespeicherte Notebooks von der Konsole abrufen, um die Arbeit fortzusetzen. EMR Notebooks sind mit den Bibliotheken im Anaconda-Repository vorverpackt, so dass Sie diese Bibliotheken in Ihren Notebook-Code importieren und verwenden können, um Daten zu bearbeiten und Ergebnisse zu visualisieren. Darüber hinaus verfügen EMR-Notebooks über integrierte Spark-Monitoring-Funktionen, mit denen Sie den Fortschritt Ihrer Spark-Aufträge überwachen und Code aus dem Notebook heraus debuggen können.

F: Wie kann ich mit EMR Notebooks beginnen?

Um mit EMR Notebooks zu beginnen, öffnen Sie die EMR-Konsole und wählen Sie im Navigationsbereich Notebooks. Dort wählen Sie einfach Notebook erstellen, geben Sie einen Namen für Ihr Notebook ein, wählen Sie einen EMR-Cluster oder erstellen Sie sofort einen neuen, stellen Sie eine Service-Rolle für das zu verwendende Notebook bereit, und wählen Sie einen S3-Bucket, in dem Sie Ihre Notebook-Dateien speichern möchten, und klicken Sie dann auf Notebook erstellen. Nachdem das Notebook einen Bereit-Status angezeigt hat, wählen Sie Öffnen, um den Editor des Notebooks zu starten.

F: Kann ich EMR-Notebooks öffnen, ohne mich bei der AWS Management Console anzumelden?

Nein, um ein Notebook zu erstellen oder zu öffnen und Abfragen auf Ihrem EMR-Cluster auszuführen, müssen Sie sich bei der AWS Management Console anmelden. Die Notebook-Dateien werden im ipynb-Format in Ihrem S3-Bucket gespeichert und können lokal von Ihrem Computer heruntergeladen und geöffnet werden.

F: Welche Programmiersprachen unterstützt EMR Notebooks?

EMR Notebooks unterstützt PySpark, SparkR, SparkSQL, Spark (Scala) und Python-Kernel.

F: Welche Bibliotheken sind mit EMR Notebooks verfügbar?

Bibliotheken, die sich in den Open-Source-Repositories von Anaconda befinden, können in Ihren Code importiert werden. Sie können diese Bibliotheken importieren und lokal in Notebooks verwenden.

F: Kann ich benutzerdefinierte Bibliotheken installieren, die in meinem Notebook-Code verwendet werden?

Alle Spark-Abfragen werden auf Ihrem EMR-Cluster ausgeführt, daher müssen Sie alle Laufzeitbibliotheken installieren, die Ihre Spark-Anwendung auf dem Cluster verwendet. Sie können eine Bootstrap-Aktion oder einen benutzerdefinierten AMI verwenden, um die erforderlichen Bibliotheken zu installieren, wenn Sie einen Cluster erstellen. Weitere Informationen finden Sie unter Bootstrap-Aktionen zur Installation zusätzlicher Software erstellen und Einen benutzerdefinierten AMI verwenden im Amazon EMR Management-Handbuch. Die Installation von Bibliotheken aus dem Notebook-Editor heraus wird nicht unterstützt.

F: Welche Service Limits sind mit EMR Notebooks verbunden?

Notebooks verwenden den Masterknoten Ihres EMR-Clusters, um Abfragen auszuführen. Die Größe der Master-Instance begrenzt die Anzahl der Notebooks, die Sie an einen Cluster anhängen können. Sobald Sie den Grenzwert überschritten haben, müssen Sie ein aktives Notebook stoppen, bevor Sie ein anderes starten können.

F: Wie stoppe ich mein Notebook?

Sie können die EMR-Konsole verwenden. Wählen Sie Notebooks, wählen Sie das Notebook aus der Liste aus und wählen Sie Stop. Dadurch wird die Notebook-Sitzung beendet und es ist nicht mehr möglich, sie im Editor des Notebooks zu öffnen. Sie können Start wählen, um das Notebook neu zu starten.

F: Wie lösche ich mein Notebook?

Sie können die EMR-Konsole verwenden. Wählen Sie Notebooks, wählen Sie das Notebook aus der Liste aus und wählen Sie Löschen. Das Löschen eines Notebooks entfernt es nur aus der Liste in der Konsole. Die Notebookdatei befindet sich weiterhin an dem Speicherort von Amazon S3, den Sie bei der Erstellung des Notebooks angegeben haben.

F: Wie kann ich Abfragen ausführen und Code von einem Notebook aus ausführen?

Spark-Abfragen, die Sie innerhalb eines Notebooks ausführen, werden auf dem EMR-Cluster ausgeführt, den Sie beim Erstellen des Notebooks auswählen. Der Kernel der Programmiersprache, den Sie im Notebook-Editor auswählen, interagiert mit dem auf Ihrem EMR-Cluster installierten Livy-Server, um eine Spark-Sitzung zu erstellen, und alle Ihre Abfragen laufen auf dem Cluster. Die Ergebnisse der Spark-Anwendung werden mit Livy an den Kernel zurückgemeldet und sind im Notebook sichtbar.

Bevor Sie Code innerhalb des Notebook-Editors ausführen, müssen Sie sicherstellen, dass das Notebook den Status Bereit hat. Dieser Status bedeutet, dass die Schnittstelle zwischen den Anwendungen auf dem Cluster und dem Notebook-Editor für die Ausführung von Abfragen und die Ausführung von Code vorbereitet ist. Um den Editor zu öffnen, wählen Sie das Notebook aus der Liste der Notebooks aus und wählen Sie anschließend Öffnen, um den Notebook-Editor in einem neuen Browser-Tab zu starten. Wählen Sie im Notebook-Editor aus der Liste Kernel den Kernel der Programmiersprache für Ihre Abfragen aus. Nachdem der Kernel gestartet wurde und bereit ist, können Sie Code wie gewohnt in einem Jupyter-Notebook ausführen - zum Beispiel durch Klicken auf die Schaltfläche Ausführen in einer einzelnen Zelle, Auswählen von Alle ausführen aus dem Menü Zelle usw.

F: Welche EMR-Versionen werden von EMR Notebooks unterstützt?

EMR Notebooks können an EMR-Cluster mit EMR-Version 5.18.0 oder höher angeschlossen werden.

F: Kann ich ohne EMR-Cluster ein Notebook erstellen oder den Notebook-Editor öffnen?

Nein, um Ihr EMR Notebook von der Konsole aus zu erstellen oder zu öffnen, müssen Sie es für die Dauer Ihrer Notebook-Sitzung an einen laufenden EMR-Cluster anschließen. Sie können schnell einen kompatiblen EMR-Cluster erstellen, wenn Sie das Notebook erstellen oder bevor Sie es neu starten. Sie können eine zuvor erstellte Notebook-Datei im ipynb-Format jederzeit von dem S3-Speicherort herunterladen, den Sie beim Erstellen des Notebooks gewählt haben.

F: Kann ich meine Notebooksitzung auf unbestimmte Zeit laufen lassen?

Nein. Wenn ein Notebook für längere Zeit im Leerlauf ist, wird das Notebook gestoppt. Wenn der Notebook-Editor noch geöffnet ist, fehlschlägt der Code, den Sie im Editor ausführen. Sie können ein Notebook über die EMR-Konsole erneut starten und dann den Notebook-Editor wieder öffnen.

F: Was passiert, wenn ich den Notebook-Editor schließe, während er Code auf dem Cluster ausführt?

Das Schließen des Notebook-Editors wirkt sich nicht auf den Code aus, der auf dem Cluster ausgeführt wird, aber wenn Sie den Notebook-Editor für längere Zeit nicht erneut öffnen, wird das Notebook gestoppt, und Sie erhalten keinen Output zurück in das Notebook. Sie können dieses Notebook neu starten und Ihre Arbeit fortsetzen, indem Sie auf den Notebook-Link klicken.

F: Schaltet sich der EMR-Cluster aus, wenn er nicht mehr an ein Notebook angeschlossen ist?

Nein. Sie müssen den Cluster beenden, um ihn herunterzufahren.

F: Welche anderen Apache Hadoop-Anwendungen kann ich mit EMR Notebooks verwenden?

EMR Notebooks unterstützt derzeit Spark im Hadoop-Ökosystem.

F: Kann ich ein Notebook mit verschiedenen EMR-Clustern verwenden?

Ja, Sie können EMR-Cluster ändern. Notebooks muss gestoppt werden, bevor Sie Cluster wechseln können Sie können dann den Cluster aus der Liste Notebooks auswählen, wählen Sie Details anzeigen, wählen Sie Cluster ändern, um einen laufenden Cluster auszuwählen oder einen neuen zu erstellen, und anschließend wählen Sie Cluster ändern und Notebook starten.

F: Wo werden die Notebooks gespeichert?

Notebook-Dateien werden in regelmäßigen Abständen automatisch im Dateiformat ipynb am Amazon S3-Speicherort gespeichert, den Sie beim Erstellen des Notebooks angeben. Die Notebook-Datei hat den gleichen Namen wie Ihr Notebook in der EMR-Konsole. Sie können das Notebook auch jederzeit manuell speichern, indem Sie die Funktion Speichern und Prüfpunkt im Editor des Notebooks verwenden. Dadurch wird eine ipynb-Datei mit dem gleichen Namen in einem Unterordner namens Prüfpunkt erstellt. Die aktuellste Prüfpunktdatei überschreibt frühere Prüfpunktdateien. Die Funktion Speichern unter im Editor des Notebooks ist nicht verfügbar.

F: Wie verwende ich die Versionskontrolle mit meinem Notebook? Kann ich Repositorys wie GitHub verwenden?

Sie können Git-basierte Repositorys mit Ihren Amazon EMR Notebooks verknüpfen, um Ihre Notebooks in einer versionskontrollierten Umgebung zu speichern.

F: Wie verwende ich meine gespeicherten Notebooks?

Um mit einem gespeicherten Notebook zu arbeiten, klicken Sie über die EMR-Konsole auf das Notebook in der Liste Notebooks.

F: Kann ich mein unternehmensweites Active Directory mit EMR Notebooks integrieren?

Auf EMR-Notebooks kann nur über die AWS Management Console für EMR zugegriffen werden. Sie können Benutzer aus Ihrem Active Directory (AD) in das AWS-Management einbinden, um eine einmalige Anmeldung zu ermöglichen. Weitere Informationen finden Sie unter Verbund für AWS mit Active Directory, ADFS und SAML 2.0 aktivieren

F: Welche IAM-Richtlinien sind für die Nutzung der Notebooks erforderlich?

Benutzer müssen über eine identitätsbasierte Richtlinie verfügen, die ihnen die Berechtigung zum Erstellen und Verwenden von EMR-Notebooks erteilt. Zusätzlich zu den Benutzerrichtlinien verwendet EMR Notebooks eine Dienstrolle, um auf andere AWS-Ressourcen zuzugreifen und Aktionen durchzuführen. Weitere Informationen finden Sie unter Sicherheit für EMR Notebooks im Amazon EMR Versionshandbuch.

F: Wie kommuniziert das Notebook mit dem Masterknoten meines EMR-Clusters und welche Sicherheit gibt es dafür?

Der EMR-Masterknoten verwendet Livy, um mit dem Notebook-Editor zu interagieren. Jedes EMR-Notebook verwendet Amazon EC2-Sicherheitsgruppen, um den Netzwerkverkehr zwischen dem Livy-Server auf dem Masterknoten und einem EMR-Notebook zu steuern. Die standardmäßigen Sicherheitsgruppenregeln begrenzen den Netzwerkverkehr, so dass nur Livy-Datenverkehr zwischen Notebook-Editoren und Masterknoten auf Clustern, die von Notebooks verwendet werden, übertragen werden kann. Sie können benutzerdefinierte Sicherheitsgruppen mit benutzerdefinierten Ein- und Ausgangsregeln für jedes Notebook und jeden Cluster bereitstellen, um die zulässige Kommunikation zwischen bestimmten Notebooks und Clustern von der Notebook-Konsolenseite aus weiter einzuschränken, oder Berechtigungen in der Rolle des Notebook-Dienstes bereitstellen, damit der Notebook-Dienst die Sicherheitsgruppen in Ihrem Namen erstellen kann. Weitere Informationen finden Sie unter Angeben von EC2-Sicherheitsgruppen im Amazon EMR-Versionshandbuch.

F: Wie kann ich als Admin den Zugriff auf den EMR-Cluster für Notebook-Nutzer steuern?

Sie können die Amazon EMR-Cluster, die ein Benutzer mit einem Notebook abfragen kann, einschränken, indem Sie Tags auf dem Cluster verwenden. Wenn ein Benutzer die Berechtigung hat, ein Notebook zu erstellen, kann er sich an jeden Amazon EMR-Cluster anschließen, es sei denn, der Zugriff wird durch die Verwendung von Tags eingeschränkt. Weitere Informationen finden Sie unter EMR Notebook-Tags im Amazon EMR-Versionshandbuch.

F: Können mehrere Benutzer das gleiche Notebook gleichzeitig öffnen?

Nein, es kann immer nur ein Benutzer ein Notebook auf einmal öffnen. Um den aktuellen Benutzer anzuzeigen, wählen Sie das Notebook aus der Liste „Notebooks“, wählen Sie „Details anzeigen“, und Sie können den Benutzernamen und den IAM Amazon Resource Name (ARN) des Benutzers sehen, der das Notebook zuletzt als „Zuletzt geändert von“ geändert hat. Weitere Informationen zu ARNs finden Sie unter Amazon Ressourcennamen in der AWS-Allgemeinübersicht.

F: Wie schränke ich die Möglichkeit der Benutzer ein, mein Notebook zu bearbeiten oder zu löschen?

Sie können den Zugriff auf Ihre Notebooks über Notebook-Tags in Verbindung mit identitätsbasierten IAM-Richtlinien steuern. Standardmäßig wird dem Notebook automatisch ein Tag hinzugefügt, der dem Benutzer zugeordnet ist, der das Notebook erstellt hat. Weitere Informationen finden Sie unter Verwendung von Notebook-Tags zur Steuerung des IAM-Benutzerzugriffs im EMR Verwaltungshandbuch.

F: Kann ich mein Notebook an einen Kerberos-fähigen EMR-Cluster anschließen?

Nein, kerberisierte EMR-Cluster werden derzeit nicht unterstützt.

F: Kann ich einen Cluster beenden, wenn ein Notebook ihn benutzt?

Ja. Wenn der Notebook-Editor noch geöffnet ist, fehlschlägt der Code, den Sie im Editor ausführen, und das Notebook wird nach einiger Zeit gestoppt.

F: Was kostet die Verwendung von EMR Notebooks?

EMR Notebooks werden Ihnen ohne zusätzliche Kosten zur Verfügung gestellt. Die Kosten für die angeschlossenen EMR-Cluster in Ihrem Konto werden Ihnen wie gewohnt in Rechnung gestellt. Weitere Informationen über die Preise für Ihren Cluster finden Sie unter https://aws.amazon.com/emr/pricing/   

EMR Studio

F: Was ist EMR Studio?

EMR Studio ist eine integrierte Entwicklungsumgebung (IDE), die es Datenwissenschaftlern und Dateningenieuren erleichtert, in R, Python, Scala und PySpark geschriebene Dateningenieurs- und Datenwissenschafts-Anwendungen zu entwickeln, zu visualisieren und zu debuggen.

Es handelt sich um eine vollständig verwaltete Anwendung mit Single Sign-On, vollständig verwalteten Jupyter-Notebooks, automatisierter Infrastrukturbereitstellung und der Möglichkeit, Jobs zu debuggen, ohne sich bei der AWS-Konsole oder dem Cluster anzumelden. Datenwissenschaftler und Analysten können benutzerdefinierte Kernels und Bibliotheken installieren, mit Kollegen über Code-Repositories wie GitHub und BitBucket zusammenarbeiten oder parametrisierte Notebooks als Teil geplanter Workflows unter Verwendung von Orchestrierungsdiensten wie Apache Airflow, AWS Step Functions und Amazon Managed Workflows für Apache Airflow ausführen. Sie können orchestrierende Analyseaufträge auf Amazon EMR-Notebooks mit Amazon MWAA lesen, um mehr zu erfahren. EMR Studio-Kernels und -Anwendungen werden auf EMR-Clustern ausgeführt, sodass Sie die Vorteile der verteilten Datenverarbeitung mithilfe der leistungsoptimierten Amazon EMR-Laufzeit für Apache Spark nutzen können. Administratoren können EMR Studio für Analysten einrichten, um ihre Anwendungen auf vorhandenen EMR-Clustern auszuführen oder neue Cluster mithilfe vordefinierter AWS CloudFormation-Vorlagen für EMR zu erstellen.

F: Was kann ich mit EMR Studio tun?

Mit EMR Studio können Sie sich mit Ihren Unternehmensanmeldeinformationen direkt bei vollständig verwalteten Jupyter-Notebooks anmelden, ohne sich bei der AWS-Konsole anzumelden, Notebooks in Sekundenschnelle starten, Beispiel-Notebooks einbinden und Ihre Datenexploration durchführen. Sie können Ihre Umgebung auch anpassen, indem Sie benutzerdefinierte Kernels und Python-Bibliotheken aus Notebooks laden. EMR Studio-Kernels und -Anwendungen werden auf EMR-Clustern ausgeführt, sodass Sie die Vorteile der verteilten Datenverarbeitung mithilfe der leistungsoptimierten Amazon EMR-Laufzeit für Apache Spark nutzen können. Sie können mit Kollegen zusammenarbeiten, indem Sie Notebooks über GitHub und andere Repositorys freigeben. Sie können Notebooks auch direkt als Pipelines für fortlaufende Integration und Bereitstellung ausführen. Sie können verschiedene Parameterwerte an ein Notebook übergeben. Sie können Notebooks auch verketten und Notebooks mithilfe von Workflow-Orchestrierungsdiensten wie Apache Airflow in geplante Workflows integrieren. Darüber hinaus können Sie Cluster und Jobs mit nativen Anwendungsschnittstellen wie der Spark-Benutzeroberfläche und dem YARN Timeline-Dienst mit möglichst wenigen Klicks debuggen.

F: Wie unterscheidet sich EMR Studio von EMR Notebooks?

Es gibt fünf Hauptunterschiede.

  1. Es ist nicht erforderlich, auf die AWS-Managementkonsole für EMR Studio zuzugreifen. EMR Studio wird außerhalb der AWS-Managementkonsole gehostet. Dies ist nützlich, wenn Sie Datenwissenschaftlern oder Dateningenieuren keinen Zugriff auf die AWS-Managementkonsole gewähren.
  2. Sie können Unternehmensanmeldeinformationen von Ihrem Identitätsanbieter mithilfe von AWS Single Sign-On (SSO) verwenden, um sich bei EMR Studio anzumelden. 
  3. EMR Studio bietet Ihnen eine erste Erfahrung mit dem Notebook. EMR Studio-Kernels und -Anwendungen werden auf EMR-Clustern ausgeführt, sodass Sie die Vorteile der verteilten Datenverarbeitung mithilfe der leistungsoptimierten Amazon EMR-Laufzeit für Apache Spark nutzen können. Das Ausführen eines Codes in einem Cluster ist so einfach wie das Anhängen des Notebooks an einen vorhandenen Cluster oder das Bereitstellen eines neuen Clusters.
  4. EMR Studio verfügt über eine vereinfachte Benutzeroberfläche und abstrahiert Hardwarekonfigurationen. Beispielsweise können Sie Cluster-Vorlagen einmal einrichten und die Vorlagen verwenden, um neue Cluster zu starten. 
  5. EMR Studio ermöglicht ein vereinfachtes Debugging, sodass Sie mit möglichst wenigen Klicks an einem Ort auf die Benutzeroberflächen der nativen Anwendung zugreifen können.

F: Wie unterscheidet sich EMR Studio von SageMaker Studio?

Sie können sowohl EMR Studio als auch SageMaker Studio mit Amazon EMR verwenden. EMR Studio bietet eine integrierte Entwicklungsumgebung (IDE), die es Ihnen erleichtert, in R, Python, Scala und PySpark geschriebene Dateningenieurs- und Datenwissenschafts-Anwendungen zu entwickeln, zu visualisieren und zu debuggen. Amazon SageMaker Studio bietet eine einzige webbasierte visuelle Oberfläche, auf der Sie alle ML-Entwicklungsschritte ausführen können. Mit SageMaker Studio erhalten Sie vollständigen Zugriff, Kontrolle und Einblick in alle Schritte, die zum Erstellen, Trainieren und Bereitstellen von Modellen erforderlich sind. Sie können schnell Daten hochladen, neue Notizbücher erstellen, Modelle schulen und optimieren, zwischen den Schritten hin und her wechseln, um Experimente anzupassen, Ergebnisse zu vergleichen und Modelle an einem Ort für die Produktion bereitzustellen, wodurch Sie viel produktiver werden. 

F: Wie kann ich mit EMR Studio beginnen?

Ihr Administrator muss zuerst ein EMR Studio einrichten. Wenn Sie von Ihrem Administrator eine eindeutige Anmelde-URL für Ihr Amazon EMR Studio erhalten, können Sie sich direkt mit Ihren Unternehmensanmeldeinformationen bei Studio anmelden.

F: Muss ich mich bei der AWS-Managementkonsole anmelden, um EMR Studio verwenden zu können?

Nein. Nachdem Ihr Administrator ein EMR Studio eingerichtet und die Studio-Zugriffs-URL angegeben hat, kann sich Ihr Team mit Unternehmensanmeldeinformationen anmelden. Sie müssen sich nicht bei der AWS-Managementkonsole anmelden. In einem EMR Studio kann Ihr Team Aufgaben ausführen und auf von Ihrem Administrator konfigurierte Ressourcen zugreifen.

F: Welche Identitätsanbieter werden für die einmalige Anmeldung in EMR Studio unterstützt?

AWS Single Sign-On (SSO) ist der Single-Sign-On-Dienstanbieter für EMR Studio. Die Liste der von AWS SSO unterstützten Identitätsanbieter finden Sie in unserer Dokumentation.

F: Was ist ein WorkSpace in EMR Studio?

Workspaces helfen Ihnen beim Organisieren von Jupyter-Notebooks. Alle Notebooks in einem Workspace werden am selben Amazon S3-Speicherort gespeichert und auf demselben Cluster ausgeführt. Sie können ein Code-Repository wie ein GitHub-Repository auch mit allen Notebooks in einem Workspace verknüpfen. Sie können einen Workspace erstellen und konfigurieren, bevor Sie ihn an einen Cluster anhängen. Sie sollten jedoch eine Verbindung zu einem Cluster herstellen, bevor Sie ein Notebook ausführen.

F: Kann ich in EMR Studio einen Workspace erstellen oder einen Workspace ohne Cluster öffnen?

Ja, Sie können einen Workspace erstellen oder öffnen, ohne ihn an einen Cluster anzuhängen. Nur wenn Sie ausführen müssen, sollten Sie ihn mit einem Cluster verbinden. EMR Studio-Kernels und -Anwendungen werden auf EMR-Clustern ausgeführt, sodass Sie die Vorteile der verteilten Datenverarbeitung mithilfe der leistungsoptimierten Amazon EMR-Laufzeit für Apache Spark nutzen können.

F: Auf welchen Rechenressourcen kann ich in EMR Studio Notebooks ausführen?

Mit EMR Studio können Sie Notebook-Code auf Amazon EMR in der Amazon Elastic Compute Cloud (Amazon EC2) oder auf Amazon EMR in Amazon Elastic Kubernetes Service (Amazon EKS) ausführen. Sie können Notebooks an vorhandene oder neue Cluster anhängen. Sie können EMR-Cluster in EMR Studio auf zwei Arten erstellen: Erstellen eines Clusters mithilfe einer vorkonfigurierten Clustervorlage über AWS Service Catalog, Erstellen eines Clusters durch Angabe des Clusternamens, der Anzahl der Instances und des Instance-Typs.

F: Kann ich einen Workspace mit einer anderen Rechenressource in EMR Studio erneut anhängen?

Ja, Sie können Ihren Workspace öffnen, links das Symbol für EMR Clusters auswählen, auf die Schaltfläche Trennen klicken und dann einen Cluster aus der Dropdown-Liste Cluster auswählen auswählen und auf die Schaltfläche Anhängen klicken.

F: Wo finde ich alle meine Workspaces in EMR Studio?

In EMR Studio können Sie links die Registerkarte Workspaces auswählen und alle von Ihnen und anderen Benutzern erstellten Workspaces in demselben AWS-Konto anzeigen.

F: Welche IAM-Richtlinien sind für die Nutzung von EMR Studio erforderlich?

Jedes EMR Studio benötigt Berechtigungen für die Zusammenarbeit mit anderen AWS-Diensten. Um Ihren EMR Studios die erforderlichen Berechtigungen zu erteilen, müssen Ihre Administratoren eine EMR Studio-Servicerolle mit den bereitgestellten Richtlinien erstellen. Sie müssen auch eine Benutzerrolle für EMR Studio angeben, die Berechtigungen auf Studioebene definiert. Wenn sie EMR Studio Benutzer und Gruppen aus AWS Single Sign-On (AWS SSO) hinzufügen, können sie einem Benutzer oder einer Gruppe eine Sitzungsrichtlinie zuweisen, um fein abgestimmte Berechtigungssteuerelemente anzuwenden. Mithilfe von Sitzungsrichtlinien können Administratoren Benutzerberechtigungen verfeinern, ohne mehrere IAM-Rollen erstellen zu müssen. Weitere Informationen zu Sitzungsrichtlinien finden Sie unter Richtlinien und Berechtigungen im AWS Identity and Access Management-Benutzerhandbuch.

F: Gibt es Einschränkungen für EMR-Cluster, an die ich meinen Arbeitsbereich in EMR Studio anhängen kann?

Ja. Hochverfügbarkeits-Cluster (Multi-Master), kerberisierte Cluster und AWS Lake Formation-Cluster werden derzeit nicht unterstützt.

Datenverwaltung

F: Wie importiere ich Daten in Amazon S3?

Amazon EMR bietet verschiedene Möglichkeiten, um Daten in einen Cluster zu übertragen. Am häufigsten laden Sie die Daten auf Amazon S3 hoch und verwenden die integrierten Funktionen von Amazon EMR, um die Daten in Ihren Cluster zu laden. Mit der Funktion „Verteilter Cache“ von Hadoop können Sie Dateien von einem verteilten Dateisystem in das lokale Dateisystem übertragen. Weitere Details finden Sie in der Dokumentation. Wenn Sie Daten von lokal in die Cloud migrieren, können Sie alternativ einen der Cloud Data MigrationDienste von AWS verwenden.

F: Wie erhalte ich Protokolle für beendete Cluster?

Hadoop-System- und Benutzerprotokolle werden in dem Amazon S3-Bucket abgelegt, den Sie bei der Erstellung eines Clusters festlegen. Persistente Anwendungsbenutzeroberflächen werden außerhalb des Clusters ausgeführt. Die Protokolle der Spark History Server-, Tez UI- und YARN-Timeline-Server sind 30 Tage nach Beendigung einer Anwendung verfügbar.

F: Werden die Protokolle komprimiert?

Nein. Derzeit komprimiert Amazon EMR keine Protokolle, wenn diese in Amazon S3 verschoben werden.

F: Kann ich meine Daten nicht nur aus Amazon S3 sondern auch aus dem Internet oder einer anderen Quelle laden?

Ja. Mit AWS Direct Connect können Sie eine private dedizierte Netzwerkverbindung zu AWS herstellen. Wenn Sie über große Datenmengen verfügen, können Sie AWS Import/Export verwenden. Weitere Details finden Sie in unserer Dokumentation.

Fakturierung

F: Kann Amazon EMR ermitteln, wie lange es dauert, meine Eingabedaten zu verarbeiten?

Nein. Da Cluster und Eingabedaten jeweils unterschiedlich sind, können wir die Auftragsdauer nicht schätzen.

F: Wie viel kostet Amazon EMR?

Amazon EMR-Preise sind einfach und planbar: Sie zahlen für jede genutzte Sekunde, wobei mindestens eine Gebühr für eine Minute in Rechnung gestellt wird. Sie können Ihre voraussichtliche Rechnung mit dem AWS-Preisrechner kalkulieren. Die Nutzung für andere Amazon Web Services, einschließlich Amazon EC2, wird separat von Amazon EMR in Rechnung gestellt.

F: Wann beginnt und endet die Fakturierung der Nutzung meines Amazon EMR-Clusters?

Die Amazon EMR-Fakturierung beginnt, wenn der Cluster bereit ist, Schritte auszuführen. Die Amazon EMR-Fakturierung endet, wenn Sie das Herunterfahren des Clusters anfordern. Weitere Informationen dazu, wann Amazon EC2 mit der Fakturierung beginnt und endet, finden Sie in den häufig gestellten Fragen zur Fakturierung mit Amazon EC2..

F: Wo kann ich meine Verwendung von Amazon EMR, Amazon EC2 und Amazon S3 nachverfolgen?

Sie können Ihre Verwendung in der Rechnungs- und Kostenverwaltungskonsole nachverfolgen.

F: Wie werden die normierten Instance-Stunden berechnet, die auf der Konsole angezeigt werden?

In der AWS Management Console verfügt jeder Cluster über eine Spalte für normierte Instance-Stunden mit der ungefähren Angabe der bisher im Cluster angefallenen Rechenzeitstunden, aufgerundet auf die nächste Stunde.

Bei normierten Instance-Stunden handelt es sich um Rechenzeitstunden basierend auf dem Standard von einer Stunde m1.small = 1 Stunde normierte Rechenzeit. In unserer Dokumentation finden Sie eine Liste mit verschiedenen Größen innerhalb einer Instance-Familie und den entsprechenden Normalisierungsfaktor pro Stunde.

Wenn Sie beispielsweise einen r3,8xlarge Cluster mit 10 Knoten eine Stunde lang ausführen, beträgt die auf der Konsole angezeigte Gesamtzahl der normierten Instance-Stunden 640 (10 (Anzahl der Knoten) x 64 (Normierungsfaktor) x 1 (Anzahl der Stunden, die der Cluster ausgeführt wurde) = 640).

Hierbei handelt es sich um Annäherungswerte, die nicht für Fakturierungszwecke verwendet werden sollten. Angaben über die fakturierbare Amazon EMR-Nutzung finden Sie in der Rechnungs- und Kostenverwaltungskonsole.

F: Unterstützt Amazon EMR On-Demand-, Spot- und Reserved Instances von Amazon EC2?

Ja. Amazon EMR unterstützt problemlos On-Demand-, Spot- und Reserved Instances. Klicken Sie hier, um mehr über Amazon EC2 Reserved Instances zu erfahren. Klicken Sie hier, um mehr über Amazon EC2-Spot-Instances zu erfahren.

F: Sind Steuern bereits in den Preisen enthalten?

Falls nicht anders angegeben, gelten unsere Preise zuzüglich anfallender Steuern und Abgaben, u. a. MwSt. und Umsatzsteuer. Bei Kunden mit japanischer Rechnungsadresse unterliegt die Nutzung von AWS-Services der japanischen Verbrauchssteuer. Weitere Informationen

Sicherheit

F: Wie verhindere ich, dass andere Benutzer meine Daten während der Cluster-Ausführung einsehen können?

Amazon EMR startet Ihre Instances in zwei Amazon EC2-Sicherheitsgruppen, von denen eine für den Master und die andere für anderen Cluster-Knoten zuständig ist. Die Master-Sicherheitsgruppe verfügt über einen offenen Port für die Kommunikation mit dem Dienst. Der SSH-Port ist ebenfalls offen, um Ihnen SSH in die Instances unter Verwendung des beim Start spezifizierten Schlüssels zu ermöglichen. Die anderen Knoten starten in einer getrennten Sicherheitsgruppe. Diese gestattet nur eine Interaktion mit der Master-Instance. Standardmäßig sind beide Sicherheitsgruppen so eingestellt, dass der Zugriff von externen Quellen wie auch Amazon EC2-Instances anderer Kunden nicht erlaubt ist. Da es sich um Sicherheitsgruppen innerhalb Ihres Kontos handelt, können Sie diese mit den EC2-Standard-Tools oder dem Dashboard neu konfigurieren. Klicken Sie hier, um weitere Informationen über EC2-Sicherheitsgruppen zu erhalten.

F: Wie sicher sind meine Daten?

Amazon S3 verfügt über Authentifizierungsmechanismen, um gespeicherte Daten vor unberechtigten Zugriffen zu schützen. Wenn nicht anders festgelegt, erhält nur der Kunde, der die Daten hochlädt, Zugriff auf diese Daten. Amazon EMR-Kunden können das HTTPS-Protokoll für eine sichere Datenübertragung an Amazon S3 nutzen. Amazon EMR nutzt zudem stets HTTPS, um Daten zwischen Amazon S3 und Amazon EC2 zu übertragen. Zusätzliche Sicherheit erhalten Kunden mit der Verschlüsselung der Eingabedaten vor dem Hochladen in Amazon S3 (mithilfe eines beliebigen Verschlüsselungstools). Hierfür muss zu Beginn des Clusters ein Verschlüsselungsschritt eingefügt werden, wenn Amazon EMR die Daten aus Amazon S3 abruft.

F: Kann ich für Sicherheitszwecke und zur Überwachung der Einhaltung von Vorschriften einen Verlauf aller EMR-API-Aufrufe abrufen, die für mein Konto erfolgt sind?

Ja. AWS CloudTrail ist ein Web-Service, der Aufrufe von AWS-APIs für Ihr Konto aufzeichnet und Protokolldateien an Sie übermittelt. Der AWS-API-Aufrufverlauf, der von CloudTrail generiert wird, ermöglicht eine Sicherheitsanalyse, Nachverfolgung von Ressourcenänderungen und Überwachung der Einhaltung von Vorschriften. Weitere Informationen zu CloudTrail finden Sie auf der Detailseite zu AWS CloudTrail. In der AWS Management Console für CloudTrail können Sie CloudTrail aktivieren.

Regionen und Availability Zones

F: Wie verwendet Amazon EMR Availability Zones?

Amazon EMR startet alle Knoten für einen bestimmten Cluster in derselben Amazon EC2 Availability Zone. Die Ausführung eines Clusters in derselben Zone verbessert die Leistung von Clustern, da somit eine höhere Zugriffsrate ermöglicht wird. Standardmäßig wählt Amazon EMR die Availability Zone mit den meisten verfügbaren Ressourcen zur Ausführung Ihres Clusters aus. Sie können jedoch bei Bedarf eine andere Availability Zone festlegen.

F: In welchen Regionen ist Amazon EMR verfügbar?

Eine Liste der unterstützten Amazon EMR AWS-Regionen finden Sie in der Tabelle der AWS-Regionen. Sie enthält Informationen zur gesamten globalen AWS-Infrastruktur.

F: Wird Amazon EMR in lokalen AWS-Zonen unterstützt?

EMR unterstützt das Starten von Clustern in der lokalen AWS-Zone von Los Angeles. Sie können EMR in der Region US West (Oregon) verwenden, um Cluster in Subnetzen zu starten, die der lokalen AWS-Zone in Los Angeles zugeordnet sind.

F: Welche Region muss ich wählen, um meine Cluster auszuführen?

Bei der Erstellung eines Clusters ist es in der Regel erforderlich, die Region auszuwählen, in der sich Ihre Daten befinden.

F: Kann ich EU-Daten in einem Cluster verwenden, der in der Region USA ausgeführt wird, und umgekehrt?

Ja, das ist möglich. Für die Datenübertragung von einer Region in eine andere fallen Bandbreiten-Gebühren an. Informationen über Bandbreitenpreise erhalten Sie auf der EC2-Detailseite.

F: Was ist das Besondere an der Region AWS GovCloud (USA)?

Die Region AWS GovCloud (USA) ist für US-amerikanische Behörden und deren Kunden vorgesehen. Sie unterliegt den US ITAR-Vorgaben. In GovCloud unterstützt EMR weder Spot-Instances noch die Funktion zur Aktivierung des Debuggings. Die EMR-Verwaltungskonsole ist in GovCloud noch nicht verfügbar.

Bereitstellungsoptionen

Amazon EMR auf Amazon EKS

F: Was ist Amazon EMR auf Amazon EKS?
Amazon EMR auf Amazon EKS ist ein Bereitstellungsmodell von Amazon EMR, mit dem Kunden große Datenmengen einfach und kostengünstig verarbeiten können. Es verwendet gehostete Analyse-Rahmenbedingungen, die auf dem flexiblen, von Amazon EKS verwalteten Dienst in Containern ausgeführt werden, mit der webbasierten Infrastruktur von Amazon Elastic Compute Cloud (Amazon EC2), AWS Fargate und Amazon Simple Storage Service (Amazon S3).

F: Warum sollte ich Amazon EMR auf Amazon EKS verwenden?
Amazon EMR auf Amazon EKS entkoppelt die Analyseaufgabe von den Diensten und der Infrastruktur, die die Aufgabe mithilfe eines containergestützten Ansatzes verarbeiten. Sie können sich mehr auf die Entwicklung Ihrer Anwendung und weniger auf den Betrieb der Infrastruktur konzentrieren, da EMR auf EKS die Infrastruktur dynamisch basierend auf den Rechen-, Speicher- und Anwendungsabhängigkeiten der Aufgabe konfiguriert. Infrastrukturteams können eine gemeinsame Computerplattform zentral verwalten, um EMR-Workloads mit anderen containergestützten Anwendungen zu konsolidieren. Mehrere Teams, Organisationen oder Geschäftsbereiche können ihre Analyseprozesse gleichzeitig und unabhängig auf der gemeinsam genutzten Infrastruktur ausführen und dabei die durch Amazon EKS und AWS Identity and Access Management (IAM) aktivierte Isolation beibehalten.

F: Was sind die Vorteile für Benutzer, die Apache Spark bereits auf Amazon EKS ausführen?
Wenn Sie Apache Spark bereits auf Amazon EKS ausführen, können Sie alle Vorteile von Amazon EMR wie die automatische Bereitstellung und Skalierung sowie die Verwendung der neuesten vollständig verwalteten Versionen von Open Source-Rahmenbedingungen für die Big Data-Analyse nutzen. Sie erhalten eine optimierte EMR-Laufzeit für Apache Spark mit 3-mal schnellerer Leistung als Open Source Apache Spark auf EKS, eine serverlose Datenwissenschaftserfahrung mit EMR Studio und der Apache Spark-Benutzeroberfläche, eine fein abgestimmte Datenzugriffskontrolle und Unterstützung für die Datenverschlüsselung.

F: In welcher Beziehung steht diese Funktion zu anderen AWS-Diensten und funktioniert mit diesen?
Amazon EKS bietet Kunden eine verwaltete Erfahrung für die Ausführung von Kubernetes auf AWS, sodass Sie mithilfe von verwalteten EKS-Node-Gruppen oder AWS Fargate Rechenkapazität hinzufügen können. Das Ausführen von EMR-Aufgaben auf EKS kann auf ihre Daten in Amazon S3 zugreifen, während Überwachung und Protokollierung in Amazon CloudWatch integriert werden können. AWS Identity and Access Management (IAM) ermöglicht die rollenbasierte Zugriffssteuerung sowohl für Aufgaben als auch für abhängige AWS-Dienste.

F: Wie funktioniert Amazon EMR auf Amazon EKS?
Registrieren Sie Ihren EKS-Cluster bei Amazon EMR. Senden Sie dann Ihre Spark-Aufgaben mithilfe von CLI, SDK oder EMR Studio an EMR. EMR fordert den Kubernetes-Planer auf EKS auf, Pods zu planen. Für jede Aufgabe, die Sie ausführen, erstellt EMR auf EKS einen Container. Der Container enthält ein Amazon Linux 2-Basisimage mit Sicherheitsupdates sowie Apache Spark und zugehörige Abhängigkeiten zum Ausführen von Spark sowie Ihre anwendungsspezifischen Abhängigkeiten. Jede Aufgabe wird in einem Pod ausgeführt. Der Pod lädt diesen Container herunter und beginnt mit der Ausführung. Wenn das Image des Containers zuvor auf dem Knoten bereitgestellt wurde, wird ein zwischengespeichertes Image verwendet und der Download umgangen. Beiwagencontainer wie Protokoll- oder Metrikweiterleitungen können auf dem Pod bereitgestellt werden. Der Pod wird beendet, nachdem die Aufgabe beendet wurde. Nach Beendigung der Aufgabe können Sie ihn weiterhin über die Spark-Benutzeroberfläche debuggen.

F: Welche AWS-Rechendienste kann ich mit Amazon EMR auf EKS verwenden?
Sie können Amazon EMR für EKS sowohl mit Amazon Elastic Compute Cloud (EC2) -Instances verwenden, um umfassendere Anpassungsoptionen zu unterstützen, als auch mit dem serverlosen AWS Fargate-Dienst, um Ihre Analysen zu verarbeiten, ohne EC2-Instances bereitstellen oder verwalten zu müssen. Die Verfügbarkeit von Anwendungen kann automatisch verbessert werden, indem Ihre Analyseaufgaben auf mehrere AWS Availability Zones (AZs) verteilt werden.

F: Wie kann ich mit EMR auf EKS beginnen?
Um loszulegen, registrieren Sie Ihren Amazon EKS-Cluster bei Amazon EMR. Verweisen Sie nach der Registrierung auf diese Registrierung in Ihrer Aufgabendefinition (einschließlich Anwendungsabhängigkeiten und Rahmenparametern), indem Sie Ihre Workloads zur Ausführung an EMR senden. Mit EMR on EKS können Sie verschiedene Open Source-Rahmenbedingungen, -Versionen und -Konfigurationen für Big Data-Analysen für Analyseanwendungen verwenden, die auf demselben EKS-Cluster ausgeführt werden. Weitere Informationen finden Sie in unserer Dokumentation.

F: Wie reiche ich Analyseanwendungen bei EMR auf EKS ein?
Sie senden Analyseanwendungen mit AWS SDK/CLI, Amazon EMR Studio Notebooks und Workflow-Orchestrierungsdiensten wie Apache Airflow und Amazon Managed Workflows für Apache Airflow. AWS EMR auf dem Luftstrom-Plugin von EKS kann von S3 hteruntergeladen werden. Informationen zum Installieren des EMR-Container-Plugins für Amazon Managed Workflows für Apache Airflow finden Sie in unserer Dokumentation.

F: Kann ich dieselbe EMR-Version für EMR-Cluster und -Anwendungen verwenden, die auf EKS ausgeführt werden?

Ja, Sie können dieselbe EMR-Version für Anwendungen verwenden, die auf EMR-Clustern ausgeführt werden, und für Anwendungen, die auf EKS ausgeführt werden.

F: Wie kann ich Probleme mit Analyseanwendungen beheben?
Sie können die Amazon EMR Spark-Benutzeroberfläche verwenden, um Spark-Anwendungen zu diagnostizieren und Fehler zu beheben. Für alle Analyseanwendungen bietet EMR bis zu 30 Tage nach Abschluss Zugriff auf Anwendungsdetails, zugehörige Protokolle und Metriken. Aufgaben können individuell konfiguriert werden, um Protokolle an einen Amazon S3-Speicherort oder Amazon CloudWatch zu senden.

F: Kann ich EMR-Anwendungen in EKS sehen?
Ja, EMR-Anwendungen werden in der EKS-Konsole als Kubernetes-Aufgaben und -Bereitstellungen angezeigt.

F: Kann ich mehrere Aufgaben oder Anwendungen im selben EKS-Cluster voneinander isolieren?
Ja, Kubernetes bietet nativ eine Aufgabenisolation. Darüber hinaus kann jede Aufgabe so konfiguriert werden, dass sie mit ihrer eigenen Ausführungsrolle ausgeführt wird, um zu begrenzen, auf welche AWS-Ressourcen die Aufgabe zugreifen kann.

F: Wie hilft EMR bei EKS, Kosten zu senken?
EMR auf EKS reduziert die Kosten, da keine dedizierten Cluster mehr ausgeführt werden müssen. Sie können einen gemeinsamen EKS-Cluster verwenden, um Analyseanwendungen auszuführen, für die unterschiedliche Versionen von Open Source-Rahmenbedingungen für Big Data-Analysen erforderlich sind. Sie können denselben EKS-Cluster auch verwenden, um Ihre anderen containerisierten Nicht-EMR-Anwendungen auszuführen.

F: Wie berechnen Sie EMR auf EKS?
Die Preise für Amazon EMR auf EKS werden basierend auf der vCPU und den Speicherressourcen berechnet, die für die Pods angefordert wurden, in denen Ihre Aufgabe pro Minute ausgeführt wird. Informationen zu den Preisen finden Sie auf der Amazon EMR- Preisseite.

F: Was sind einige der Unterschiede zwischen EMR auf EKS und EMR auf EC2?

Funktion

EMR auf EKS

EMR auf EC2

Neueste unterstützte Version von EMR

Y

Y

Multi-AZ-Support für Aufgaben

Y

N

Multi-Tenant mit Nicht-Big-Data-Workloads

Y

N

Umfang der EMR-Version

Aufgabe

Cluster

Auto Scaling Cluster

Y

Y

Verwaltete Skalierung

N

Y

Rechenanbieter

EC2, Fargate

EC2

Datenverschlüsselung

Y

Y

Kerberos-Authentifizierung

N

Y

Gehostete Anwendungen

Nur Spark

Mehrere

AWS Lake Formation

N

Y

Integration von Apache Ranger

N

Y

Benutzerdefinierte AMI/Bilder

N

Y

Integration mit Sagemaker & Zeppelin

Y mit Livy

Y

Selbst-gehostete Notebooks

N

Y

Integration mit EMR Studio

Y

Y

Zeppelin, JEG

N

Y

Orchestrierung mit Apache Airflow

Y

Y

Orchestrierung mit AWS-Stepfunktionen

N

Y

 

N

F: Was sind Pod-Vorlagen?

Mit EMR on EKS können Sie Kubernetes Pod-Vorlagen verwenden, um anzupassen, wo und wie Ihr Auftrag im Kubernetes-Cluster ausgeführt wird. Kubernetes Pod-Vorlagen bieten ein wiederverwendbares Designmuster oder Textbausteine, um deklarativ auszudrücken, wie ein Kubernetes-Pod in Ihrem EKS-Cluster bereitgestellt werden soll.

F: Warum sollte ich für meinen EMR on EKS-Auftrag Pod-Vorlagen verwenden?

Mit Pod-Vorlagen erhalten Sie mehr Kontrolle darüber, wie Ihre Aufträge in Kubernetes geplant werden. Sie können beispielsweise Kosten senken, indem Sie Spark-Treiberaufgaben auf Amazon EC2 Spot-Instances ausführen oder nur Aufträge auf SSD-fähigen Instances ausführen lassen, die SSDs benötigen. Pod-Vorlagen mit EMR on EKS ermöglichen eine genaue Kontrolle darüber, wie Ressourcen zugewiesen werden, und führen benutzerdefinierte Container gemeinsam mit Ihren Aufträgen aus. Dies führt zu niedrigeren Kosten und einer besseren Leistung Ihrer Aufträge.

F: Was ist ein Pod?

Pods sind ein oder mehrere Container mit gemeinsamen Netzwerk- und Speicherressourcen, die auf einem Kubernetes-Arbeiterknoten ausgeführt werden. EMR on EKS verwendet Pods zum Ausführen Ihres Auftrags, indem es die Spark-Treiber- und -Executor-Aufgaben als individuelle Pods plant.

F: Was sind einige der Anwendungsfälle für Pod-Vorlagen?

Sie können mit Pod-Vorlagen sowohl die Leistung als auch die Kosten optimieren. So können Sie zum Beispiel Kosten sparen, indem Sie Aufträge definieren, die auf EC2 Spot-Instances ausgeführt werden, oder die Leistung steigern, indem Sie ihre Ausführung auf GPU- oder SSD-unterstützten EC2-Instances planen. Häufig benötigen Kunden eine genaue Kontrolle des Workloads, damit sie mehrere Teams oder Organisationen in EKS unterstützen können, und Pod-Vorlagen vereinfachen das Ausführen von Aufträgen in Teams zugeordneten Knotengruppen. Darüber hinaus können Sie Sidecar-Container bereitstellen, um den Initalisierungscode für Ihren Auftrag auszuführen oder um gängige Monitoring-Tools wie Fluentd zur Protokollweiterleitung auszuführen.

F: Kann ich für meine Spark-Treiber und Spark-Executors unterschiedliche Pod-Vorlagen angeben?

Das können Sie tun, es ist aber nicht erforderlich, für Treiber und Executors individuelle Vorlagen bereitzustellen. Sie können beispielsweise nodeSelectors und Duldungen konfigurieren, um Spark-Treiber anzuweisen, nur auf AWS EC2 On-Demand-Instances zu laufen, und um Spark-Executors anzuweisen, nur auf AWS Fargate-Instances zu laufen. In Ihrer Auftragseinreichung konfigurieren Sie die Spark-Eigenschaften spark.kubernetes.driver.podTemplateFile und spark.kubernetes.executor.podTemplateFile, um auf den S3-Standort der Vorlage zu verweisen.

F: Welche Vorlagenwerte kann ich angeben?

Sie können sowohl Felder auf Pod-Ebene (einschließlich Volumes, Pod-Affinität, Init-Container, Knotenauswahl) als auch auf Spark-Hauptcontainerebene (einschließlich EnvFrom, Arbeitsverzeichnis, Lebenszyklus, Container-Volume-Mounts) angeben. Die vollständige Liste der zulässigen Werte finden Sie in unserer Dokumentation.

F: Wo erhalte ich weitere Informationen zu Pod-Vorlagen?

Amazon EKS unterstützt bereits Pod-Vorlagen. Weitere Informationen zur Unterstützung von Amazon EMR on EKS für Pod-Vorlagen finden Sie in unserer Dokumentation sowie in der Dokumentation zu Apache Spark Pod-Vorlagen.

Amazon EMR auf AWS Outposts

F: Was ist AWS Outposts?

AWS Outposts bieten native AWS-Services, Infrastruktur und Betriebsmodelle für praktisch jedes Rechenzentrum, jeden Gemeinschaftsraum oder jede lokale Einrichtung. Mit EMR auf Outposts können Sie EMR-Cluster lokal bereitstellen, verwalten und skalieren wie in der Cloud.

F: Wann sollte ich EMR auf Outposts verwenden?

Falls Sie vorhandene lokale Apache Hadoop-Bereitstellungen besitzen und während Spitzennutzung mit der Erfüllung der Kapazitätsanforderungen zu kämpfen haben, können Sie EMR auf Outposts verwenden, um Ihre Verarbeitungskapazität zu erhöhen, ohne Daten in die Cloud auslagern zu müssen. Mit EMR auf Outposts können Sie einen neuen EMR-Cluster in wenigen Minuten lokal erstellen und eine Verbindung zu vorhandenen Datasets im lokalen HDFS-Speicher herstellen, um diese Anforderung zu erfüllen und die SLAs einzuhalten.

Wenn Sie Daten verarbeiten müssen, die aus Governance-, Compliance- oder anderen Gründen vor Ort bleiben müssen, können Sie EMR auf Outposts nutzen, um Anwendungen wie Apache Hadoop und Apache Spark vor Ort in der Nähe Ihrer Daten bereitzustellen und auszuführen. Dadurch wird die Notwendigkeit reduziert, große Mengen an On-Premise-Daten in die Cloud zu übertragen, sodass die Gesamtzeit für die Verarbeitung dieser Daten reduziert wird.

Wenn Sie dabei sind, Daten und Apache Hadoop-Workloads in die Cloud zu migrieren und EMR verwenden möchten, bevor Ihre Migration abgeschlossen ist, können Sie mit AWS Outposts EMR-Cluster starten, die eine Verbindung mit Ihrem vorhandenen lokalen HDFS-Speicher herstellen. Anschließend können Sie Ihre Daten im Rahmen einer Weiterentwicklung zu einer Cloud-Architektur schrittweise zu Amazon S3 migrieren.

F: Welche EMR-Versionen werden von EMR auf Outposts unterstützt?

Die mindestens unterstützte Amazon EMR-Version ist 5.28.0.

F: Welche EMR-Anwendungen sind bei der Verwendung von Outposts verfügbar?

Alle Anwendungen in EMR-Version 5.28.0 und höher werden unterstützt. In unseren Versionshinweisen finden Sie eine vollständige Liste der EMR-Anwendungen.

F: Welche EMR-Funktionen werden von EMR auf Outposts nicht unterstützt?

  • EC2 Spot-Instances sind auf AWS Outposts nicht verfügbar. Beim Erstellen eines Clusters müssen Sie EC2 On-Demand-Instances wählen.
  • Ein Subset von EC2-Instance-Typen ist in AWS Outposts verfügbar. Eine Liste unterstützter Instance-Typen mit EMR und Outposts finden Sie in unserer Dokumentation.
  • Beim Hinzufügen von Amazon EBS-Volumes zu Instances wird nur der Speichertyp,General Purpose SSD (GP2) in AWS Outposts unterstützt.

F: Kann ich EMR-Cluster in Outpost verwenden, um Daten von meinen vorhandenen lokalen Apache Hadoop-Clustern zu lesen?

Workloads, die in EMR in Outpost ausgeführt werden, können Daten im vorhandenen HDFS-Speicher lesen und schreiben und ermöglichen Ihnen die einfache Integration in vorhandene lokale Apache Hadoop-Bereitstellungen. Damit können Sie Ihre Datenverarbeitungsanforderungen mit EMR verbessern, ohne Daten migrieren zu müssen.

F: Kann ich wählen, wo ich meine Daten speichere?

Wenn ein EMR-Cluster in Outpost gestartet wird, werden alle Datenverarbeitungs- und Datenspeicherressourcen in Ihrem Outpost bereitgestellt. Lokal in das EMR-Cluster geschriebene Daten werden auf lokalen EBS-Volumes in Ihrem Outpost gespeichert. Tools, wie Apache Hive, Apache Spark, Presto und sonstige EMR-Anwendungen können konfiguriert werden, um Daten lokal in Outpost oder ein externes Dateisystem, wie etwa eine vorhandene HDFS-Installation oder in Amazon S3, zu schreiben. Mit EMR auf Outposts haben Sie die vollständige Kontrolle über die Speicherung Ihrer Daten in Amazon S3 oder lokal in Ihrem Outpost.

F: Müssen für EMR-Funktionen Daten in S3 hochgeladen werden?

Beim Starten eines EMR-Clusters in einem Outpost können Sie die Protokollierung aktivieren. Bei aktivierter Protokollierung werden Cluster-Protokolle in das S3-Bucket hochgeladen, das Sie angeben. Diese Protokolle werden zur Vereinfachung von Debugging-Clustern nach deren Beendigung verwendet. Wenn deaktiviert, werden keine Protokolle in S3 hochgeladen.

F: Was geschieht, wenn mein Outpost keine Kapazität mehr aufweist?

Beim Starten eines Clusters in einem Outpost versucht EMR, die Anzahl und die Typen der EC2 On-Demand-Instances zu starten, die Sie angefordert haben. Falls auf dem Outpost keine Kapazität verfügbar ist, erhält EMR eine Benachrichtigung wegen nicht ausreichender Kapazität. EMR wiederholt die Versuche eine Zeit lang. Falls keine Kapazität verfügbar wird, kann der Cluster nicht gestartet werden. Derselbe Prozess wird beim Ändern der Größe eines Cluster verwendet. Falls auf dem Outpost keine ausreichende Kapazität für die angeforderten Instance-Typen vorhanden ist, kann EMR den Cluster nicht skalieren. Sie können Amazon CloudWatch-Warnmeldungen einfach einrichten, um Ihre Kapazitätsauslastung in Outposts zu überwachen und Warnmeldungen zu erhalten, wenn die Instance-Kapazität unter einem bestimmten Schwellenwert liegt.

F: Was geschieht, wenn die Netzwerkkonnektivität zwischen meinem Outpost und AWS unterbrochen wird?

Falls die Netzwerkkonnektivität zwischen Ihrem Outpost und der AWS-Region verloren geht, werden Ihre Cluster in Outposts weiter ausgeführt, aber bestimmte Aktionen können erst ausgeführt werden, wenn die Konnektivität wiederhergestellt ist. Bis die Konnektivität wiederhergestellt ist, können Sie keine neuen Cluster erstellen oder neue Aktionen an vorhandenen Clustern durchführen. Bei Ausfällen der Instance wird diese nicht automatisch ersetzt. Zudem werden Aktionen, wie das Hinzufügen von Schritten zu einem ausgeführten Cluster, das Überprüfen des Schrittausführungsstatus und das Senden von CloudWatch-Metriken und -Ereignissen, verzögert, bis die Konnektivität wiederhergestellt ist.

Wir empfehlen, dass Sie zuverlässige und hochverfügbare Netzwerkkonnektivität zwischen Ihrem Outpost und der AWS-Region bereitstellen. Falls die Netzwerkkonnektivität zwischen Ihrem Outpost und der AWS-Region mehr als ein paar Stunden unterbrochen ist, werden Cluster mit aktiviertem Beendigungsschutz weiter ausgeführt und Cluster mit deaktiviertem Beendigungsschutz beendet. Falls die Netzwerkkonnektivität aufgrund einer routinemäßigen Wartung beeinträchtigt wird, empfehlen wir die proaktive Aktivierung des Beendigungsschutzes.

Verwenden von EBS-Volumes

F: Welche neuen Funktionen stehen mir jetzt zur Verfügung?

Die meisten EC2-Instances sind mit einer festen Speicherkapazität verbunden, die als "Instance-Speicher" bezeichnet wird. Sie können den Instances in Ihrem Amazon EMR-Cluster jetzt EBS-Volumes hinzufügen und dadurch den Speicher einer Instance anpassen. Außerdem bietet Ihnen die Funktion die Möglichkeit, Amazon EMR-Cluster in reinen EBS-Instance-Familien wie M4 und C4 auszuführen.

F: Welche Vorteile bietet es, EBS-Volumes einer in Amazon EMR ausgeführten Instance hinzuzufügen?

Einer Instance EBS-Volumes hinzuzufügen, bietet Ihnen in den folgenden Situationen Vorteile:

  1. Sie benötigen aufgrund Ihrer Verarbeitungsanforderungen einen großen HDFS- (oder lokalen) Speicher für die derzeit in einer Instance vorhandenen Daten. Durch die Unterstützung von EBS-Volumes können Sie die Speicherkapazität einer Instance relative zu der damit bereitgestellten Datenverarbeitungskapazität anpassen. Indem Sie den Speicher einer Instance optimieren, sparen Sie Kosten.
  2. Sie führen ältere Generationen von Instance-Familien aus (z. B. M1 und M2) und möchten zur aktuellen Generation wechseln. Der eingeschränkte Speicherplatz, der auf den Instance-Typen der nächsten Generation pro Knoten verfügbar ist, stellt jedoch eine Herausforderung dar. Sie können jetzt einen beliebigen Instance-Typ der neuen Generation verwenden, und den Speicher durch Hinzufügen von EBS-Volumes optimieren. Interne Vergleichswerte weisen darauf hin, dass Sie Kosten sparen und die Leistung verbessern können, indem Sie von einer älteren Generation der Instance-Familien (M1 oder M2) zu einer neueren Generation (M4, C4 und R3) wechseln. Das Amazon EMR-Team empfiehlt zur Lösungsfindung die Ausführung Ihrer Anwendung.
  3. Sie möchten die nächste Generation der rein mit EBS verwendeten M4- und C4-Familie nutzen oder zu dieser migrieren.

F: Kann ich meine Daten nach Beenden eines Clusters dauerhaft auf einem EBS-Volume speichern?

Aktuell löscht Amazon EMR Volumes nach Beendigung des Clusters. Wenn Sie Daten außerhalb des Lebenszyklus eines Clusters dauerhaft speichern möchten, empfiehlt sich die Nutzung von Amazon S3 als Datenspeicher.

F: Welche Art von EBS-Volumes kann ich mit einer Instance verbinden?

Mit Amazon EMR können Sie unterschiedliche EBS-Volume-Typen verwenden: Standard-SSD (GP2), magnetischer und bereitgestellter E/A\Sek. (SSD).

F: Was geschieht mit den EBS-Volumes, wenn ich meinen Cluster beende?

Amazon EMR löscht die Volumes nach Beendigung des Clusters.

F: Kann ich ein EBS-Volume mit Instances verwenden, die bereits einen Instance-Speicher haben?

Ja, Sie können EBS-Volumes Instances hinzufügen, die bereits einen Instance-Speicher haben.

F: Kann ich ein EBS-Volume mit einem aktuell ausgeführten Cluster verbinden?

Nein. Derzeit können Sie EBS-Volumes nur beim Start eines Clusters hinzufügen.

F: Kann ich einen Snapshot von den Volumes eines Clusters erstellen?

Die EBS API ermöglicht es Ihnen, einen Snapshot eines Clusters zu erstellen. Amazon EMR erlaubt aktuell jedoch keine Wiederherstellung von einem Snapshot.

F: Kann ich verschlüsselte EBS-Volumes verwenden?

Sie können EBS-Root-Geräte und Speichervolumes mit AWS KMS als Schlüsselanbieter verschlüsseln. Weitere Informationen finden Sie unter Lokale Festplattenverschlüsselung.

F: Was geschieht, wenn ich ein Volume aus einem aktuell ausgeführten Cluster entferne?

Wenn Sie ein Volume aus einem aktuell ausgeführten Cluster entfernen, wird dies wie ein Knotenfehler behandelt. Amazon EMR ersetzt in diesem Fall sowohl den Knoten als auch das EBS-Volume.

EMR-Workloads

Verwendung von Hive

F: Was ist Apache Hive?

Hive ist ein Open-Source-Data-Warehouse und Analysepaket, das auf Hadoop ausgeführt wird. Hive wird mit einer SQL-basierten Sprache namens "Hive QL" betrieben, die es Nutzern ermöglicht, in Amazon S3 gespeicherte Datenquellen zu strukturieren, zu summieren und abzufragen. Hive QL geht über Standard-SQL hinaus: Es wird ein erstklassiger Support für "Map"- und "Reduce"-Funktionen sowie komplexe erweiterbare, benutzerdefinierte Datentypen wie Json und Thrift angeboten. Damit wird die Verarbeitung komplexer und sogar unstrukturierter Datenquellen wie Textdokumente und Protokolldateien ermöglicht. Hive unterstützt Benutzer-Erweiterungen über benutzerdefinierte Funktionen, die in Java erstellt und über die Speicherung in Amazon S3 eingesetzt wurden. Weitere Informationen zu Apache Hive finden Sie hier.

F: Welche Funktionen bietet mir in Amazon EMR ausgeführtes Hive?

Bei Verwendung von Hive zusammen mit Amazon EMR können Sie anspruchsvolle Datenverarbeitungsanwendungen mit einer bekannten, SQL-ähnlichen Sprache und benutzerfreundlichen Tools implementieren, die mit Amazon EMR verfügbar sind. Mit Amazon EMR können Sie außerdem Ihre Hive-Anwendungen in ein zuverlässiges Data Warehouse verwandeln, mit dem Aufgaben wie Datenanalyse, Überwachung und Business Intelligence erfolgen können.

F: Was unterscheidet Hive von traditionellen RDBMS-Systemen?

Traditionelle RDBMS-Systeme bieten Transaktionssemantik- und ACID-Eigenschaften. Außerdem können Tabellen indiziert und im Cache abgelegt werden. So können kleine Datenmengen sehr schnell abgefragt werden. Sie bieten eine schnelle Aktualisierung kleiner Datenmengen und die Durchsetzung von referentieller Integrität. In der Regel werden sie auf einem einzigen großen System ausgeführt und unterstützen weder die Durchführung von "Map"- und "Reduce"-Funktionen in der Tabelle noch die Ausführung komplexer benutzerdefinierter Datentypen.

Hive hingegen führt SQL-ähnliche Abfragen mit MapReduce durch. Dadurch ist es optimiert für vollständige Tabellen-Scans auf einem Rechner-Cluster und kann somit sehr große Datenmengen verarbeiten. Hive unterteilt Tabellen in kleinere Einheiten, wodurch nach Bedarf Partitionen einer Tabelle gescannt werden können, ohne dass die gesamte Tabelle gescannt werden muss.

Traditionelle RDMS-Systeme eignen sich hervorragend für Transaktionssemantik und referentielle Integrität sowie die Durchführung kleiner, häufiger Updates. Hive hingegen ist optimiert für Offline-Reporting, Transformationen und die Analyse großer Datensätze, beispielsweise die Durchführung von Clickstream-Analysen einer großen Website oder sogar mehrerer Websites.

Häufig werden Daten aus RDBMS-Systemen in Amazon S3 exportiert. So kann eine Offline-Analyse durch Amazon EMR-Cluster in Kombination mit Hive durchgeführt werden.

F: Was sind die ersten Schritte für in Amazon EMR ausgeführtes Hive?

Für den Einstieg informieren Sie sich am besten in unserer schriftlichen Dokumentation.

F: Verfügt Hive über neue Funktionen speziell für Amazon EMR?

Ja. Weitere Details finden Sie in unserer Dokumentation.

  • Sie können einen EMR-Cluster mit mehreren Masterknoten starten, um die Hochverfügbarkeit für Apache Hive zu unterstützen. Amazon EMR stellt automatisch ein Failover auf einem Standby-Master-Knoten bereit, wenn der primäre Master-Knoten ausfällt oder wenn kritische Prozesse, wie Resource Manager oder Name Node, abstürzen. Dies bedeutet, dass Sie Apache Hive ohne Unterbrechung auf EMR-Clustern ausführen können.
  • Mit Amazon EMR können Sie EMR Managed Scaling für Apache Hive-Cluster definieren, um Ihre Ressourcennutzung zu optimieren. Mit EMR Managed Scaling können Sie die Größe Ihres Clusters automatisch ändern, um die beste Leistung zu möglichst geringen Kosten zu erzielen. Mit EMR Managed Scaling legen Sie die minimalen und maximalen Rechengrenzen für Ihre Cluster fest, und Amazon EMR ändert die Größe automatisch, um die beste Leistung und Ressourcennutzung zu erzielen. EMR Managed Scaling untersucht kontinuierlich wichtige Metriken, die mit den auf Clustern ausgeführten Workloads verknüpft sind.
  • Amazon EMR 6.0.0 bietet Unterstützung für Hive LLAP und bietet eine durchschnittliche Leistungssteigerung von 2x gegenüber EMR 5.29. Weitere Informationen finden Sie hier.
  • Sie können jetzt S3 Select mit Hive auf Amazon EMR verwenden, um die Leistung zu verbessern. Mit S3 Select können Anwendungen nur eine Teilmenge von Daten von einem Objekt abrufen, wodurch die zwischen Amazon EMR und Amazon S3 übertragene Datenmenge verringert wird.
  • Amazon EMR ermöglicht auch eine schnelle Leistung bei komplexen Apache Hive-Abfragen. EMR verwendet standardmäßig Apache Tez, was erheblich schneller als Apache MapReduce ist. Apache MapReduce verwendet mehrere Phasen, sodass eine komplexe Apache Hive-Abfrage in vier oder fünf Aufgaben unterteilt wird. Apache Tez wurde für komplexere Abfragen entwickelt, sodass dieselbe Aufgabe in Apache Tez in einer Aufgabe ausgeführt wird, was ihn erheblich schneller als Apache MapReduce macht.
  • Mit Amazon EMR haben Sie die Möglichkeit, den Metastore als lokal zu belassen oder zu externalisieren. EMR bietet Integration in den AWS Glue-Datenkatalog, Amazon Aurora, Amazon RDS und AWS Lake Formation. Amazon EMR kann Informationen direkt aus Glue oder Lake Formation abrufen, um den Metastore zu füllen.
  • Sie können Tabellen-Partitionen von Amazon S3 automatisch laden. Zuvor wurde beim Import einer partitionierten Tabelle für jede einzelne Partition eine separate "Alter Table"-Anweisung benötigt. Amazon EMR enthält jetzt eine neue Art von Anweisung für die Hive-Sprache: "alter table recover partitions". Diese Anweisung ermöglicht den einfachen Import von Tabellen in mehrere Cluster gleichzeitig, ohne dass ein gemeinsam genutzter Metadatenspeicher erforderlich ist. Verwenden Sie diese Funktion, um Tabellen auszulesen, in die Daten aus externen Prozessen gespeichert werden, z. B. Protokolldateien.
  • Sie können Daten direkt in Amazon S3 schreiben. Beim Schreiben von Daten in Tabellen in Amazon S3 speichert die in Amazon EMR installierte Hive-Version ohne die Verwendung temporärer Dateien die Daten direkt in Amazon S3. Dies führt zu einer erheblichen Leistungsverbesserung, jedoch bedeutet es auch, dass sich HDFS und S3 aus der Hive-Perspektive anders verhalten. Sie können innerhalb derselben Anweisung nicht auf dieselbe Tabelle lesen und schreiben, wenn sich diese in Amazon S3 befindet. Zur Aktualisierung einer Tabelle in S3 muss zunächst eine temporäre Tabelle im lokalen HDFS-Dateisystem des Clusters erstellt werden. Dann werden die Ergebnisse in diese Tabelle geschrieben und anschließend in Amazon S3 kopiert.
  • Sie können auf Ressourcen in Amazon S3 zugreifen. Mit der in Amazon EMR installierten Hive-Version können Sie innerhalb Ihres Hive-Skripts direkt auf Ressourcen wie Skripts zum Anpassen von "Map"- und "Reduce"-Operationen oder zusätzliche Bibliotheken in Amazon S3 zurückgreifen (z. B. Hinzufügen einer JAR-Datei: s3://elasticmapreduce/samples/hive-ads/libs/jsonserde.jar).

F: Welche Typen von Hive-Clustern werden unterstützt?

Hive unterstützt zwei Cluster-Typen: Interaktiv und Batch. Im interaktiven Modus können Kunden Cluster direkt auf dem Master-Knoten Cluster starten und Hive-Skripts interaktiv ausführen. Normalerweise wird dieser Modus zur Durchführung von Ad-hoc-Datenanalysen sowie für die Anwendungsentwicklung verwendet. Im Batch-Modus wird das Hive-Skript in Amazon S3 gespeichert und beim Starten des Clusters referenziert. Der Batch-Modus wird normalerweise für sich wiederholende Prozesse wie beispielsweise die Berichterstellung genutzt.

F: Wie starte ich einen Hive-Cluster?

Sowohl Batch- als auch interaktive Cluster können über die AWS Management Console, den Befehlszeilen-Client von EMR und über APIs gestartet werden. Nähere Informationen zum Starten eines Hive-Clusters finden Sie in den Versionshinweisen im Abschnitt Hive.

F: Wann sollte ich Hive anstatt Pig verwenden?

Sowohl Hive als auch Pig bieten extrem leistungsfähige Datenverarbeitungssprachen mit Unterstützung komplexer Datentypen zur Verarbeitung von großen Datensätzen. Die Hive-Sprache ist eine Variante von SQL und daher für Nutzer, die bereits mit SQL und relationalen Datenbanken vertraut sind, leichter zugänglich. Hive unterstützt partitionierte Tabellen, sodass Amazon EMR-Cluster lediglich auf die für die Abfrage relevante Partition zugreifen können und keinen vollständigen Tabellen-Scan durchführen müssen. Sowohl Pig als auch Hive bieten Abfrageplan-Optimierung. Pig kann über das gesamte Skript hinweg optimieren, während Hive-Abfragen auf der Anweisungsebene optimiert werden.

Die Entscheidung für Hive oder Pig ist letztendlich von den genauen Anforderungen der Anwendungsdomäne und den Präferenzen der Anwender und der Abfragensteller abhängig.

F: Welche Hive-Version unterstützt Amazon EMR?

Die neueste Version von Hive auf Amazon EMR finden Sie in der Dokumentation.

F: Können zwei Cluster gleichzeitig in eine Tabelle schreiben?

Nein. Das gleichzeitige Schreiben in eine Tabelle wird von Hive derzeit nicht unterstützt. Vermeiden Sie sowohl das gleichzeitige beschreiben einer Tabelle als auch das Lesen einer Tabelle während diese beschrieben wird. Hive zeigt ein nicht-deterministisches Verhalten, wenn während des Schreibens gleichzeitig gelesen oder geschrieben wird.

F: Können Cluster Daten gemeinsam nutzen?

Ja. Wenn oben in Ihrem Skript die Anweisung "Create External Table" angezeigt wird, können Sie Daten innerhalb eines Hive-Skripts in Amazon S3 lesen. Für jede externe Ressource, auf die Sie zugreifen möchten, benötigen Sie ein "Create Table"-Anweisung.

F: Soll ich einen großen Cluster ausführen, der von mehreren Benutzern gemeinsam genutzt wird, oder besser mehrere kleinere Cluster?

Amazon EMR bietet Ihnen beide Möglichkeiten. Zur Verarbeitung normaler Batch-Arbeitslasten ist ein einzelner, großer Cluster wahrscheinlich effizienter. Bei Ad-hoc-Abfragen oder variierenden Arbeitslasten können Sie jedoch auch mehrere separate Cluster erstellen, die auf bestimmte, in Amazon S3 zur Aufgabenteilung gespeicherte Daten abgestimmt sind. Sie können EMR Managed Scaling verwenden, um die Ressourcennutzung zu optimieren.

F: Habe ich Zugriff auf Skripte oder JAR-Ressourcen, die sich in meinem lokalen Dateisystem befinden?

Nein. Damit eine Referenzierung erfolgen kann, müssen Sie das Skript oder die JAR-Ressource zuvor in Amazon S3 oder auf den Master-Knoten des Clusters hochladen. Zum Hochladen in Amazon S3 können Sie Tools wie s3cmd, jets3t oder S3Organizer verwenden.

F: Kann ich einen permanenten Cluster betreiben, der mehrere Hive-Abfragen ausführt?

Ja. Wählen Sie für Ihren Cluster den Modus der manuellen Beendigung, damit er zwischen den Hive-Schritten nicht beendet wird. Um das Risiko eines Datenverlusts möglichst gering zu halten, empfiehlt es sich, wichtige Daten regelmäßig in Amazon S3 dauerhaft zu speichern. Außerdem sollten Sie Ihre Daten regelmäßig in einen neuen Cluster übertragen, um für den Fall eines Master-Knotenausfalls den Wiederherstellungsprozess zu testen.

F: Können mehrere Benutzer Hive-Schritte mit denselben Quelldaten ausführen?

Ja. Von mehreren Benutzern in verschiedenen Clustern ausgeführte Hive-Skripts können "Create External Table"-Anweisungen enthalten, um Quelldaten aus Amazon S3 gleichzeitig importieren zu können.

F: Können mehrere Benutzer Abfragen auf denselben Cluster anwenden?

Ja. Im Batch-Modus werden Schritte serialisiert. Mehrere Benutzer können demselben Cluster Hive-Schritte hinzufügen, allerdings werden diese Schritte seriell ausgeführt. Im interaktiven Modus können mehrere Benutzer am selben Cluster angemeldet sein und Hive-Anweisungen gleichzeitig ausführen.

F: Können Daten von mehreren AWS-Benutzern gemeinsam benutzt werden?

Ja. Die Standard-Freigabefunktion von Amazon S3 ermöglicht die gemeinsame Nutzung von Daten. Weitere Informationen erhalten Sie hier.

F: Unterstützt Hive den Zugriff von JDBC?

Ja. Hive verfügt über einen JDBC-Treiber, der zur programmatischen Ausführung von Hive-Anweisungen verwendet werden kann. Der JDBC-Service wird in Ihrem Cluster durch Eingabe eines optionalen Parameters in den Befehlszeilen-Client von Amazon EMR gestartet. Da die Sicherheitsgruppe keine externen Verbindungen zulässt, muss ein SSH-Tunnel aufgebaut werden.

F: Wie werden Pakete für EMR-AMIs aktualisiert?

Beim ersten Start verbinden sich die Amazon Linux AMIs für EMR mit den Amazon Linux AMI yum-Repositorys, um Sicherheitsupdates zu installieren. Wenn Sie eine benutzerdefinierte AMI verwenden, können Sie diese Funktion deaktivieren, aber wir empfehlen dies aus Sicherheitsgründen nicht.

F: Kann ich meine eigenen Pakete für EMR-Cluster aktualisieren?

Ja. Sie können Bootstrap-Aktionen verwenden, um Paketaktualisierungen auf Ihren Clustern zu installieren.

F: Kann ich DynamoDB-Daten auch mit Hive verarbeiten?

Ja. Legen Sie ganz einfach eine externe Hive-Tabelle fest, die auf Ihrer DynamoDB-Tabelle basiert. Dann können Sie mithilfe von Hive die in DynamoDB gespeicherten Daten analysieren und die Ergebnisse entweder wieder in DynamoDB laden oder in Amazon S3 archivieren. Weitere Informationen finden Sie im Entwicklerhandbuch.

Verwendung von Hudi

F: Was ist Apache Hudi?

Apache Hudi ist ein Open-Source-basiertes Datenmanagement-Framework zur Vereinfachung der inkrementellen Datenverarbeitung und der Entwicklung von Datenpipelines. Apache Hudi ermöglicht die Verwaltung von Daten auf Rekordniveau in Amazon S3, um Change Data Capture (CDC) und Streaming Data Ingestion zu vereinfachen, und es bietet einen Rahmen, um Datenprivatsphäre, die Rekordniveau-Aktualisierungen und Löschvorgänge erfordern, zu bearbeiten. Von Apachi Hudi verwaltete Datensätze werden in offenen Speicherformaten in S3 gespeichert und die Integration in Presto, Apache Hive, Apache Spark und AWS Glue Data Catalog gewährt mittels vertrauter Tools in nahezu Echtzeit Zugriff auf aktualisierte Daten.

F: Wann sollte ich Apache Hudi einsetzen?

Apache Hudi hilft Ihnen bei Nutzerfällen, die Datenmanagement auf S3 auf Rekordniveau erfordern. Es gibt fünf gewöhnliche Nutzerfälle, die von diesen Funktionen profitieren:

  1. Konform mit Gesetzen zur Datenprivatsphäre, die Organisationen benötigen, um Nutzerdaten zu löschen, oder Nutzervoreinstellungen zu aktualisieren, wenn Nutzer ihre Präferenzen bezüglich der Verwendung ihrer Daten ändern. Apache Hudi ermöglicht die Ausführung von Einlagen, Aktualisierungen und Löschvorgängen ihrer in S3 gespeicherten Daten auf Rekordniveau, indem offene Quelldatenformate wie Apache Parquet und Apache Avro verwendet werden.
  2. Konsumieren von Echtzeit-Datenstreams und Anwendung von Change Data Capture Logs von Unternehemenssystemen. Viele Organisationen erfordern Enterprise Data Warehouses (EDW) und Operational Data Stores (ODS) Daten in Amazon S3, damit sie für SQL Engines wie Apache Hive und Presto für Datenbearbeitung und Analysen erhältlich ist. Apache Hudi vereinfacht die Anwendung von veränderten Berichten und gibt den Nutzern fast Echtzeit-Zugang zu den Daten.
  3. Wiedereinsetzen von verspäteten oder inkorrekten Daten. Verspätete oder inkorrekte Daten müssen wiedereingesetzte werden und bestehende Datensets müssen aktualisiert werden, um neue oder aktualisierte Berichte zu inkorporieren. Apache Hudi ermöglicht das “Upsert” von Berichten in bestehende Datensets, fundierend auf dem einzubettenden Framework oder Aktualisierungsberichte basierend auf ihrem Dasein im Datenset.
  4. Veränderungen von Datensets nachverfolgen und ermöglicht Rollback-Veränderungen. Mit Apache Hudi können alle Veränderungen von Datensets als Commit nachverfolgt werden und ein Rollback ist einfach möglich. So können spezielle Veränderungen von Datensets ermittelt und zurückgesetzt werden.
  5. Einfacheres Dateimanagement auf S3. Um sicherzustellen, dass die Datendateien groß genug sind, müssen die Kunden spezielle Lösungen erstellen, die viele kleine Dateien überwachen und in weniger große Dateien neu schreiben. Mit Apache Hudi werden Datendateien auf S3 verwaltet und Nutzer können eine optimale Dateigröße einfach konfigurieren, um ihre Daten zu speichern und Hudi vereint Dateien, um ausreichend große Dateien zu erstellen.
  6. Schreiben von Deltas in einen Hudi-Zieldatensatz. Hudi-Datensätze können schrittweise abgerufen werden, was bedeutet, dass Sie ALLE und NUR die aktualisierten und neuen Zeilen seit einem bestimmten Zeitpunkt abrufen können.

F: Wie erstelle ich einen Apache Hudi Datensatz?

Apache Hudi Datensätze werden mit Apache Spark erstellt. Das Erstellen eines Datensatzes ist so einfach wie das Schreiben eines Apache Spark DataFrame. Die Metadaten für Apache Hudi Datensätze können optional in dem AWS Glue Datenkatalog oder der Hive Metastore gespeichert werden, um die Datenentdeckung zu vereinfachen und um sie mit Apache Hive und Presto zu integrieren.

F: Wie verwaltet Apache Hudi Datensätze?

Wenn ein Datensatz mit Apache Hudi erstellt wird, können Sie auswählen, für welchen Typ von Datenzugangsmuster der Datensatz optimiert werden soll. Für schreibintensive Anwendungsfälle können Sie die Datenverwaltungsstrategie „Beim Schreiben kopieren“ auswählen, um das häufige Lesen des Datensatzes zu optimieren. Diese Strategie organisiert Daten mit Säulen-Speicherformaten und vereint bestehende Daten und neue Aktualisierungen, wenn die Aktualisierungen geschrieben werden. Für schreibintensive Workloads verwendet Apache Hudi die Datenverwaltungsstrategie „Beim Lesen zusammenführen“, bei der Daten mithilfe einer Kombination aus Spalten- und Zeilenspeicherformaten organisiert werden, wobei Aktualisierungen an eine Datei im zeilenbasierten Speicherformat angehängt werden, während die Zusammenführung bei der Lesezeit ausgeführt wird, um die aktualisierten Ergebnisse bereitzustellen.

F: Wie schreibe ich einen Apache Hudi Datensatz?

Änderungen von Apache Hudi Datensätzen werden mit Apache Spark bearbeitet. Mit Apache Spark werden Apache Hudi Datensätze mit den Spark DataSource API gesteuert. Dies ermöglicht das Lesen und Schreiben von Daten. DataFrame, der neu hinzugefügte Daten oder Aktualisierungen vorhandener Daten enthält, kann mit derselben DataSource-API geschrieben werden. Sie können auch das Dienstprogramm Hudi DeltaStreamer verwenden.

F: Wie lese ich einen Apache Hudi Datensatz?

Sie können Daten entweder mit Apache Spark, Apache Hive, Presto, Amazon Redshift Spectrum oder Amazon Athena lesen. Wenn Sie einen Datensatz erstellen, haben Sie die Option die Metadaten dieses Satzes im AWS Glue Datenkatalog oder dem Hive Metastore zu veröffentlichen. Wenn Sie die Metadaten im Metastore veröffentlichen, sieht Ihr Datensatz aus wie eine gewöhnliche Tabelle und Sie können diese mit Apache Hive und Presto durchsuchen.

F: Auf welche Hinweise oder Begrenzungen sollte ich bei der Verwendung von Apache Hudi achten?

Eine Liste von Hinweisen oder Begrenzungen für Apache Hudi auf Amazon EMR finden Sie in der Amazon EMR-Dokumentation.

F: Wie funktionieren meine bestehenden Daten mit Apache Hudi?

Wenn Sie über vorhandene Daten verfügen, die Sie jetzt mit Apache Hudi verwalten möchten, können Sie Ihre Apache Parquet-Daten mithilfe eines mit Apache Hudi in Amazon EMR bereitgestellten Importtools problemlos in Apache Hudi-Datensätze konvertieren oder das Dienstprogramm Hudi DeltaStreamer oder Apache Spark verwenden, um Ihre vorhandenen Daten als Apache Hudi-Datensatz neu zu schreiben.

Verwendung von Impala

F: Was ist Impala?

Impala ist ein Open-Source-Tool im Hadoop-Umfeld für interaktives Ad-hoc-Abfragen mit SQL-Syntax. Anstelle von MapReduce wird eine massive Parallelverarbeitungs- (Massive Parallel Processing – MPP) Engine verwendet, die derjenigen in herkömmlichen relationalen Datenbankmanagementsystemen (RDBMS) ähnelt. Bei dieser Architektur können die Daten in HDFS- oder HBase-Tabellen sehr rasch abgefragt werden, und Sie können die Fähigkeit von Hadoop nutzen, verschiedene Datentypen zu verarbeiten und während der Laufzeit ein Schema bereitzustellen. Dadurch ist Impala für interaktive Analysen mit kurzer Latenzzeit gut geeignet. Außerdem verwendet Impala den Hive-Metastore zum Speichern von Informationen über die Eingabedaten, einschließlich der Partitionsnamen und Datentypen. Für Impala auf Amazon EMR sind außerdem AMIs erforderlich, die auf Hadoop 2.x oder höher ausgeführt werden. Weitere Informationen zu Impala finden Siehier.

F: Welche Funktionen bietet mir in Amazon EMR ausgeführtes Impala?

Ähnlich wie mit Hive in Amazon EMR kann Impala in Amazon EMR komplizierte Datenverarbeitungsanwendungen unter Verwendung von SQL-Syntax implementieren. Allerdings ist Impala so aufgebaut, dass in bestimmten Anwendungsfällen (siehe unten) eine schnellere Leistung erzielt wird. Mit Amazon EMR können Sie Impala als zuverlässiges Data Warehouse nutzen, um Aufgaben wie Datenanalyse, Überwachung und Business Intelligence auszuführen. Im Folgenden sind drei Verwendungsfälle aufgeführt:

  • Verwendung von Impala anstelle von Hive in Langläufer-Clustern zum Ausführen von Ad-hoc-Abfragen. Impala reduziert die Dauer von interaktiven Abfragen auf einige Sekunden und wird dadurch zum bestens geeigneten Tool für schnelle Recherchen. Sie könnten Impala auf demselben Cluster wie Ihre Stapel-Workflows in MapReduce ausführen, Impala in einem Langläuferanalyse-Cluster mit Hive und Pig ausführen, oder ein speziell auf Impala-Abfragen abgestimmtes Cluster erstellen.
  • Verwendung von Impala anstelle von Hive für ETL-Stapelaufträge in Amazon EMR-Kurzzeit-Clustern. Im Falle zahlreicher Abfragen ist Impala schneller als Hive, wodurch für diese Arbeitslasten eine bessere Leistung erzielt wird. Genau wie Hive arbeitet auch Impala mit SQL. Somit können Abfragen problemlos von Hive nach Impala modifiziert werden.
  • Verwendung von Impala in Verbindung mit einem Business-Intelligence-Tool eines Drittanbieters. Verbinden Sie einen Client-ODBC- oder JDBC-Treiber mit Ihrem Cluster, um Impala als Engine für leistungsstarke Visualisierungs-Tools und Dashboards nutzen zu können.

Sowohl Stapel- als auch interaktive Impala-Cluster können in Amazon EMR erstellt werden. Sie können beispielsweise ein Amazon EMR-Langläufer-Cluster für interaktives Ad-hoc-Abfragen mit Impala ausführen oder Impala-Kurzzeit-Cluster für schnelle ETL-Workflows nutzen.

F: Wie unterscheidet sich Impala von herkömmlichen relationalen Datenbank-Managementsystemen?

Herkömmliche relationale Datenbanksysteme stellen Transaktionssemantik und ACID-Eigenschaften (Atomizität, Konsistenz, Isolation, Dauerhaftigkeit) der Datenbank bereit. Sie gestatten auch die Indizierung und Zwischenspeicherung von Tabellen, sodass kleine Datenmengen sehr schnell abgerufen und rasch aktualisiert sowie referentielle Integritätsbedingungen durchgesetzt werden können. Typischerweise werden sie auf einer einzelnen großen Maschine ausgeführt und unterstützen die Handhabung komplexer benutzerdefinierter Datentypen nicht. Impala verwendet ein ähnliches verteiltes Abfragesystem wie dasjenige in RDBMSs, fragt aber in HDFS gespeicherte Daten ab und verwendet den Hive-Metastore für die Ablage von Informationen über die Eingabedaten. Wie bei Hive wird das Schema für eine Abfrage während der Laufzeit bereitgestellt, wodurch einfachere Schema-Änderungen ermöglicht werden. Impala kann eine Reihe von komplexen Datentypen abfragen und benutzerdefinierte Funktionen ausführen. Da Impala Daten jedoch speicherintern verarbeitet, müssen Sie die Hardware-Einschränkungen Ihres Clusters jedoch unbedingt kennen und Ihre Abfragen optimieren, um die beste Leistung zu erzielen.

F: Wie unterscheidet sich Impala von Hive?

Impala führt SQL-Abfragen mithilfe einer massiven Parallelverarbeitungs- (Massive Parallel Processing – MPP) Engine aus, Hive hingegen führt SQL-Abfragen mit MapReduce aus. Der Overhead in Hive infolge der Erstellung von MapReduce-Aufträgen wird bei Impala vermieden, und somit sind die Abfragezeiten schneller als bei Hive. Impala verwendet jedoch enorme Speicherressourcen, und der verfügbare Speicher des Clusters gibt vor, wie viel Speicherplatz jede Abfrage belegen darf. Hive ist diesbezüglich nicht eingeschränkt und kann größere Datensätze mit derselben Hardware erfolgreich verarbeiten. Im Allgemeinen sollten Sie Impala für schnelle, interaktive Abfragen verwenden, Hive dagegen ist die bessere Lösung für ETL-Arbeitslasten in größeren Datensätzen. Impala ist auf Geschwindigkeit ausgelegt und hervorragend geeignet für Ad-hoc-Recherchen. Allerdings wird eine enorme Speichermenge belegt, um kostspielige Abfragen auszuführen oder sehr große Datensätze zu verarbeiten. Aufgrund dieser Einschränkungen empfehlen wir Hive für Arbeitslasten, bei denen nur der Abschluss, nicht aber die Geschwindigkeit eine Rolle spielt. Hier finden Sie einige Leistungsvergleichswerte zwischen Impala und Hive.

F: Kann ich Hadoop 1 verwenden?

Nein. Für Impala ist Hadoop 2 erforderlich, und es läuft nicht auf einem Cluster mit einem AMI, das mit Hadoop 1.x ausgeführt wird.

F: Welche Instance-Typen soll ich für meinen Impala-Cluster verwenden?

Unsere Empfehlung für die besten Erfahrungswert für Impala ist, für Ihr Cluster speicheroptimierte Instances zu verwenden. Wie haben jedoch nachgewiesen, dass im Vergleich mit Hive Leistungssteigerungen auch mit standardmäßigen Instance-Typen möglich sind. Wir empfehlen Ihnen, den Abschnitt Leistungstests und Abfrageoptimierung im Amazon EMR-Entwicklerhandbuch zu lesen, um die Speicherressourcen besser einschätzen zu können, die Ihr Cluster hinsichtlich Datensatz und Abfragetypen benötigt. Komprimierungstyp, Partitionen und tatsächliche Abfrage (Anzahl von Joins, Ergebnisgröße usw.) – all dies spielt eine Rolle für den erforderlichen Speicher. Sie können die EXPLAIN-Anweisung zum Schätzen des Speicherbedarfs und anderer für eine Impala-Abfrage benötigter Ressourcen verwenden.

F: Was geschieht, wenn bei einer Abfrage nicht mehr genügend Speicherplatz vorhanden ist?

Wenn der Speicherplatz zu knapp wird, schlagen die Abfragen fehl, und der auf dem betreffenden Knoten installierte Impala-Daemon schaltet ab. Amazon EMR startet den Daemon auf dem Knoten dann neu, sodass Impala zum Ausführen einer weiteren Abfrage bereit ist. Ihre Daten in HDFS auf dem Knoten bleiben verfügbar, weil nur der auf dem Knoten ausgeführte Daemon abschaltet, nicht aber der gesamte Knoten selbst. Für Ad-hoc-Analysen mit Impala kann die Abfragezeit oft in Sekunden gemessen werden; wenn daher eine Abfrage fehlschlägt, können Sie das Problem rasch ausfindig machen und kurz darauf eine neue Abfrage starten.

F: Unterstützt Impala benutzerdefinierte Funktionen?

Ja. Impala unterstützt benutzerdefinierte Funktionen (UDFs). Impala-spezifische UDFs können Sie in Java oder C++ schreiben. Sie können UDFs oder benutzerdefinierte Aggregatfunktionen, die für Hive erstellt wurden, auch für die Verwendung mit Impala modifizieren. Weitere Informationen über UDFs in Hive finden Sie hier.

F: Wo sind die Daten gespeichert, die Impala abfragen soll?

Impala fragt Daten in HDFS- oder in HBase-Tabellen ab.

F: Kann ich Impala und MapReduce in einem Cluster gleichzeitig ausführen?

Ja. Sie können ein Multitenant-Cluster mit Impala und MapReduce einrichten. Sie sollten jedoch jeder Anwendung mit YARN auf Hadoop 2.x eigene Ressourcen zuweisen (Arbeitsspeicher, Festplattenspeicher und CPU). Die zugeteilten Ressourcen sollten den Aufgaben entsprechend, die Sie auf den Anwendungen ausführen möchten, bemessen sein.

F: Unterstützt Impala ODBC- und JDBC-Treiber?

Sie können selbstverständlich ODBC-Treiber verwenden. Impala ist aber auch eine großartige Engine für Tools von Drittanbietern, die über JDBC verbunden werden. Sie können den Impala Client-JDBC-Treiber herunterladen von http://elasticmapreduce.s3.amazonaws.com/libs/impala/1.2.1/impala-jdbc-1.2.1.zip. Vom Client-Computer aus, auf dem Ihr Business-Intelligence-Tool installiert ist, verbinden Sie den JDBC-Treiber mit dem Hauptknoten eines Impala-Clusters mittels SSH oder eines VPN auf dem Port 21050. Weitere Informationen finden Sie unter Einrichten eines SSH-Tunnels zum Master-Knoten.

Verwendung von Pig

F: Was ist Apache Pig?

Bei Pig handelt es sich um ein Open-Source-Paket zur Analyse von Datensätzen, das auf Hadoop ausgeführt wird. Pig wird mit einer SQL-ähnlichen Sprache namens "Pig Latin" betrieben, die es Nutzern ermöglicht, in Amazon S3 gespeicherte Datenquellen zu strukturieren, zu summieren und abzufragen. Neben SQL-ähnlichen Abläufen bietet Pig Latin auch eine erstklassige Unterstützung für "Map"- und "Reduce"-Funktionen sowie komplexe erweiterbare, benutzerdefinierte Datentypen. Damit wird die Verarbeitung komplexer und sogar unstrukturierter Datenquellen wie Textdokumente und Protokolldateien ermöglicht. Pig unterstützt Benutzer-Erweiterungen über benutzerdefinierte Funktionen, die in Java geschrieben und über die Speicherung in Amazon S3 bereitgestellt wurden.

F: Welche Funktionen bietet mir in Amazon EMR ausgeführtes Pig?

Bei Verwendung von Pig zusammen mit Amazon EMR können Sie anspruchsvolle Datenverarbeitungsanwendungen mit einer bekannten, SQL-ähnlichen Sprache und benutzerfreundlichen Tools implementieren. Mit Amazon EMR können Sie außerdem Ihre Pig-Anwendungen in ein zuverlässiges Data Warehouse verwandeln, mit dem Aufgaben wie Datenanalyse, Überwachung und Business Intelligence erfolgen können.

F: Was sind die ersten Schritte für die Ausführung von Pig in Amazon EMR?

Für den Einstieg informieren Sie sich am besten in unserer schriftlichen Dokumentation.

F: Verfügt Pig über neue Funktionen speziell für Amazon EMR?

Ja. Es gibt drei neue Funktionen, durch die Pig in Kombination mit Amazon EMR jetzt noch leistungsfähiger ist:

a/ Zugriff auf mehrere Dateisysteme. Standardmäßig kann ein Pig-Auftrag für die Eingabe, Ausgabe oder temporäre Dateien nur auf ein einziges entferntes Dateisystem zugreifen (HDFS-Speicher oder S3-Bucket). Durch EMR wurde Pig erweitert, sodass jeder Auftrag auf beliebig viele Dateisysteme zugreifen kann. Dies hat den Vorteil, dass temporäre Intra-Aufgabe-Daten immer auf dem lokalen HDFS gespeichert werden, was zu einer verbesserten Leistung führt.

b/ Laden von Ressourcen aus S3. Pig wurde durch EMR erweitert, sodass benutzerdefinierte JAR-Dateien und Skripts auch aus dem S3-Dateisystem stammen können, beispielsweise "REGISTER s3:///my-bucket/piggybank.jar".

c/ Zusätzliche Piggybank-Funktion für String- und DateTime-Verarbeitung.

F: Welche Typen von Pig-Clustern werden unterstützt?

Pig unterstützt zwei Cluster-Typen: Interaktiv und Batch. Im interaktiven Modus können Kunden Cluster direkt auf dem Master-Knoten Cluster starten und Pig-Skripts interaktiv ausführen. Normalerweise wird dieser Modus zur Durchführung von Ad-hoc-Datenanalysen sowie für die Anwendungsentwicklung verwendet. Im Batch-Modus wird das Pig-Skript in Amazon S3 gespeichert und beim Starten des Clusters referenziert. Der Batch-Modus wird normalerweise für sich wiederholende Prozesse wie beispielsweise die Berichterstellung genutzt.

F: Wie starte ich einen Pig-Cluster?

Sowohl Batch- als auch interaktive Cluster können über die AWS Management Console, den Befehlszeilen-Client von EMR und über APIs gestartet werden.

F: Welche Pig-Version unterstützt Amazon EMR?

Amazon EMR unterstützt mehrere Pig-Versionen.

F: Können Daten aus zwei Clustern gleichzeitig in einen S3-Bucket geschrieben werden?

Ja. Sie können Daten von zwei Clustern gleichzeitig in einen Bucket schreiben.

F: Können in S3 vorhandene Eingabedaten von Clustern gemeinsam genutzt werden?

Ja. Sie können dieselben Daten in S3 von zwei Clustern gleichzeitig lesen.

F: Können Daten von mehreren AWS-Benutzern gemeinsam benutzt werden?

Ja. Die Standardfreigabefunktion von Amazon S3 ermöglicht die gemeinsame Nutzung von Daten. Weitere Informationen erhalten Sie unter http://docs.amazonwebservices.com/AmazonS3/latest/index.html?S3_ACLs.html.

F: Soll ich einen großen Cluster ausführen, der von mehreren Benutzern gemeinsam genutzt wird, oder besser mehrere kleinere Cluster?

Amazon EMR bietet Ihnen beide Möglichkeiten. Zur Verarbeitung normaler Batch-Arbeitslasten ist ein einzelner, großer Cluster wahrscheinlich effizienter. Bei Ad-hoc-Abfragen oder variierenden Arbeitslasten können Sie jedoch auch mehrere separate Cluster erstellen, die auf bestimmte, in Amazon S3 zur Aufgabenteilung gespeicherte Daten abgestimmt sind.

F: Habe ich Zugriff auf Skripte oder JAR-Ressourcen, die sich in meinem lokalen Dateisystem befinden?

Nein. Damit eine Referenzierung erfolgen kann, müssen Sie das Skript oder die JAR-Ressource zuvor in Amazon S3 oder auf den Master-Knoten des Clusters hochladen. Zum Hochladen in Amazon S3 können Sie Tools wie s3cmd, jets3t oder S3Organizer verwenden.

F: Kann ich einen permanenten Cluster betreiben, der mehreren Pig-Abfragen ausführt?

Ja. Wählen Sie für Ihren Cluster den Modus der manuellen Beendigung, damit er zwischen den Pig-Schritten nicht beendet wird. Um das Risiko eines Datenverlusts möglichst gering zu halten, empfiehlt es sich, wichtige Daten regelmäßig in Amazon S3 dauerhaft zu speichern. Außerdem sollten Sie Ihre Daten regelmäßig in einen neuen Cluster übertragen, um für den Fall eines Master-Knotenausfalls den Wiederherstellungsprozess zu testen.

F: Unterstützt Pig den Zugriff von JDBC?

Nein. Pig unterstützt keinen Zugriff über JDBC. 

Verwendung von HBase

F: Was ist Apache HBase?

HBase ist eine nicht relationale, verteilte Open-Source-Datenbank nach dem Vorbild von Google BigTable. Sie wurde im Rahmen des Hadoop-Projekts der Apache Software Foundation entwickelt und wird auf Hadoop Distributed File System (HDFS) ausgeführt, um für Hadoop Kapazitäten wie bei BigTable bereitzustellen. HBase bietet eine fehlertolerante, effiziente Methode für die Speicherung großer Mengen von Daten mit geringer Dichte. Es setzt dazu spaltenbasierte Kompression und Speicherung ein. Darüber hinaus ermöglicht HBase schnellen Datenaufruf, da die Daten nicht auf einem Datenträger, sondern In-Memory gespeichert werden. HBase ist für serielle Schreiboperationen optimiert und besonders effizient für Batch-Inserts, Updates und Löschvorgänge. HBase arbeitet problemlos mit Hadoop, verwendet dasselbe Dateisystem und dient als Direkt-Ein- und -Ausgabe für Hadoop-Aufträge. HBase lässt sich auch mit Apache Hive integrieren, ermöglicht SQL-artige Abfragen von HBase-Tabellen und Join-Vorgänge mit Hive-basierten Tabellen und unterstützt Java Database Connectivity (JDBC). Weitere Informationen zu Apache HBase finden Sie hier.

F: Verfügt HBase über neue Funktionen speziell für Amazon EMR?

Mit Amazon EMR können Sie HBase in Amazon S3 verwenden, um das HBase-Stammverzeichnis und die Metadaten eines Clusters direkt in Amazon S3 zu speichern und Lesereplikate und Snapshots zu erstellen. Um mehr zu erfahren, lesen Sie bitte unsere Dokumentation.

F: Welche HBase-Versionen werden für Amazon EMR unterstützt?

Sie können Sie sich die neuesten HBase-Versionen, die von Amazon EMR unterstützt werden, hier ansehen.

Kinesis Connector

F: Was ermöglicht der EMR Connector für Kinesis?

Der Connector ermöglicht EMR das direkte Lesen und Abfragen von Daten in Kinesis-Streams. Sie können mit vorhandenen Hadoop-Tools wie Hive, Pig, MapReduce, Hadoop Streaming und Cascading eine Stapelverarbeitung auf Kinesis-Streams anwenden.

F: Was ermöglicht der EMR Connector für Kinesis, was zuvor nicht möglich war?

Für das Lesen und Verarbeiten von Daten in einem Kinesis-Stream ist das Schreiben, Bereitstellen und Pflegen unabhängiger Stream-Verarbeitungsanwendungen erforderlich. Dies ist mit Zeit- und Personalaufwand verbunden. Mit diesem Connector können Sie hingegen mit dem Lesen und Analysieren eines Kinesis-Streams beginnen, indem Sie ein einfaches Hive- oder Pig-Skript schreiben. Das heißt, dass Sie Kinesis mithilfe von SQL analysieren können! Andere Hadoop-Tools können freilich ebenfalls zum Einsatz kommen. Sie müssen keine neuen Verarbeitungsanwendungen entwickeln und pflegen.

F: Für wen ist diese Funktionalität nützlich?

Für die folgenden Benutzertypen ist diese Integration nützlich:

  • Hadoop-Benutzer mit Interesse an der Nutzung des umfassenden Angebots an Hadoop-Tools für die Analyse von Kinesis-Streams.
  • Kinesis-Benutzer, die eine einfache Möglichkeit der Einrichtung der Stream-Verarbeitung und zum Extrahieren, Transformieren und Laden von Kinesis-Daten suchen.
  • Wirtschaftsanalysten und IT-Fachleute, die Daten in Kinesis-Streams mit vertrauten SQL-Tools (über Hive) oder Skriptsprachen wie Pig ad hoc analysieren möchten.

F: Was sind Anwendungsfälle für diese Integration?

Es folgen repräsentative Anwendungsfälle, die durch diese Integration ermöglicht werden:

  • Streaming-Protokollanalyse: Sie können Streaming-Webprotokolle analysieren, um eine Liste der 10 häufigsten Fehlertypen alle "x" Minuten nach Region, Browser und Zugriffs-Domain zu erzeugen.
  • Komplexe Datenverarbeitungs-Workflows: Sie können in S3, Dynamo DB-Tabellen und HDFS gespeicherte Daten einem Kinesis-Stream hinzufügen. Sie können Abfragen schreiben, die Clickstream-Daten aus Kinesis mit Informationen zu Werbekampagnen in einer DynamoDB-Tabelle verknüpfen, um die effektivsten Kategorien von Anzeigen zu bestimmen, die auf bestimmten Websites angezeigt werden.
  • Ad-hoc-Abfragen: Sie können Daten regelmäßig aus Kinesis in HDFS laden und diese für schnelle, interaktive Analyseabfragen als lokale Impala-Tabelle zur Verfügung stellen.

F: Welche EMR-AMI-Version benötige ich für die Nutzung des Connectors?

Sie benötigen mindestens die EMR-AMI-Version 3.0.4.

F: Ist dieser Connector ein eigenständiges Tool?

Nein. Es handelt sich um eine in die Amazon-Verteilung von Hadoop integrierte Komponente, die in EMR-AMI-Versionen ab 3.0.4 vorhanden ist. Der Kunde muss lediglich einen Cluster mit einer AMI-Version ab 3.0.4 einrichten, um diese Funktion nutzen zu können.

F: Welches Datenformat ist erforderlich, damit EMR Daten in einem Kinesis-Stream lesen kann?

Die Integration von EMR und Kinesis ist nicht datenformatspezifisch. Sie können Daten in einem beliebigen Format lesen. Einzelne Kinesis-Datensätze werden Hadoop als Standarddatensätze gezeigt, die von jedem Hadoop MapReduce-Framework gelesen werden können. Einzelne Frameworks wie Hive, Pig und Cascading verfügen über integrierte Komponenten zur Unterstützung der Serialisierung und Deserialisierung, was es Entwicklern erleichtert, Daten in vielen Formaten abzufragen, ohne angepassten Code zu implementieren. In Hive können Benutzer beispielsweise Daten in JSON-, XML- und SEQ-Dateien lesen, indem sie beim Definieren einer Tabelle die entsprechende Einstellung "Hive SerDe" angeben. Die vergleichbare Komponente in Pig heißt "Loadfunc/Evalfunc" und in Cascading Tap. Hadoop-Benutzer können das umfangreiche Angebot von Hadoop-Adaptern nutzen, ohne formatspezifischen Code schreiben zu müssen. Sie können auch angepasste Deserialisierungsformate implementieren, um Domain-spezifische Daten in diesen Tools zu lesen.

F: Wie analysiere ich einen Kinesis-Stream mit Hive in EMR?

Erstellen Sie eine Tabelle, die auf einen Kinesis-Stream verweist. Sie können anschließend die Tabelle wie jede andere in Hive analysieren. Weitere Informationen finden Sie auf unser Tutorialseite.

F: Wie erstelle ich mithilfe von Hive Abfragen, die Kinesis-Stream-Daten mit anderen Datenquellen kombinieren?

Erstellen Sie zunächst eine Tabelle, die auf einen Kinesis-Stream verweist. Nach dem Erstellen einer Hive-Tabelle können Sie diese mit Tabellen verknüpfen, die anderen Datenquellen wie Amazon S3, Amazon Dynamo DB und HDFS zugeordnet sind. Dadurch werden Daten im Kinesis-Stream mit anderen Datenquellen verbunden.

F: Gibt es diese Integration nur für Hive?

Nein. Sie können Hive, Pig, MapReduce, Hadoop Streaming und Cascading verwenden.

F: Wie richte ich geplante Aufträge für die Anwendung auf einen Kinesis-Stream ein?

Der Eingabe-Connector für EMR Kinesis bietet Funktionen zum Konfigurieren und Verwalten geplanter regelmäßiger Aufträge in herkömmlichen Zeitplanungslösungen wie Cron. Sie können beispielsweise ein Hive-Skript schreiben, das alle "x" Minuten ausgeführt wird. In den Konfigurationsparametern für den Auftrag können Sie einen logischen Namen dafür angeben. Der logische Name ist eine Bezeichnung, die den Eingabe-Connector für EMR Kinesis informiert, dass einzelne Instances des Auftrags Elemente desselben regelmäßigen Zeitplans sind. Der logische Name erlaubt dem Prozess, mit Iterationen zu arbeiten, was nachstehend erläutert wird.

Da MapReduce ein Framework für Stapelverarbeitung ist, wird zum Analysieren eines Kinesis-Streams mit EMR der laufende Stream in Stapel unterteilt. Jeder Stapel wird als Iteration bezeichnet. Jeder Iteration wird eine bei 0 beginnende Nummer zugewiesen. Die Begrenzungen jeder Iteration werden durch eine Startsequenz- und Endsequenznummer definiert. Iterationen werden dann durch EMR sequenziell verarbeitet.

Bei einem Fehlversuch wiederholt der Eingabe-Connector für EMR Kinesis die Iteration innerhalb des logischen Namens ab der bekannten Startsequenznummer der Iteration. Diese Funktionalität stellt sicher, dass nachfolgende Versuche für dieselbe Iteration genau dieselben Eingabedatensätze aus dem Kinesis-Stream wie vorherige Versuche aufweisen. Dies gewährleistet die idempotente (einheitliche) Verarbeitung eines Kinesis-Streams.

Sie können in Ihrem jeweiligen Hadoop-Tool die logischen Namen und Iterationen als Laufzeitparameter angeben. Beispielsweise enthält das Codebeispiel im Tutorial-Abschnitt „Running queries with checkpoints“ eine geplante Hive-Abfrage, die einen logischen Namen für die Abfrage bestimmt, und die Iteration mit jeder erfolgreichen Ausführung des Auftrags numerisch erhöht.

In den Tutorials finden Sie auch ein Cron-Beispielskript für die Zeitplanung.

F: Wo sind die Metadaten für logische Namen und Iterationen gespeichert?

Die Metadaten, die dem Eingabe-Connector für EMR Kinesis das Arbeiten in geplanten regelmäßigen Workflows ermöglichen, sind in Amazon DynamoDB gespeichert. Sie müssen eine Amazon Dynamo DB-Tabelle bereitstellen und sie als Eingabeparameter für den Hadoop-Auftrag angeben. Sie müssen für die Ermöglichung dieser Integration einen geeigneten Wert für E/As pro Sekunde konfigurieren. Im Tutorial für die ersten Schritte finden Sie weitere Informationen zum Einrichten Ihrer Amazon Dynamo DB-Tabelle.

F: Was geschieht, wenn eine Iterationsverarbeitung fehlschlägt?

Iterations-IDs sind vom Benutzer angegebene Werte, die einer bestimmten Begrenzung (Start- und Endsequenznummern) in einem Kinesis-Stream zugeordnet sind. Diesen Begrenzungen entsprechende Daten werden in der Phase "Map" des MapReduce-Auftrags geladen. Diese Phase wird vom Framework verwaltet und bei misslungener Auftragsausführung automatisch wiederholt (standardmäßig dreimal). Wenn alle Wiederholungen nicht erfolgreich sind, haben Sie weitere Möglichkeiten, die Verarbeitung ab der letzten erfolgreichen Datenbegrenzung oder vorherigen Datenbegrenzungen zu starten. Dieses Verhalten wird durch Angabe des Parameters "kinesis.checkpoint.iteration.no parameter" während der Verarbeitung gesteuert. Weitere Informationen zur Konfiguration dieses Werts für verschiedene Tools im Hadoop-Entwicklungssystem finden Sie im Tutorial für die ersten Schritte.

F: Kann ich mehrere Abfragen für dieselbe Iteration ausführen?

Ja. Sie können eine zuvor ausgeführte Iteration angeben, indem Sie den Parameter "kinesis.checkpoint.iteration.no" für die nachfolgende Verarbeitung angeben. Diese Implementierung stellt sicher, dass nachfolgende Läufe für dieselbe Iteration genau dieselben Eingabedatensätze aus dem Kinesis-Stream wie vorherige Läufe aufweisen.

F: Was passiert, wenn Datensätze in einer Iteration im Kinesis-Stream ablaufen?

Falls die Anfangs- oder Endsequenznummer einer Iteration zu Datensätzen gehört, die im Kinesis-Stream abgelaufen sind, schlägt der Hadoop-Auftrag fehl. Sie müssen einen anderen logischen Namen verwenden, um Daten ab dem Anfang des Kinesis-Streams zu verarbeiten.

F: Kan ich Data per PUSH-Verfahren aus EMR in den Kinesis-Stream verlagern?

Nein. Der Kinesis-Connector für EMR unterstützt derzeit kein Zurückschreiben von Daten in einen Kinesis-Stream.

F: Ermöglicht der EMR Hadoop-Eingabe-Connector für Kinesis die fortlaufende Stream-Verarbeitung?

Das Hadoop MapReduce-Framework ist ein Stapelverarbeitungssystem. Als solches unterstützt es keine fortlaufenden Abfragen. Es gibt im Hadoop-Entwicklungssystem jedoch mittlerweile Frameworks wie Twitter Storm und Spark Streaming, die Entwicklern das Erstellen von Anwendungen für die fortlaufende Stream-Verarbeitung ermöglichen. Einen Storm-Connector für Kinesis finden Sie hier auf GitHub. Ein Tutorial mit einer Erläuterung der Einrichtung von Spark Streaming für EMR und Ausführung fortlaufender Abfragen finden Sie hier.

Darüber hinaus können Entwickler die Kinesis-Client-Bibliothek nutzen, um Anwendungen für die Stream-Verarbeitung in Echtzeit zu entwickeln. Weitere Informationen zum Entwickeln angepasster Kinesis-Anwendungen finden Sie hier in der Kinesis-Dokumentation.

F: Kann ich Anmeldeinformationen für den Lesezugriff auf einen Kinesis-Stream angeben, der in einem anderen AWS-Konto verwaltet wird?

Ja. Sie können Streams in einem anderen AWS-Konto lesen, indem Sie die entsprechenden Anmeldeinformationen des Kontos angeben, zu dem der Kinesis-Stream gehört. Der Kinesis-Connector nutzt standardmäßig die vom Benutzer angegebenen Anmeldeinformationen, die bei der Erstellung des Clusters festgelegt werden. Sie können diese Anmeldeinformationen außer Kraft setzen, um auf Streams in anderen AWS-Konten zuzugreifen, indem Sie die Parameter "kinesis.accessKey" und "kinesis.secretKey" festlegen. Die folgenden Beispiele zeigen, wie Sie die Parameter "kinesis.accessKey" und "kinesis.secretKey" in Hive und Pig festlegen.

Codebeispiel für Hive:
...
STORED BY
'com.amazon.emr.kinesis.hive.KinesisStorageHandler'
TBLPROPERTIES(
"kinesis.accessKey"="AwsAccessKey",
"kinesis.secretKey"="AwsSecretKey",
);

Codebeispiel für Pig:

raw_logs = LOAD 'AccessLogStream' USING com.amazon.emr.kinesis.pig.Kin
esisStreamLoader('kinesis.accessKey=AwsAccessKey', 'kinesis.secretKey=AwsSecretKey'
) AS (line:chararray);

F: Kann ich mehrere parallele Abfragen auf einen Kinesis-Stream anwenden? Hat das Auswirkungen auf die Leistung?

Ja. Ein Kunde kann mithilfe gesonderter logischer Namen für jede Abfrage mehrere Abfragen parallel auf denselben Stream anwenden. Das Lesen von Daten aus einer Shard innerhalb eines Kinesis-Streams unterliegt einer Begrenzung der Datenübertragungsrate auf 2 MB/s. Bei N parallelen Abfragen am gleichen Stream würde jede also eine Ausgaberate von etwa (2/n) MB/s pro Stream-Shard erhalten. Dies kann die Verarbeitung verlangsamen und mitunter auch zu einem Fehlschlagen der Abfragen führen.

F: Kann ich mehrere Kinesis-Streams in EMR verknüpfen und analysieren?

Ja. In Hive können Sie beispielsweise zwei Tabellen erstellen, die zwei verschiedenen Kinesis-Streams zugeordnet sind, und Joins zwischen den Tabellen erstellen.

F: Verarbeitet der Kinesis-Connector für EMR Kinesis-Skalierungsereignisse wie das Zusammenführen und Aufteilen von Ereignissen?

Ja. Die Implementierung verarbeitet das Zusammenführen und Aufteilen von Ereignissen. Der Kinesis-Connector bindet einzelne Kinesis-Shards (die logische Skalierungseinheit in einem Kinesis-Stream) an Hadoop MapReduce-Zuordnungsaufgaben (Map). Jede eindeutige Shard, die in einem Stream im logischen Zeitraum einer Iteration vorhanden ist, resultiert in genau einer Zuordnungsaufgabe. Bei einem Aufteilungs- oder Zusammenführungsereignis für eine Shard stellt Kinesis neue eindeutige Shard-IDs bereit. Dies hat zur Folge, dass das MapReduce-Framework weitere Zuordnungsaufgaben zum Lesen von Daten aus Kinesis bereitstellt. Dies alles erfolgt vom Benutzer unbemerkt.

F: Was passiert, wenn es in meinem Stream Phasen der Inaktivität gibt?

Die Implementierung erlaubt die Konfiguration des Parameters "kinesis.nodata.timeout". Beispiel: In einem Szenario, in dem "kinesis.nodata.timeout" auf 2 Minuten festgelegt ist, wollen Sie eine Hive-Abfrage alle 10 Minuten ausführen. Beachten Sie außerdem, dass einige Daten seit der letzten Iteration (vor 10 Minuten) in den Stream geschrieben wurden. Doch aktuell gehen keine neuen Datensätze ein, d. h. es gibt eine Inaktivität im Stream. In diesem Fall stellt der Kinesis-Connector fest, wenn die aktuelle Iteration der Abfrage gestartet wird, dass keine neue Datensätze eingehen. Der Connector fragt den Stream weitere 2 Minuten ab. Falls in diesem Zeitraum keine Datensätze eingehen, wird er beendet und verarbeitet nur die Datensätze, die bereits im aktuellen Stapel des Streams gelesen wurden. Wenn jedoch neue Datensätze eingehen, bevor das Intervall von "kinesis.nodata.timeout" abgelaufen ist, wartet der Connector ein weiteres Intervall ab, das dem Parameter "kinesis.iteration.timeout" entspricht. In den Tutorials erfahren Sie, wie diese Parameter festgelegt werden.

F: Wie debugge ich eine Abfrage, die bei jeder Iteration ständig fehlschlägt?

Bei einem Verarbeitungsfehler können Sie dieselben Tools nutzen, mit denen Sie derzeit Hadoop-Aufträge debuggen. Dazu zählt die Amazon EMR-Webkonsole, über die Sie Fehlerprotokolle öffnen und untersuchen können. Weitere Details zum Debugging eines EMR-Auftrags finden Sie hier.

F: Was passiert, wenn ich eine DynamoDB-Tabelle angebe, auf die ich keinen Zugriff habe?

Der Auftrag schlägt fehl und die Ausnahme wird in den Fehlerprotokollen des Auftrags angezeigt.

F: Was geschieht, wenn der Auftrag nicht fehlschlägt, das Setzen von Prüfpunkten in DynamoDB hingegen schon?

Der Auftrag schlägt fehl und die Ausnahme wird in den Fehlerprotokollen des Auftrags angezeigt.

F: Wie maximiere ich den Lesedurchsatz aus dem Kinesis-Stream in EMR?

Der Durchsatz aus dem Kinesis-Stream steigt mit der verwendeten Instance-Größe und der Datensatzgröße im Kinesis-Stream. Wir empfehlen für diese Funktionalität als Instance-Größe mindestens m1.xlarge für sowohl den Haupt- als auch die Kernknoten. 

Service Level Agreement

F: Was it die Amazon EMR Service Level Agreement?

Bitte beachten Sie unsere Service Level Agreement.

Weitere Informationen zu den Preisen von Amazon EMR

Zur Seite mit den Preisen
Bereit zum Entwickeln?
Erste Schritte mit Amazon EMR
Haben Sie noch Fragen?
Kontakt