Amazon EMR – Häufig gestellte Fragen
Allgemeines
F: Was ist Amazon EMR?
Amazon EMR ist die branchenführende Cloud-Big-Data-Plattform für die Datenverarbeitung, interaktive Analyse und Machine Learning mit Open-Source-Frameworks wie Apache Spark, Apache Hive und Presto. Mit EMR können Sie die Analyse im Petabyte-Maßstab zu weniger als der Hälfte der Kosten herkömmlicher vor Ort-Lösungen und mehr als 1,7x schneller als mit Standard-Apache Spark ausführen.
F: Warum sollte ich Amazon EMR verwenden?
Mit Amazon EMR können Sie sich auf die Umwandlung und Analyse Ihrer Daten konzentrieren, ohne sich dabei um die Verwaltung der Rechenkapazität oder Open-Source-Anwendungen sorgen zu müssen. Sie können auch Geld sparen. Mit EMR können Sie sofort so viel oder so wenig Kapazität auf Amazon EC2 bereitstellen, wie Sie wollen, und Skalierungsregeln erstellen, um den wechselnden Rechenbedarf zu verwalten. Sie können CloudWatch-Alarme erstellen, damit Sie bei Änderungen an der Infrastruktur benachrichtigt werden und sofort handeln können. Wenn Sie Kubernetes verwenden, können Sie auch mit EMR Ihre Workloads an Amazon-EKS-Cluster absenden. Egal ob Sie EC2 oder EKS verwenden, profitieren Sie von EMRs optimierten Laufzeiten, die Ihre Analyse beschleunigen und Ihnen Zeit und Geld sparen.
Q: Wie kann ich Amazon EMR bereitstellen und verwalten?
Sie können Ihre Workloads auf EMR mit Amazon EC2, Amazon Elastic Kubernetes Service (EKS) oder On-Premises-AWS-Outposts bereitstellen. Sie können Ihre Workloads mit der EMR-Konsole, API, SDK oder CLI ausführen und verwalten, und sie mit Amazon Managed Workflows for Apache Airflow (MWAA) oder AWS Step Functions orchestrieren. Für ein interaktives Erlebnis, können Sie EMR Studio oder SageMaker Studio verwenden.
F: Was sind die ersten Schritte zum Einstieg in Amazon EMR?
F: Wie zuverlässig ist Amazon EMR?
Bitte beachten Sie unser Service Level Agreement.Entwicklung & Debugging
F: Wo finde ich Codebeispiele?
Beispielcode finden Sie in diesen Artikeln und Tutorials. Wenn Sie EMR Studio verwenden können Sie die Funktionen anhand einer Reihe von Notebook-Beispielen erkunden.
F: Wie entwickle ich eine Anwendung zur Datenverarbeitung?
Sie können Data-Science- und Data-Engineering-Anwendungen, die in R, Python, Scala und PySpark geschrieben sind, mit Amazon EMR Studio entwickeln, visualisieren und debuggen. Sie können auch einen Datenverarbeitungs-Auftrag auf Ihrem Desktop erstellen, zum Beispiel mit Eclipse, Spyder, PyCharm oder RStudio, und ihn auf Amazon EMR ausführen. Zusätzlich können Sie JupyterHub oder Zeppelin in der Softwarekonfiguration auswählen, wenn Sie einen neuen Cluster erstellen, und Ihre Anwendung auf Amazon EMR mit einer oder mehreren Instances 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 Ihrem Cluster zu implementieren, oder zum Debugging.
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-Managementkonsole einsehen oder über die Befehlszeile, das SDK oder APIs den Status Ihres Clusters 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 Betriebssystemversionen unterstützt Amazon EMR?
Amazon EMR 5.30.0 und neuer und die Amazon-EMR-6.x-Serie basieren auf Amazon Linux 2. Alternativ können Sie eine eigene AMI angeben, die Sie auf Basis der Amazon Linux 2 erstellen. Dies ermöglicht Ihnen eine ausgefeilte Vorkonfiguration für nahezu jede Anwendung. Weitere Informationen finden Sie unter Verwenden eines benutzerdefinierten AMI.
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. Sie können auch statisch kompilierte ausführbare Dateien 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 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. Wenn Sie Amazon EMR Studio verwenden, können Sie Tools wie Spark UI und YARN Timeline Service starten, um das Debugging zu vereinfachen. Sie haben mehrere Optionen, um außerhalb des Clusters Zugriff auf persistente Anwendungs-Benutzeroberflächen für Apache Spark, Tez UI und den YARN-Timeline-Server zu erhalten, sowie mehrere Benutzeroberflächen für Cluster-Anwendungen und eine zusammenfassende Ansicht des Anwendungsverlaufs aller YARN-Anwendungen in der EMR-Konsole. Sie können sich auch mit Ihrem Master-Knoten über SSH verbinden und Cluster-Instances mit diesen Web-Schnittstellen anzeigen. Weitere Informationen erhalten Sie in unserer Dokumentation.
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 for 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.
- 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.
- Sie können Unternehmensanmeldeinformationen von Ihrem Identitätsanbieter mithilfe von AWS IAM Identity Center (Nachfolger von AWS SSO) verwenden, um sich bei EMR Studio anzumelden.
- 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.
- 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.
- 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 IAM Identity Center (Nachfolger von AWS SSO) ist der Anbieter von Single-Sign-On-Services für EMR Studio. Die Liste der von AWS IAM 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: 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 Laufzeit-Bibliotheken installieren, die Ihre Spark-Anwendung auf dem Cluster verwendet. Sie können Notebook-bezogene Bibliotheken einfach innerhalb einer Notebook-Zelle installieren. Sie können auch Jupyter-Notebook-Kernels und Python-Bibliotheken auf einem Cluster-Master-Knoten installieren, entweder innerhalb einer Notebook-Zelle oder während Sie über SSH mit dem Master-Knoten des Clusters veebunden sind. Weitere Informationen finden Sie in der Dokumentation. 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.
F: Wo werden die Notebooks gespeichert?
Notebook-Dateien und WorkSpace 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.
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: Auf welchen Rechenressourcen kann ich Notebooks in EMR Studio 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 IAM Identity Center (Nachfolger von 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 Benutzerhandbuch für AWS Identity and Access Management.
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.
F: Was kostet die Verwendung von Amazon EMR Studio?
Amazon EMR Studio wird Ihnen ohne zusätzliche Kosten zur Verfügung gestellt. Anwendbare Gebühren für Amazon-Simple-Storage-Service-Speicher und für Amazon-EMR-Cluster fallen an, wenn Sie EMR Studio verwenden. Weitere Informationen zu Preisoptionen und Details finden Sie auf Amazon EMR Preise.
EMR-Notebooks
F: Was sind EMR-Notebooks?
Wir empfehlen neuen Kunden die Verwendung von Amazon EMR Studio und nicht 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. Obwohl wir empfehlen, dass neue Kunden EMR Studio verwenden, werden EMR-Notebooks zu Kompatibilitäts-Zwecken auch unterstützt.
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: Welche EMR-Versionen werden von EMR-Notebooks unterstützt?
EMR-Notebooks können an EMR-Cluster mit EMR-Version 5.18.0 oder neuer angeschlossen werden.
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/
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. Klicken Sie hier, um mehr über Amazon-EC2-Capacity-Reservations zu erfahren.
F: Sind Steuern bereits in den Preisen enthalten?
Falls nicht anders angegeben, gelten unsere Preise zuzüglich anfallender Steuern und Abgaben, darunter MwSt. und Umsatzsteuer. Bei Kunden mit japanischer Rechnungsadresse unterliegt die Nutzung von AWS-Services der japanischen Verbrauchssteuer. Weitere Informationen.
Sicherheits- und Zugriffskontrolle
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. Sie können zusätzlich Amazon EMR öffentlichen Zugriff verweigern in jeder Ihrer Regionen konfigurieren, um die Erstellung von Clustern zu verhindern, falls eine Regel den öffentlichen Zugriff auf einem Port erlaubt, den Sie nicht als Ausnahme angeführt haben.
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-Managementkonsole für CloudTrail können Sie CloudTrail aktivieren.
F: Wie kontrolliere ich, auf was EMR-Benutzer in Amazon-S3 zugreifen können?
Amazon-EMR-Anwendungsprozesse verwenden standardmäßig EC2-Instance-Profile, wenn sie andere AWS-Services abrufen. Bei Multi-Tenant-Clustern bietet Amazon EMR drei Optionen zum Verwalten des Benutzerzugriffs auf Amazon-S3-Daten.
- Integration mit AWS Lake Formation ermöglicht es Ihnen, differenzierte Autorisierungsrichtlinien in AWS Lake Formation zu definieren und zu verwalten, um auf Datenbanken, Tabellen und Spalten im AWS-Glue-Datenkatalog zuzugreifen. Sie können die Autorisierungsrichtlinien bei Aufgaben durchsetzen, die über Amazon-EMR-Notebooks und Apache Zeppelin für interaktive EMR-Spark-Workloads eingereicht wurden, und Prüfungs-Ereignisse an AWS CloudTrail senden. Wenn Sie diese Integration aktivieren, aktivieren Sie auch Federated Single Sign-On für EMR Notebooks oder Apache Zeppelin von Enterprise-Identitätssystemen, die mit Security Assertion Markup Language (SAML) 2.0 kompatibel sind.
- Die native Integration mit Apache Ranger ermöglicht es Ihnen, einen neuen oder bestehenden Apache-Ranger-Server einzurichten, um differenzierte Autorisierungsrichtlinien für Benutzer zum Zugriff auf Datenbanken, Tabellen und Spalten von Amazo- S3-Daten per Hive Metastore zu definieren und zu verwalten. Apache Ranger ist ein Open-Source-Tool zur Aktivierung, Überwachung und Verwaltung umfassender Datensicherheit auf der Hadoop-Plattform.
Diese native Integration ermöglicht es Ihnen, drei Arten von Autorisierungsrichtlinien auf dem Apache-Ranger-Policy-Admin-Server zu definieren. Sie können die Autorisierung auf Tabellen-, Spalten- und Zeilenebene für Hive, die Autorisierung auf Tabellen- und Spaltenebene für Spark und die Autorisierung auf Präfix- und Objektebene für Amazon S3 festlegen. Amazon EMR installiert und konfiguriert automatisch die entsprechenden Apache Ranger-Plugins auf dem Cluster. Diese Ranger-Plugins synchronisieren sich mit dem Policy-Admin-Server für Autorisierungsrichtlinien, setzen die Datenzugriffskontrolle durch und senden Prüfereignisse an Amazon CloudWatch Logs.
- Amazon EMR User Role Mapper ermöglicht es Ihnen, AWS-IAM-Berechtigungen zum Verwalten des Zugriffs auf AWS-Ressourcen zu nutzen. Sie können Zuordnungen zwischen Benutzern (oder Gruppen) und benutzerdefinierten IAM-Rollen erstellen. Ein Benutzer oder eine Gruppe kann nur auf die Daten zugreifen, wenn es die benutzerdefinierte IAM-Rolle erlaubt. Diese Funktion ist derzeit über AWS-Labs verfügbar.
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 Availability 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. Sie haben auch die Option, Ihre Zuweisung für die günstigsten On-Demand-Instances und optimale Spot-Kapazität zu optimieren, oder On-Demand-Kapazitäts-Reservationen zu nutzen.
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 AWS Local Zones 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 EC2
F: Was ist ein Amazon-EMR-Cluster?
Ein Cluster ist eine Sammlung von Amazon-Elastic-Compute-Cloud-Instances (Amazon EC2). Jeder Instance in dem Cluster wird ein Knoten genannt und hat eine Rolle innerhalb des Clusters, die als Knotentyp bezeichnet wird. Amazon EMR installiert auch verschiedene Softwarekomponenten auf jedem Knotentyp und gibt dabei jedem Knoten eine Rolle in einer verteilten Anwendung wie Apache Hadoop. Jeder Cluster hat einen mit "j-" beginnenden eindeutigen Bezeichner.
F: Was sind Knotentypen in einem Cluster?
Ein Amazon-EMR-Cluster hat drei Typen von Knoten:
- Master-Knoten: Ein Knoten, der den Cluster verwaltet indem er Softwarekomponenten ausführt, um die Verarbeitung von Daten und Aufgaben unter den anderen Knoten zu verteilen und zu koordinieren. Der Master-Knoten verfolgt den Aufgabestatus und Überwacht den Zustand des Clusters. Jeder Cluster hat einen Master-Knoten und es ist möglich, einen Einzelknoten-Cluster mit nur dem Master-Knoten zu erstellen.
- Core-Knoten: Ein Knoten mit Softwarekomponenten, die Aufgaben ausführen und Daten in dem Hadoop Distributed File System (HDFS) auf Ihrem Cluster speichern. Multi-Knoten-Cluster haben mindestens einen Core-Knoten.
- Aufgaben-Knoten: Ein Knoten mit Softwarekomponenten, die nur Aufgaben ausführen und keine Daten in HDFS speichern. Aufgaben-Knoten sind optional.
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 – Der Cluster beginnt beim Start damit, EC2-Instances zu konfigurieren.
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 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: 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?
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: 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 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 zur 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.
EMR Serverless
Allgemeines
F: Was ist Amazon EMR Serverless?
Amazon EMR Serverless ist eine neue Bereitstellungsoption in Amazon EMR, mit der Sie Big-Data-Frameworks wie Apache Spark und Apache Hive ausführen können, ohne Cluster konfigurieren, verwalten und skalieren zu müssen.
F: Wer kann EMR Serverless verwenden?
Dateningenieure, -analysten und -wissenschaftler können EMR Serverless verwenden, um Anwendungen mit Open-Source-Framwirks wie Apache Spark und Apache Hive zu erstellen. Sie können diese Frameworks verwenden, um Daten zu transformieren, interaktive SQL-Abfragen und Machine-Learning-Workload auszuführen.
F: Wie kann ich mit EMR Serverless beginnen?
Sie können EMR Studio, AWS CLI oder APIs verwenden, um Aufträge einzureichen, den Status des Auftrags nachzuverfolgen und Ihre Daten-Pipelines zu erstellen, um sie auf EMR Serverless auszuführen. Die ersten Schritte mit EMR Studio bestehen darin, sich bei der AWS-Managementkonsole anzumelden und zu Amazon EMR unter der Analytik-Kategorie zu navigieren und Amazon EMR Serverless auszuwählen. Befolgen Sie die Anweisungen in der AWS-Managementkonsole, navigieren Sie zu Amazon EMR unter der Analytik-Kategorie und wählen Sie Amazon EMR Serverless aus. Befolgen Sie die Anweisungen im Handbuch „Erste Schritte“, um Ihre EMR-Serverless-Anwendung zu erstellen und Aufträge einzureichen. Lesen Sie die SeiteBedienung Ihrer Anwendung auf der AWS-CLI, um Ihre Anwendungen mit CLI zu starten und Aufträge einzureichen. Es befinden sich auch Beispiele zu EMR Serverless und ein Beispielcode in unserem GitHub-Repository.
Q: Welche Open-Source-Frameworks werden von EMR Serverless unterstützt?
EMR Serverless unterstützt aktuell Apache-Spark- und Apache-Hive-Engines. Bitte schicken Sie eine Anfrage an emr-feedback@amazon.com, wenn Sie Support für zusätzliche Frameworks wie Apache Presto oder Apache Flink benötigen.
F: In welchen Regionen ist EMR Serverless verfügbar?
EMR Serverless ist in folgenden AWS-Regionen verfügbar: Asien-Pazifik (Mumbai), Asien-Pazifik (Seoul), Asien-Pazifik (Singapur), Asien-Pazifik (Sydney), Asien-Pazifik (Tokio), Kanada (Zentral), Europa (Frankfurt), Europa (Irland), Europa (London), Europa (Paris), Europa (Stockholm), Südamerika (São Paulo), USA Ost (Nord-Virginia), USA Ost (Ohio), USA West (Nordkalifornien) und USA West (Oregon).
F: Was ist der Unterschied zwischen Amazon EMR Serverless, Amazon EMR auf EC2, Amazon EMR in AWS Outposts und Amazon EMR auf EKS?
Amazon EMR bietet die Möglichkeit, Anwendungen auf EC2-basierten Clustern, EKS-Clustern, Outposts oder Serverless auszuführen. EMR auf EC2-Cluster eignen sich für Kunden, die maximale Kontrolle und Flexibilität über die Ausführung ihrer Anwendung benötigen. Mit EMR auf EC2-Clustern können Kunden den Typ der EC2-Instance auswählen, um anwendungsspezifische Leistungsbedürfnisse zu erfüllen, die Linux-AMI anzupassen, die EC2-Instance-Konfiguration anzupassen, Open-Source-Frameworks anzupassen und zu erweitern und um zusätzliche benutzerdefinierte Software auf Cluster-Instances zu installieren. Amazon EMR auf EKS eignet sich für Kunden, die die EKS standardisieren möchten, um Cluster bei allen Anwendungen zu verwalten oder die verschiedenen Versionen eines Open-Source-Frameworks auf dem gleichen Cluster zu verwenden. Amazon EMR auf AWS Outposts eignet ist für Kunden, die EMR näher bei ihrem Rechenzentrum innerhalb eines Outpost ausführen möchten. EMR Serverless eignet sich für Kunden, die die Verwaltung und den Betrieb von Clustern vermeiden möchten und es vorziehen, Anwendungen mit Open-Source-Frameworks auszuführen.
F: Was sind einige der Unterschiede zwischen den Funktionen von EMR Serverless und Amazon EMR auf EC2?
|
|
|
Amazon EMR auf EKS |
|
|
|
J |
Ausfallsicherheit gegen Availability-Zone-Fehlfunktionen |
|
|
J |
Automatische Hoch- und Herunterskalierung von Ressourcen nach Bedarf |
|
|
J |
Verschlüsselung für Daten im Ruhezustand |
|
|
J |
|
|
Spark |
|
|
|
|
N |
Support für Apache Hudi und Apache Iceberg |
J |
J |
J |
Integration mit Apache Ranger für Berechtigungskontrolle auf Tabellen- und Spaltenebene |
|
|
N |
Images des Betriebssystems anpassen |
|
|
J |
Installierte Open-Source-Frameworks anpassen |
J |
J |
J |
Zusätzliche Bibliotheken und Abhängigkeiten anpassen und laden |
J |
J |
J |
Workloads von SageMaker Studio im Rahmen des Machine-Learning-Workflows (ML) ausführen |
N |
|
N |
Verbindung zu selbst-gehosteten Jupyter Notebooks herstellen |
N |
J |
J |
Pipelines mit Apache Airflow und Amazon Managed-Workflows für Apache Airflow (MWAA) erstellen und orchestrieren |
|
|
J |
Pipelines mit AWS Step Functions erstellen und orchestrieren |
J |
|
J |
F: Welche EMR-Releases werden in EMR Serverless unterstützt?
EMR Serverless unterstützt die EMR-Release-Labels 6.6 und höher. Mit EMR Serverless erhalten Sie die gleiche leistungsoptimierte EMR-Laufzeit, die in anderen EMR-Bereitstellungsoptionen verfügbar ist. Sie ist zu 100 % API-kompatibel mit standardmäßigen Open-Source-Frameworks.
F: Sind Gebühren für vorinitialisierte Kapazität in BilledResourceUtilization enthalten?
Bei BilledResourceUtilization wird ausschließlich die Dauer eingerechnet, für die die vorinitialisierte Kapazität für den Auftrag genutzt wurde. Die Leerlaufzeit der betreffenden Kapazität bleibt unberücksichtigt.
F: Wo liegt der Unterschied zwischen BilledResourceUtilization und TotalResourceUtilization?
Wenn die Laufzeitdauer eines Workers unter 60 Sekunden liegt, wird sie bei BilledResourceUtilization als 60 Sekunden gezählt. Bei TotalResourceUtilization hingegen wird sie auf die nächste Sekunde aufgerundet. Darüber hinaus werden bei BilledResourceUtilization 20 GB freier Speicher von der Berechnung ausgeschlossen.
Anwendungen, Worker und Aufträge
F: Was ist eine Anwendung und wie kann ich sie erstellen?
Mit Amazon EMR Serverless können Sie eine oder mehrere EMR-Serverless-Anwendungen erstellen, die Analytik-Frameworks der Open Source verwenden. Zur Erstellung der Anwendung müssen Sie die folgenden Attribute festlegen: 1) Die Amazon-EMR-Release-Version für das Open-Source-Framework, das Sie verwenden möchten und 2) Die spezifischen Analytik-Engines, die Ihre Anwendung verwenden soll, wie Apache Spark 3.1 oder Apache Hive 3.0. Nach Erstellung einer Anwendung können Sie damit anfangen, die Datenverarbeitungsaufträge oder interaktiven Anfragen zu Ihrer Anwendung auszuführen.
F: Was versteht man unter Worker?
Eine EMR-Serverless-Anwendung verwendet intern Worker zur Ausführung Ihrer Workloads. Wenn ein Auftrag eingereicht wird, berechnet EMR Serverless die Ressourcen, die für die Aufgabe benötigt werden und plant Worker ein. EMR Serverless teilt Ihre Workloads in Aufgaben, Bereitstellungen auf und stellt die Worker mit dem Open-Source-Framework ein und nimmt sie nach Abschluss des Auftrags außer Betrieb. EMR Serverless skaliert die Worker automatisch hoch oder herunter, je nach der Workload und dem Paralellismus, die bei jeder Phase des Auftrags erforderlich sind. Dadurch wird die Schätzung der Anzahl der zur Ausführung Ihrer Workloads erforderlichen Worker überflüssig. Die Standard-Größe dieser Worker basiert auf dem Type Ihrer Anwendung und auf der Amazon-EMR-Release-Version. Es ist möglich, diese Größen beim Terminieren der Ausführung eines Auftrags zu überschreiben.
F: Kann ich die Mindest- und Höchstzahl der Worker angeben, die meine Aufträge benutzen können?
Mit EMR Serverless können Sie die Mindest- und Höchstzahl der gleichzeitig arbeitenden Worker und auch die vCPU- und Speicherkonfiguration für Worker angeben. Es ist auch möglich, die maximalen Kapazitätsgrenzen der Ressourcen der Anwendung festzulegen, um Kosten kontrollieren zu können.
F: Wann sollte ich mehrere Anwendungen erstellen?
Denken Sie darüber nach, mehrere Anwendungen zu erstellen, wenn Sie die folgenden Schritte ausführen:
- Verwendung verschiedener Open-Source-Frameworks
- Verwendung verschiedener Versionen des Open-Source-Frameworks für verschiedene Anwendungsfälle
- Durchführung von A/B-Tests beim Aktualisieren von einer Version auf die andere
- Aufrechterhaltung separater logischer Umgebungen für Test- und Fertigungsszenarien
- Bereitstellung separater logischer Umgebungen für verschiedene Teams mit unabhängigen Kostenkontrollen und Nutzungsverfolgungen
- Trennung verschiedener Branchenanwendungen
F: Kann ich die Standard-Eigenschaften einer EMR-Serverless-Anwendung nach der Erstellung ändern?
Ja. Sie können die Anwendungseigenschaften wie Anfangskapazität, maximale Kapazitätsgrenzen und Netzwerkkonfigurationen mit EMR Studio oder dem Anruf update-application API/CLI ändern.
F: Wann sollte ich eine Anwendung mit einem vorinitialisierten Pool von Workern erstellen?
Eine EMR-Serverless-Anwendung ohne vorinitialisierte Worker braucht bis zu 120 Sekunden, um die erforderlichen Ressourcen festzulegen und sie bereitzustellen. EMR Serverless bietet eine optionale Funktion, die dafür sorgt, dass die Worker initialisiert bleiben und binnen Sekunden reaktionsbereit sind. Dadurch wird im Endeffekt ein einsatzbereiter Pool von Worker für eine Anwendung erstellt. Diese Funktion wird als vorinitialisierte Kapazität bezeichnet und kann für jede Anwendung konfiguriert werden, indem der Parameter der Anfangskapazität einer Anwendung festgelegt wird.
Die vorinitialisierte Kapazität ermöglicht Ihnen, sofort zu beginnen. Das ist optimal für die zeitkritische Implementierung von Aufträgen. Es ist möglich, die Anzahl der Worker anzugeben, die sie vorinitialisieren möchten, wenn Sie eine EMR-Serverless-Anwendung starten. Anschließend können die vorinitialisierten Worker verwendet werden, um die Aufträge zu starten, wenn Benutzer die Aufträge einreichen. Wenn der Auftrag eine größere Anzahl Worker erfordert als die Anzahl, die Sie vorinitialisiert haben, fügt EMR Serverless automatisch mehr Worker hinzu (bis zur gleichzeitigen Obergrenze, die Sie angeben). Nach Abschluss des Auftrags kehrt EMR Serverless automatisch zur Aufrechterhaltung der vorinitialisierten Worker zurück, die Sie angegeben haben. Die Worker werden automatisch ausgeschaltet, wenn sie 15 Minuten lang im Leerlauf waren. Sie können die Standard-Leerlaufzeit für Ihre Anwendung mit der updateApplication API oder EMR Studio ändern.
F: Wie reiche ich Aufträge auf EMR Serverless ein und wie verwalte ich sie?
Sie können EMR-Serverless-Aufträge mit EMR Studio, SDK/CLI oder unsere Apache-Airflow-Connectors einreichen und verwalten.
F: Wie kann ich Abhängigkeiten bei Aufträgen einfügen, die ich auf EMR Serverless ausführen möchte?
Für PySpark können Sie Ihre Python-Abhängigkeiten mit virtualenv verpacken und die Archivdatei mit der --archives-Option weiterleiten. dadurch können Ihre Worker die Abhängigkeiten während der Ausführung des Auftrags verwenden. Für Scala oder Java können Sie Ihre Abhängigkeiten als Jar-Datei verpacken, sie zu Amazon S3 hochladen und Sie mit den --jars- oder --packages-Optionen mit der Ausführung Ihres EMR-Serverless-Auftrags weiterleiten.
F: Unterstützen EMR-Serverless-Spark- und Hive-Anwendungen benutzerdefinierte Funktionen (UDFs)?
EMR Serverless unterstützt Java-basierte UDFs. Sie können Sie als Jar-Dateien verpacken, Sie zu S3 hochladen und Sie in Ihren Spark- oder HiveQL-Skripten verwenden.
F: Welche Worker-Konfigurationen unterstützt EMR Serverless?
Bitte lesen Sie Unterstützte Worker-Konfigurationen, um mehr zu erfahren.
F: Kann ich einen EMR-Serverless-Auftrag abbrechen, wenn die Ausführung länger dauert als gedacht?
Ja. Es ist möglich, einen laufenden EMR-Serverless-Auftrag vom EMR-Studio oder durch Anruf der cancelJobRun-API/CLI abzubrechen.
F: Kann ich bei den Workern zusätzlichen Speicher hinzufügen?
Sie können den Workern in EMR Serverless zusätzlichen Speicherplatz hinzufügen, indem Sie bei der Auftragsübermittlung die entsprechende Speicheroption auswählen. EMR Serverless bietet zwei kurzlebige Speicheroptionen:
- Standardspeicher: Diese Option beinhaltet standardmäßig 20 GB kurzlebigen Speicher pro Worker. Sie können dies bei der Auftragsübergabe anpassen und die Speicherkapazität von 20 GB auf 200 GB pro Mitarbeiter erhöhen.
- Shuffle-optimierter Festplattenspeicher: Diese Option bietet bis zu 2 TB kurzlebigen Speicher pro Worker, optimiert für arbeitsintensive Workloads.
F: Wo finde ich Codebeispiele?
EMR-Serverless-Codebeispiele befinden sich in unserer GitHub-Repository.
F: Welche Worker-Optionen sind in EMR Serverless verfügbar?
EMR Serverless bietet zwei Optionen für Worker: On-Demand-Worker und vorinitialisierte Worker.
On-Demand-Worker werden nur gestartet, wenn sie für einen Auftrag benötigt werden. Nach dessen Abschluss werden sie automatisch wieder freigegeben. So können Sie Geld sparen, da Sie nur für die tatsächlich genutzten Ressourcen zahlen und zusätzliche Kosten für ungenutzte Kapazität vermeiden. Bei On-Demand-Workern wird Ihre Anwendung je nach Workload nach oben oder unten skaliert, sodass Sie sich keine Gedanken über eine übermäßige oder nicht ausreichende Bereitstellung von Ressourcen machen müssen.
Vorinitialisierte Worker sind eine optionale Funktion, mit der Sie Worker bereithalten können, die in wenigen Sekunden reagieren. Damit wird praktisch ein aktiver Pool von Workern für eine Anwendung erstellt. So können Aufträge unverzüglich gestartet werden – ideal für iterative Anwendungen und zeitkritische Aufträge.
F: Kann ich serverlose EMR-Anwendungen in mehreren Availability Zones konfigurieren?
Ja, es ist möglich, serverlose EMR-Anwendungen in mehreren Availability Zones zu konfigurieren. Die Einrichtung mehrerer Availability Zones hängt von der Art der verwendeten Worker ab.
Wenn nur On-Demand-Worker eingesetzt werden, verteilt EMR Serverless Aufträge standardmäßig auf mehrere Availability Zones. Jeder Auftrag wird aber nur in einer Availability Zone ausgeführt. Sie können wählen, welche Availability Zones verwendet werden sollen, indem Sie ihnen Subnetze zuordnen. Bei Ausfall einer Availability Zone führt EMR Serverless den Auftrag automatisch in einer anderen fehlerfreien Availability Zone aus.
Bei Einsatz von vorinitialisierten Workern wählt EMR Serverless aus den von Ihnen angegebenen Subnetzen eine fehlerfreie Availability Zone aus. Aufträge werden dann in dieser Availability Zone übermittelt, bis Sie die Anwendung beenden. Bei Beeinträchtigung einer Availability Zone können Sie die Anwendung neu starten, um zu einer anderen fehlerfreien Availability Zone zu wechseln.
F: Kann ich eine Verbindung zu Datenspeichern in einer anderen Region herstellen?
EMR Serverless kann auf bestimmte AWS-Ressourcen in derselben Region nur dann zugreifen, wenn es ohne VPC-Konnektivität konfiguriert ist. Siehe den Abschnitt Überlegungen. Um auf AWS-Ressourcen in einer anderen Region oder auf AWS-fremde Ressourcen zuzugreifen, müssen Sie den VPC-Zugriff und ein NAT-Gateway einrichten, das die AWS-Ressourcen an öffentliche Endpunkte weiterleitet.
Überwachung und Debugging
F: Wie überwache ich Amazon-EMR-Serverless-Anwendungen und Auftrag-Ausführungen?
Amazon-EMR-Serverless-Anwendungs- und Auftragsmetriken werden alle 30 Sekunden auf Amazon CloudWatch veröffentlicht.
F: Wie starte ich UI und Tez UI mit EMR Serverless?
Im EMR-Studio können Sie einen laufenden oder abgeschlossenen EMR-Serverless-Auftrag auswählen und dann auf die Spark-UI- oder TEZ-UI-Schaltfläche klicken, um sie zu starten.
Sicherheits- und Datenkontrolle
F: Kann ich auf Ressourcen in meiner Amazon Virtual Private Cloud (VPC) zugreifen?
Ja. Sie können die Amazon-EMR-Serverless-Funktionen konfigurieren, um auf Ressourcen in Ihrer eigenen VPC zuzugreifen. Bitte lesen Sie den Abschnitt Konfiguration des VPC-Zugriffs in der Dokumentation,um mehr zu erfahren.
F: Welche Art Isolierung kann ich mit einer EMR-Serverless-Anwendung erhalten?
Jede EMR-Serverless-Anwendung ist von anderen Anwendungen isoliert und wird auf einer sicheren Amazon VPC ausgeführt.
vCPU-Kontingente basierend auf Kontoebene
F. Was verändert sich mit Service Quotas von Amazon EMR Serverless?
Amazon EMR Serverless führt ein neues Service Quota unter der Bezeichnung Max concurrent vCPUs per account ein. Dieses vCPU-basierte Kontingent erlaubt es Ihnen die maximale Anzahl von aggregierten CPUs, auf die Ihre Anwendungen innerhalb einer Region hochskalieren können, festzulegen. Das bestehende Anwendungslevel, worker-basierte Kontingente (Maximum active workers), wird nach dem 01. Februar 2023 nicht mehr unterstützt.
F. Wann kann ich das vCPU-Kontingent meines Kontos ansehen und verwalten?
Sie können Kontingenterweiterungen in der AWS -Service-Management-Konsole für Service Quotas ansehen, verwalten und abfragen. Weitere Informationen finden Sie im Benutzerhandbuch für Service Quotas im Abschnitt Anfordern einer Kontingenterhöhung.
F. Was ist der Unterschied zwischen einem vCPU-Kontingent auf Kontoebene und der maximumCapacity-Eigenschaft auf Anwendungsebene?
EMR Serverless bietet zwei Kostenkontrollen - 1/ Das Kontingent maximal gleichzeitig laufender vCPUs pro Konto wird über alle EMR-Serverless-Anwendungen in einer Region ihres Kontos verteilt. 2/ Der maximumCapacity-Parameter beschränkt die vCPUs einer bestimmten EMR-Serverless-Anwendung. Sie sollten das cVPU-basierte Kontingent nutzen, um die maximal gleichzeitig laufenden vCPUs, die von allen Anwendungen in einer Region genutzt werden, zu beschränken, und die maximumCapacity-Eigenschaft um die Ressourcen, die eine bestimmte Anwendung nutzt, zu limitieren. Zum Beispiel: Wenn Sie 5 Anwendungen haben und jede kann auf bis zu 1 000 vCPUs hochskalieren, dann setzten Sie die maximumCapacity-Eigenschaft auf 1 000 vCPUs für jede Anwendung und konfigurieren Sie die vCPU-Kontingente auf Kontoebene auf 5 mal 1 000 = 5 000vCPUs.
F. Wie weiß ich, ob ich mein vCPU-basiertes Kontokontingent erreicht habe?
Wenn Sie Ihr vCPU-Kontingent auf Kontoebene überschreiten, wird EMR Serverless aufhören, neue Kapazitäten bereitzustellen. Wen sie nach dem Erreichen des Kontingents eine neue Anwendung erstellen, wird die Erstellung fehlschlagen und es erscheint eine Fehlermeldung „Anwendungserstellung fehlgeschlagen, Sie haben das Service Quota maximaler gleichzeitiger vCPUs pro Konto überschritten. Sie können ihre Service Quota über die AWS-Service-Quotas-Konsole ansehen und verwalten.” Wenn Sie einen neuen Auftrag eingeben, nachdem das Kontingent überschritten wurde, wird der Auftrag fehlschlagen und es erscheint eine Fehlermeldung: „Auftrag fehlgeschlagen, denn Sie haben das Service Quota maximaler gleichzeitiger vCPUs pro Konto überschritten. Sie können ihre Service Quota über die AWS-Service-Quotas-Konsole ansehen und verwalten.” Weitere Details finden Sie in der Dokumentation.
Preise
F: Wie hilft Amazon EMR Serverless dabei, Kosten bei Big-Data-Bereitstellungen zu sparen?
Es gibt drei Möglichkeiten, mit denen Amazon EMR Serverless dabei helfen kann, Kosten zu sparen. Erstens gibt es keinen betrieblichen Verwaltungsaufwand für die Verwaltung, Sicherung und Skalierung von Clustern. Zweitens skaliert EMR Serverless die Worker automatisch in jeder Verarbeitungsphase Ihres Auftrags hoch und skaliert sie herunter, wenn sie nicht benötigt werden. Ihnen werden aggregierte vCPU, Arbeitsspeicher- und Speicher-Ressourcen von Beginn der Ausführung des Workers bis zu seinem Abschluss in Rechnung gestellt. Diese Zeit wird dabei auf die nächste Sekunde aufgerundet, beträgt jedoch minimal eine Minute. Beispielsweise könnte Ihr Auftrag 10 Worker für die nächsten 10 Minuten der Verarbeitung des Auftrags und 50 Worker für die nächsten 5 Minuten erfordern. Mit der präzisen automatischen Skalierung entstehen Kosten nur für 10 Worker für 10 Minuten und für 50 Worker für 5 Minuten. Infolgedessen müssen Sie nicht für unzureichend benutzte Ressourcen zahlen. Drittens verfügt EMR Serverless über die leistungsoptimierte Ausführungszeit von Amazon EMR für Apache Spark und Apache Hive und Presto. Die Amazon-EMR-Ausführungszeit ist API-kompatibel und zweimal so schnell wie die Standard-Engines für die Open-Source-Analytik, damit Ihre Aufträge schneller ausgeführt werden und dabei weniger Rechenkosten entstehen.
F: Sind die Kosten von EMR Serverless mit den Kosten von Amazon EMR auf EC2-Spot-Instances vergleichbar?
Das hängt von Ihrer aktuellen EMR auf EC2-Cluster-Nutzung ab. Wenn Sie EMR-Cluster mit EC2-On-Demand-Instances ausführen, bietet EMR Serverless niedrigere Gesamtbetriebskosten (TCO) an, wenn Ihre aktuelle Cluster-Nutzung weniger als 70 % beträgt. Wenn Sie die EC2 Savings Plans benutzen, bietet EMR Serverless niedrigere Gesamtbetriebskosten an, wenn Ihre aktuelle Cluster-Nutzung weniger als 50 % beträgt. Und wenn Sie EC2 Spot Instances verwenden, sind Amazon EMR auf EC2 und Amazon EMR auf EKS kostengünstiger.
F: Werden die vorinitialisierten Workers in Rechnung gestellt, selbst wenn Aufträge abgeschlossen wurden?
Ja. Wenn Sie Worker nach Abschluss des Auftrags nicht beenden, entstehen dabei Kosten für vorinitialisierte Worker.
F. Mit wem sollte ich für Fragen, Kommentare und Funktionsanfragen Kontakt aufnehmen?
Bitte senden Sie uns eine E-Mail unter emr-feedback@amazon.com mit Ihren Anfragen und geschätzten Feedback auf EMR Serverless.
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: 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 |
|
AWS Lake Formation |
N |
Y |
Integration von Apache Ranger |
N |
Y |
Benutzerdefinierte AMI/Images |
Y |
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 Stepfunctions |
Y |
Y |
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.
F: Warum sollte ich benutzerdefinierte Images mit EMR auf EKS verwenden?
Ohne benutzerdefinierte Images verlangte die Verwaltung von Anwendungs-Abhängigkeiten mit EMR auf EKS, Images bei der Laufzeit von einem externen Speicherservice wie Amazon S3 abzurufen. Jetzt können Sie mit der Unterstützung für benutzerdefinierte Images ein eigenständiges Docker-Image mit der Anwendung und ihren Abhängigkeiten für jeden Anwendungsfall erstellen. Mit der neuen Funktionalität müssen Sie keine extern gespeicherten Bibliotheken mehr pflegen, aktualisieren oder versionieren, und Ihre Big-Data-Anwendungen können mit den gleichen DevOps-Prozessen entwickelt werden, die Ihre anderen containerisierten Anwendungen verwenden. Zeigen Sie einfach auf Ihr Image und führen es aus.
F: Was ist eine benutzerdefinierte Metrik?
Ein benutzerdefiniertes Image ist ein EMR-auf-EKS-bereitgestelltes Docker-Image („Basis-Image“), dass die EMR-Laufzeit und Konnektoren zu anderen AWS-Services enthält, die Sie modifizieren können, um Anwendungs-Abhängigkeiten oder zusätzliche Pakete zu inkludieren, die Ihre Anwendung benötigt. Das neue Image kann entweder im Amazon Elastic Container Registry (ECR) oder Ihrem eigenen Docker-Container-Registry gespeichert werden.
F: Was sind einige der Anwendungsfälle für benutzerdefinierte Images?
Kunden können ein Basis-Image erstellen, Ihre Standard-Unternehmens-Bibliotheken hinzufügen und es dann im Amazon Elastic Container Registry(Amazon ECR) speichern. Andere Kunden können das Image anpassen, um ihre eigenen anwendungsspezifischen Anbhängigkeiten miteinzubeziehen. Das daraus resultierende unveränderliche Image kann auf Schwachstellen gescannt werden und für Test- und Produktions-Umgebungen bereitgestellt werden. Beispiele von Abhängigkeiten, die Sie hinzufügen können, sind u. a. Java SDK, Python oder R-Bibliotheken. Sie können diese direkt dem Image hinzufügen, wie bei anderen containerisierten Anwendungen.
F: Was umfasst das Basis-Image?
F: Wann sollte ich für meine Spark-Treiber und Spark-Executors ein unterschiedliches benutzerdefiniertes Image angeben?
Sie können separate Images für Ihre Spark-Treiber und -Executors angeben, wenn Sie verschiedene Abhängigkeiten oder Bibliotheken haben wollen. Das Entfernen von Bibliotheken, die in beiden Images nicht erforderlich sind, kann das Image verkleinern, was die Startzeit des Auftrags reduziert. Sie können für die Treiber und Executor auch ein einzelnes Image angeben (spark.kubernetes.image) oder ein unterschiedliches Image für Treiber (spark.kubernetes.driver.container.image) und Executor (spark.kubernetes.executor.container.image) angeben.F: Wo erhalte ich weitere Informationen zu benutzerdefinierten Images?
Für weitere Informationen über Amazon-EMR-on-EKS-Unterstützung für benutzerdefinierte Images, sehen Sie sich unsere Dokumentation oder die Apache-Spark-Dokumentation.F: Gibt es eine zusätzliche Gebühr für benutzerdefinierte Images
Es fallen bei der Verwendung der Funktion für benutzerdefinierte Images keine Gebühren an.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 Co-Location-Raum 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:
- 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.
- 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.
- 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 IOPS (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
F: Was ist Apache Spark?
Apache SparkTM ist ein verteiltes Open-Source-Verarbeitungssystem, das für Big-Data-Workloads 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 in Amazon EMR.
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.
- 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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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. Weitere Details finden Sie in unserer 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 unser Service Level Agreement.
F: Was bietet das Amazon-EMR-Service-Level-Agreement?
F: Was passiert, wenn man der Verpflichtung zur Dienstleistung nicht nachkommt?
Wenn die Verpflichtung zur Dienstleistung von Amazon-EMR-Services nicht eingehalten wurde, sind Sie berechtigt, eine Service-Gutschrift zu erhalten.F: Wie erfahre ich, ob ich auf eine Service-Gutschrift Anspruch habe? Wie kann ich eine in Anspruch nehmen?
Um Service-Gutschriften zu erhalten, müssen Sie einen Antrag stellen, indem Sie einen Fall im AWS Support Center eröffnen. Zum besseren Verständnis der Anspruchsberechtigung und des Antragsformats, schauen Sie bitte auf https://aws.amazon.com/emr/sla/Weitere Informationen zu den Preisen von Amazon EMR