Amazon EMR – Häufig gestellte Fragen
Allgemeines
Alles öffnenAmazon EMR ist ein Service zur Verarbeitung von Big Data, der Analytik-Workloads mit unübertroffener Flexibilität und Skalierbarkeit beschleunigt. EMR bietet leistungsoptimierte Laufzeiten für Apache Spark, Trino, Apache Flink und Apache Hive, wodurch Kosten und Verarbeitungszeiten drastisch reduziert werden.
Amazon EMR in Amazon EC2 bietet die Kontrolle über die Cluster-Konfiguration und unterstützt Cluster mit langer Laufzeit, sodass es sich perfekt für kontinuierliche Datenverarbeitungsaufgaben eignet, für die bestimmte Hardware-Setups erforderlich sind. Mit Amazon EMR Serverless ist es für Sie einfach, Open-Source-Frameworks wie Apache Spark für Big-Data-Analytik auszuführen, ohne Cluster oder Server konfigurieren, verwalten und skalieren zu müssen. Amazon EMR in Amazon Elastic Kubernetes Service (EKS) ermöglicht es Ihnen, Aufträge bei Bedarf über EKS zu übermitteln, ohne dass Cluster bereitgestellt werden müssen.
Sie können Ihre Workloads auf EMR mit Amazon EC2, Amazon Elastic Kubernetes Service (EKS) oder EMR Serverless bereitstellen. Sie können Ihre Workloads mit der EMR-Konsole, API, SDK oder CLI ausführen und verwalten, und sie mit Amazon Managed Workflows für Apache Airflow (MWAA) oder AWS Step Functions orchestrieren.
Zur Anmeldung bei Amazon EMR wählen Sie „Jetzt anmelden“ auf der Amazon-EMR-Detailseite http://aws.amazon.com/emr. Sehen Sie sich nach der Anmeldung bitte die Amazon-EMR-Dokumentation an, die auch das Handbuch „Erste Schritte“ enthält – die beste Einführung in EMR in EC2, EMR Serverless oder EMR in EKS
Bitte beachten Sie unser Service Level Agreement.
Entwicklung & Debugging
Alles öffnenBeispielcode finden Sie in diesen Artikeln und Tutorials. Wenn Sie EMR Studio verwenden können Sie die Funktionen anhand einer Reihe von Notebook-Beispielen erkunden.
Sie können Datenwissenschafts- 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.
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-Managementkonsole hingegen bietet eine benutzerfreundliche grafische Oberfläche, auf der Ihre Cluster direkt in einem Web-Browser gestartet und überwacht werden können.
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.
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.
Ja. Sie können Ihren Cluster automatisch beenden, wenn alle Schritte abgeschlossen sind, indem Sie die Flag für die automatische Beendigung aktivieren.
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. Details finden Sie in unserer Dokumentation.
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 Hauptknoten über SSH verbinden und Cluster-Instances mit diesen Web-Schnittstellen anzeigen. Weitere Informationen erhalten Sie in unserer Dokumentation.
EMR Studio
Alles öffnenEMR 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 Analytikaufträ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.
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 Aufträge mit nativen Anwendungsschnittstellen wie der Spark-Benutzeroberfläche und dem YARN-Timeline-Service mit möglichst wenigen Klicks debuggen.
-
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.
Es gibt fünf Hauptunterschiede.
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.
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.
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.
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.
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.
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.
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 Hauptknoten 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 Erstellen von Bootstrap-Aktionen zur Installation zusätzlicher Software und Verwenden einer benutzerdefinierten AMI im Amazon EMR-Verwaltungshandbuch.
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 Amazon EMR Studio.
Sie können Git-basierte Repositorys mit Ihren Amazon-EMR-Notebooks verknüpfen, um Ihre Notebooks in einer versionskontrollierten Umgebung zu speichern.
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.
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.
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.
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.
Ja. Hochverfügbarkeits-Cluster (Multi-Master), kerberisierte Cluster und AWS-Lake-Formation-Cluster werden derzeit nicht unterstützt.
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.
Datenverwaltung
Alles öffnenAmazon 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 Informationen finden Sie in der Dokumentation. Wenn Sie Daten von lokal in die Cloud migrieren, können Sie alternativ einen der Services von Cloud Data Migration von AWS verwenden.
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.
Nein. Derzeit komprimiert Amazon EMR keine Protokolle, wenn diese in Amazon S3 verschoben werden.
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 Informationen finden Sie in unserer Dokumentation.
Fakturierung
Alles öffnenNein. Da Cluster und Eingabedaten jeweils unterschiedlich sind, können wir die Auftragsdauer nicht schätzen.
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.
Sie können Ihre Verwendung in der Rechnungs- und Kostenverwaltungskonsole nachverfolgen.
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.
Ja. Amazon EMR unterstützt problemlos On-Demand-, Spot- und Reserved Instances. Klicken Sie hier, um mehr über Amazon-Reserved-Instances zu erfahren. Klicken Sie hier, um mehr über Amazon-EC2-Spot-Instances zu erfahren. Klicken Sie hier, um mehr über Amazon-EC2-Kapazitätsreservierungen zu erfahren.
Sicherheits- und Zugriffskontrolle
Alles öffnenAmazon 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.
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.
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. Erfahren Sie mehr über CloudTrail auf der AWS CloudTrail-Detailseite und aktivieren Sie es über die AWS-Managementkonsole von CloudTrail.
-
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 Amazon- 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 Server von Apache-Ranger-Policy-Admin 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üfungsereignisse 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. Dieses Feature ist derzeit über AWS-Übungen verfügbar.
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.
Regionen und Availability Zones
Alles öffnenAmazon 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ätreservierungen zu nutzen.
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.
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.
Bei der Erstellung eines Clusters ist es in der Regel erforderlich, die Region auszuwählen, in der sich Ihre Daten befinden.
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.
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.
Amazon EMR in Amazon EC2
Alles öffnenEin 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.
-
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. Aufgabenknoten sind optional.
Ein Amazon-EMR-Cluster hat drei Typen von Knoten:
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.
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.
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.
Sie können in der AWS-Managementkonsole 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 Abschnitt EMR Studio oben.
Sie können einen Cluster jederzeit über die AWS-Managementkonsole 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.
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.
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.
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.
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.
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.
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 Hauptknoten automatisch durch einen neuen Hauptknoten mit derselben Konfiguration und den selben Bootstrap-Aktionen.
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.
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 Hauptknoten hergestellt werden. Anschließend können Sie sich per SSH mit dem gewünschten Knoten verbinden.
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.
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-Aktionen.
Die Hadoop-Standardkonfiguration von EMR ist für die meisten Workloads 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.
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. Weitere Informationen zur Änderung der Größe Ihres laufenden Clusters finden Sie im Abschnitt Größe laufender Cluster ändern des Entwicklerhandbuchs. Sie können auch EMR Managed Scaling verwenden.
Da Core-Knoten persistente Daten in HDFS hosten und nicht entfernt werden können, sollten Core-Knoten 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.
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.
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.
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.
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.
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.
-
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]
-
Eine Amazon EC2-Instance, die einem Amazon EMR-Cluster zugeordnet ist, weist zwei System-Tags auf:
EMR Serverless
Alles öffnenAmazon 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.
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-Workloads auszuführen.
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 Seite Bedienung 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.
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.
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.
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.
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.
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.
-
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
Denken Sie darüber nach, mehrere Anwendungen zu erstellen, wenn Sie die folgenden Schritte ausführen:
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.
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ü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 auf Amazon S3 hochladen und Sie mit den --jars- oder --packages-Optionen mit der Ausführung Ihres EMR-Serverless-Auftrags weiterleiten.
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.
Ja. Es ist möglich, einen laufenden EMR-Serverless-Auftrag vom EMR-Studio oder durch Anruf der cancelJobRun-API/CLI abzubrechen.
-
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.
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:
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.
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.
EMR Serverless kann auf bestimmte AWS-Ressourcen in derselben Region nur dann zugreifen, wenn es ohne VPC-Konnektivität konfiguriert ist. Siehe Überlegungen. Um auf AWS-Ressourcen in einer anderen Region oder auf Nicht-AWS-Ressourcen zuzugreifen, müssen Sie den VPC-Zugang und ein NAT-Gateway einrichten, um zu den öffentlichen Endpunkten für die AWS-Ressourcen zu gelangen.
Anwendungs- und Auftragsmetriken von Amazon EMR Serverless werden alle 30 Sekunden auf Amazon CloudWatch veröffentlicht.
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.
Jede EMR-Serverless-Anwendung ist von anderen Anwendungen isoliert und wird auf einer sicheren Amazon VPC ausgeführt.
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.
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.
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.
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.
Ja. Wenn Sie Worker nach Abschluss des Auftrags nicht beenden, entstehen dabei Kosten für vorinitialisierte Worker.
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 auf Amazon S3 hochladen und Sie mit den --jars- oder --packages-Optionen mit der Ausführung Ihres EMR-Serverless-Auftrags weiterleiten.
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 auf Amazon S3 hochladen und Sie mit den --jars- oder --packages-Optionen mit der Ausführung Ihres EMR-Serverless-Auftrags weiterleiten.
Amazon EMR Serverless macht die Bereitstellung lokaler Speicher für Apache-Spark-Workloads überflüssig, senkt die Datenverarbeitungskosten um bis zu 20 % und verhindert Auftragsausfälle aufgrund von Beschränkungen der Festplattenkapazität. EMR Serverless verarbeitet automatisch zwischengeschaltete Datenvorgänge wie Shuffle, ohne dass Infrastrukturentscheidungen erforderlich sind. Durch die automatische Verarbeitung von Zwischendaten unabhängig von den Rechenarbeitern ermöglicht diese Optimierung der dynamischen Ressourcenzuweisung (DRA) von Spark, Rechenressourcen freizugeben, sobald sie für die Verarbeitung nicht mehr benötigt werden, anstatt sie nur zum Speichern temporärer lokaler Daten weiterlaufen zu lassen. Diese automatische Optimierung bietet eine höhere Elastizität für umfangreiche Transformations-Workloads wie große Aggregationen, Verknüpfungen und sortierintensive Analytik, sodass die Rechenressourcen über alle Auftrag-Stufen hinweg dynamisch nach oben und unten skaliert werden können, ohne durch lokal gespeicherte Daten eingeschränkt zu sein.
Sie müssen sich lediglich bei Verwendung von EMR Version 7.12 oder höher dafür entscheiden. Ihre Spark-Aufträge profitieren automatisch von einer optimierten Zwischen-Datenverarbeitung, ohne dass Sie dafür Konfigurationen vornehmen müssen. Sie können Ihre Aufgaben in Echtzeit über die Spark-Live-Benutzeroberfläche überwachen und detaillierte Shuffle- und Spill-Metriken pro Stufe für abgeschlossene Aufgaben im Spark History Server anzeigen.
Ihre Zwischendaten werden nur während der Ausführung Ihres Auftrags gespeichert und nach Abschluss Ihres Auftrags automatisch gelöscht, sodass keine Daten über den Lebenszyklus des Auftrags hinaus erhalten bleiben.
Diese automatische Optimierung gewährleistet durch mehrere Schutzebenen dieselben Sicherheitsstandards der Enterprise-Klasse wie EMR Serverless. Alle Daten werden sowohl während der Übertragung zwischen Ihrer EMR Serverless-Anwendung und der Zwischendatenverarbeitungsebene als auch während der vorübergehenden Speicherung mit von AWS verwalteten Verschlüsselungsschlüsseln verschlüsselt. Diese Funktion erzwingt eine strenge Datenisolierung und Zugriffskontrolle, indem Ihre Zwischendaten unter jobspezifischen Kennungen in Ihrem Namespace gespeichert werden, sodass Ihre Daten nur für Ihren spezifischen Auftrag zugänglich bleiben. Ihre bestehenden EMR Serverless-Zugriffskontrollen und -Berechtigungen gelten weiterhin, sodass Daten, die durch Tabellen- oder Lake Formation-Richtlinien geregelt sind, vollständig geschützt bleiben. Für erhöhte Sicherheit verwendet EMR Serverless eine dienstbezogene Rolle zur Verarbeitung von Zwischendaten anstelle der Ausführung Ihrer Aufgabe, wodurch eine Eskalation von Berechtigungen oder unbefugter kontoübergreifender Zugriff verhindert wird. Wenn eine Sicherheitsprüfung fehlschlägt, wird Ihr Auftrag sofort gestoppt, um sicherzustellen, dass Ihre Daten jederzeit geschützt bleiben.