Überlegungen zu EMR Studio - Amazon EMR

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

Überlegungen zu EMR Studio

Überlegungen

Beachten Sie Folgendes, wenn Sie mit EMR Studio arbeiten:

  • EMR Studio ist in den folgenden AWS-Regionen Versionen verfügbar:

    • USA Ost (Ohio): (us-east-2)

    • USA Ost (Nord-Virginia): (us-east-1)

    • USA West (Nordkalifornien) (us-west-1)

    • USA West (Oregon): (us-west-2)

    • Afrika (Kapstadt) (af-south-1)

    • Asien-Pazifik (Hongkong) (ap-east-1)

    • Asien-Pazifik (Jakarta) (ap-southeast-3) *

    • Asien-Pazifik (Melbourne) (ap-southeast-4) *

    • Asien-Pazifik (Mumbai): (ap-south-1)

    • Asien-Pazifik (Osaka) (ap-northeast-3) *

    • Asien-Pazifik (Seoul): (ap-northeast-2)

    • Asien-Pazifik (Singapur): (ap-southeast-1)

    • Asien-Pazifik (Sydney): (ap-southeast-2)

    • Asien-Pazifik (Tokyo) (ap-northeast-1)

    • Kanada (Zentral): (ca-central-1)

    • Europa (Frankfurt) (eu-central-1)

    • Europa (Irland) (eu-west-1)

    • Europa (London) (eu-west-2)

    • Europa (Mailand) (eu-south-1)

    • Europa (Paris) (eu-west-3)

    • Europa (Spanien) (eu-south-2)

    • Europa (Stockholm) (eu-north-1)

    • Europa (Zürich) (eu-central-2) *

    • Israel (Tel Aviv) il-central-1) *

    • Naher Osten (VAE) (me-central-1) *

    • Südamerika (São Paulo) (sa-east-1)

    • AWS GovCloud (US-Ost) (-1) gov-us-east

    • AWS GovCloud (US-West) (gov-us-west-1)

    * Die Live-Spark-Benutzeroberfläche wird in diesen Regionen nicht unterstützt.

  • Damit Benutzer neue EMR-Cluster, die auf Amazon EC2 laufen, für einen Workspace bereitstellen können, können Sie ein EMR Studio mit einer Reihe von Cluster-Vorlagen verknüpfen. Administratoren können Clustervorlagen mit Service Catalog definieren und wählen, ob ein Benutzer oder eine Gruppe innerhalb eines Studios auf die Clustervorlagen zugreifen kann oder keine Clustervorlagen.

  • Verwenden Sie die Amazon EMR-Servicerolle, wenn Sie Zugriffsberechtigungen für Notizbuchdateien definieren AWS Secrets Manager, die in Amazon S3 gespeichert sind oder aus denen Geheimnisse gelesen werden. Sitzungsrichtlinien werden mit diesen Berechtigungen nicht unterstützt.

  • Sie können mehrere EMR-Studios erstellen, um den Zugriff auf EMR-Cluster in verschiedenen VPCs zu steuern.

  • Verwenden Sie die AWS CLI , um Amazon EMR auf EKS-Clustern einzurichten. Anschließend können Sie die Studio-Oberfläche verwenden, um Cluster an Workspaces mit einem verwalteten Endpunkt anzuhängen, um Notebook-Jobs auszuführen.

  • Wenn Sie Trusted Identity Propagation mit Amazon EMR verwenden, gibt es weitere Überlegungen, die auch für EMR Studio gelten. Weitere Informationen finden Sie unter Überlegungen und Einschränkungen für Amazon EMR mit Identity-Center-Integration.

  • EMR Studio unterstützt die folgenden magischen Python-Befehle nicht:

    • %alias

    • %alias_magic

    • %automagic

    • %macro

    • %%js

    • %%javascript

    • Ändern von proxy_user mit %configure

    • Ändern von KERNEL_USERNAME mit %env oder %set_env

  • Amazon EMR auf EKS-Clustern unterstützt keine SparkMagic Befehle für EMR Studio.

  • Um mehrzeilige Scala-Anweisungen in Notebookzellen zu schreiben, stellen Sie sicher, dass alle Zeilen bis auf die letzte mit einem Punkt enden. Im folgenden Beispiel wird die richtige Syntax für mehrzeilige Scala-Anweisungen verwendet.

    val df = spark.sql("SELECT * from table_name). filter("col1=='value'"). limit(50)
  • Um die Sicherheit der Anwendungen außerhalb der Konsole zu erhöhen, die Sie möglicherweise mit Amazon EMR verwenden, sind die Anwendungs-Hosting-Domains in der Public Suffix List (PSL) registriert. Zu diesen Hosting-Domains gehören beispielsweise die folgenden: emrstudio-prod.us-east-1.amazonaws.com, emrnotebooks-prod.us-east-1.amazonaws.com, emrappui-prod.us-east-1.amazonaws.com. Aus Sicherheitsgründen empfehlen wir Ihnen, Cookies mit einem __Host--Präfix zu verwenden, falls Sie jemals sensible Cookies im Standard-Domainnamen einrichten müssen. Diese Vorgehensweise hilft Ihnen dabei, Ihre Domain vor CSRF (Cross-Site Request Forgery Attempts, Anforderungsfälschung zwischen Websites)-Versuchen zu schützen. Weitere Informationen finden Sie auf der Set-Cookie-Seite im Mozilla Developer Network.

Bekannte Probleme

  • Ein EMR Studio, das IAM Identity Center mit aktivierter Weitergabe vertrauenswürdiger Identitäten verwendet, kann nur EMR-Clustern zugeordnet werden, die auch vertrauenswürdige Identitätsverteilung verwenden.

  • Stellen Sie sicher, dass Sie Proxy-Management-Tools wie FoxyProxy oder SwitchyOmega im Browser deaktivieren, bevor Sie ein Studio erstellen. Aktive Proxys können Fehler verursachen, wenn Sie Studio erstellen wählen, und zu einer Netzwerkfehler-Fehlermeldung führen.

  • Kernel, die auf Amazon EMR in EKS-Clustern ausgeführt werden, können aufgrund von Timeout-Problemen nicht gestartet werden. Wenn beim Starten des Kernels ein Fehler oder ein Problem auftritt, schließen Sie die Notebook-Datei, fahren Sie den Kernel herunter und öffnen Sie die Notebook-Datei erneut.

  • Der Kernel-Neustartvorgang funktioniert nicht wie erwartet, wenn Sie einen Cluster von Amazon EMR in EKS verwenden. Nachdem Sie Kernel neu starten ausgewählt haben, aktualisieren Sie den Workspace, damit der Neustart wirksam wird.

  • Wenn ein Workspace nicht an einen Cluster angehängt ist, wird eine Fehlermeldung angezeigt, wenn ein Studio-Benutzer eine Notebook-Datei öffnet und versucht, einen Kernel auszuwählen. Sie können diese Fehlermeldung ignorieren, indem Sie OK wählen, aber Sie müssen den Workspace an einen Cluster anhängen und einen Kernel auswählen, bevor Sie Notebook-Code ausführen können.

  • Wenn Sie Amazon EMR 6.2.0 mit einer Sicherheitskonfiguration verwenden, um die Clustersicherheit einzurichten, erscheint die Workspace-Oberfläche leer und funktioniert nicht wie erwartet. Wir empfehlen Ihnen, eine andere unterstützte Version von Amazon EMR zu verwenden, wenn Sie Datenverschlüsselung oder Amazon-S3-Autorisierung für EMRFS für einen Cluster konfigurieren möchten. EMR Studio funktioniert mit den Amazon-EMR-Versionen 5.32.0 (Amazon-EMR-5.x-Serie) und 6.2.0 (Amazon-EMR-6.x-Serie) und höher.

  • Wenn Sie Debuggen von Amazon EMR, das in Amazon-EC2-Aufträgen ausgeführt wird, funktionieren die Links zur Spark-Benutzeroberfläche auf dem Cluster möglicherweise nicht oder werden nicht angezeigt. Um die Links zu regenerieren, erstellen Sie eine neue Notebook-Zelle und führen Sie den %%info-Befehl aus.

  • Jupyter Enterprise Gateway bereinigt in den folgenden Amazon-EMR-Release-Versionen keine inaktiven Kernel auf dem Primärknoten eines Clusters: 5.32.0, 5.33.0, 6.2.0 und 6.3.0. Kernel im Leerlauf verbrauchen Rechenressourcen und können dazu führen, dass Cluster mit langer Laufzeit ausfallen. Mit dem folgenden Beispielskript können Sie die Kernelbereinigung im Leerlauf für Jupyter Enterprise Gateway konfigurieren. Sie können Mit dem Primärknoten über SSH verbinden oder das Skript als Schritt einreichen. Weitere Informationen finden Sie unter Befehle und Skripts auf einem Amazon-EMR-Cluster ausführen.

    #!/bin/bash sudo tee -a /emr/notebook-env/conf/jupyter_enterprise_gateway_config.py << EOF c.MappingKernelManager.cull_connected = True c.MappingKernelManager.cull_idle_timeout = 10800 c.MappingKernelManager.cull_interval = 300 EOF sudo systemctl daemon-reload sudo systemctl restart jupyter_enterprise_gateway
  • Wenn Sie eine automatische Terminierungsrichtlinie mit den Amazon-EMR-Versionen 5.32.0, 5.33.0, 6.2.0 oder 6.3.0 verwenden, markiert Amazon EMR einen Cluster als inaktiv und beendet den Cluster möglicherweise automatisch, auch wenn Sie einen aktiven Python3-Kernel haben. Das liegt daran, dass bei der Ausführung eines Python3-Kernels kein Spark-Job auf dem Cluster gesendet wird. Um die automatische Terminierung mit einem Python3-Kernel zu verwenden, empfehlen wir die Verwendung von Amazon-EMR-Version 6.4.0 oder höher. Weitere Informationen zum Auto-Beenden finden Sie unter Verwenden einer Richtlinie zur automatischen Beendigung.

  • Wenn Sie %%display einen Spark DataFrame in einer Tabelle anzeigen, können sehr breite Tabellen gekürzt werden. Sie können mit der rechten Maustaste auf die Ausgabe klicken und Neue Ansicht für Ausgabe erstellen auswählen, um eine scrollbare Ansicht der Ausgabe zu erhalten.

  • Wenn Sie einen Spark-basierten Kernel wie PySpark Spark oder SparkR starten, wird eine Spark-Sitzung gestartet, und wenn Sie eine Zelle in einem Notizbuch ausführen, werden Spark-Jobs in dieser Sitzung in die Warteschlange gestellt. Wenn Sie eine laufende Zelle unterbrechen, wird der Spark-Auftrag weiter ausgeführt. Um den Spark-Auftrag zu beenden, sollten Sie die Cluster-interne Spark-Benutzeroberfläche verwenden. Weitere Informationen zur Verbindung mit einer Spark-Benutzeroberfläche finden Sie unter Debuggen von Anwendungen und Aufträgen mit EMR Studio.

Feature-Einschränkungen

Amazon EMR Studio unterstützt die folgenden Amazon-EMR-Feature nicht:

  • Anhängen und Ausführen von Aufträgen auf EMR-Clustern mit einer Sicherheitskonfiguration, die die Kerberos-Authentifizierung spezifiziert

  • Cluster mit mehreren Primärknoten

  • Cluster, die Amazon EC2 EC2-Instances verwenden, die auf AWS Graviton2 für Amazon EMR 6.x-Versionen unter 6.9.0 und 5.x-Versionen unter 5.36.1 basieren

Die folgenden Features werden von einem Studio, das die Verbreitung vertrauenswürdiger Identitäten verwendet, nicht unterstützt:

  • Erstellen von EMR-Clustern ohne Vorlage.

  • Verwenden von EMR-Serverless-Anwendungen.

  • Starten von Amazon EMR in EKS-Clustern.

  • Verwenden einer Laufzeitrolle.

  • Aktivieren der Zusammenarbeit mit SQL Explorer oder Workspace.

Service-Limits für EMR Studio

In der folgenden Tabelle werden die Service-Limits für EMR Studio aufgeführt.

Item Limit
EMR Studios AWS Maximal 100 pro Konto
Subnetze Maximal fünf für jedes EMR-Studio
IAM-Identity-Center-Gruppen Maximal fünf für jedes EMR-Studio
Benutzer von IAM Identity Center Maximal 100 für jedes EMR-Studio

Bewährte Methoden für VPC und Subnetze

Verwenden Sie die folgenden bewährten Methoden, um eine Amazon Virtual Private Cloud (Amazon VPC) mit Subnetzen für EMR Studio einzurichten:

  • Sie können in Ihrer VPC maximal fünf Subnetze angeben, die Sie dem Studio zuordnen möchten. Wir empfehlen, dass Sie mehrere Subnetze in verschiedenen Availability Zones bereitstellen, um die Workspace-Verfügbarkeit zu unterstützen und Studio-Benutzern Zugriff auf Cluster in verschiedenen Availability Zones zu gewähren. Weitere Informationen zur Arbeit mit VPCs, Subnetzen und Availability Zones finden Sie unter VPCs und Subnetze im Benutzerhandbuch für Amazon Virtual Private Cloud .

  • Die von Ihnen angegebenen Subnetze sollten miteinander kommunizieren können.

  • Damit Benutzer einen Workspace mit öffentlich gehosteten Git-Repositorys verknüpfen können, sollten Sie nur private Subnetze angeben, die über Network Address Translation (NAT) Zugriff auf das Internet haben. Weitere Informationen zum Einrichten eines privaten Subnetzes für Amazon EMR finden Sie unter Private Subnetze.

  • Wenn Sie Amazon EMR auf EKS mit EMR Studio verwenden, muss mindestens ein gemeinsames Subnetz zwischen Ihrem Studio und dem Amazon-EKS-Cluster vorhanden sein, den Sie zum Registrieren eines virtuellen Clusters verwenden. Andernfalls wird Ihr verwalteter Endpunkt nicht als Option in Studio Workspaces angezeigt. Sie können einen Amazon-EKS-Cluster erstellen und ihn einem Subnetz zuordnen, das zum Studio gehört, oder Sie können ein Studio erstellen und die Subnetze Ihres EKS-Clusters angeben.

  • Wenn Sie Amazon EMR in EKS mit EMR Studio verwenden möchten, wählen Sie die VPC für Ihre Amazon-EKS-Cluster-Worker-Knoten aus.

Cluster-Anforderungen für Amazon EMR Studio

Amazon-EMR-Cluster, die auf Amazon EC2 ausgeführt werden

Alle Amazon-EMR-Cluster, die auf Amazon EC2 ausgeführt werden und die Sie für einen EMR Studio Workspace erstellen, müssen die folgenden Anforderungen erfüllen. Cluster, die Sie mit der EMR-Studio-Oberfläche erstellen, erfüllen diese Anforderungen automatisch.

  • Der Cluster muss Amazon-EMR-Versionen 5.32.0 (Amazon EMR 5.x-Serie) oder 6.2.0 (Amazon EMR 6.x-Serie) oder höher verwenden. Sie können mit der Amazon EMR-Konsole oder dem SDK einen Cluster erstellen und ihn dann an einen EMR Studio Workspace anhängen. AWS Command Line Interface Studio-Benutzer können auch Cluster bereitstellen und anhängen, wenn sie einen Amazon-EMR-Workspace erstellen oder darin arbeiten. Weitere Informationen finden Sie unter Einen Computer an einen EMR Studio Workspace anhängen.

  • Dieser Cluster muss sich innerhalb einer Amazon Virtual Private Cloud befinden. Die EC2-Classic-Plattform wird nicht unterstützt.

  • Auf dem Cluster müssen Spark, Livy und Jupyter Enterprise Gateway installiert sein. Wenn Sie den Cluster für SQL Explorer verwenden möchten, sollten Sie sowohl Presto als auch Spark installieren.

  • Um SQL Explorer verwenden zu können, muss der Cluster Amazon-EMR-Version 5.34.0 oder höher oder Version 6.4.0 oder höher verwenden und Presto installiert sein. Wenn Sie den AWS Glue-Datenkatalog als Hive-Metastore für Presto angeben möchten, müssen Sie ihn auf dem Cluster konfigurieren. Weitere Informationen finden Sie unter Verwendung von Presto mit dem AWS Glue Data Catalog.

  • Der Cluster muss sich in einem privaten Subnetz mit Network Address Translation (NAT) befinden, um öffentlich gehostete Git-Repositorys mit EMR Studio verwenden zu können.

Wir empfehlen die folgenden Clusterkonfigurationen, wenn Sie mit EMR Studio arbeiten.

  • Stellen Sie den Bereitstellungsmodus für Spark-Sitzungen auf den Clustermodus ein. Im Clustermodus werden die Anwendungsmasterprozesse auf den Core-Knoten und nicht auf dem Primärknoten eines Clusters platziert. Dadurch wird der Primärknoten von potenziellem Speicherdruck entlastet. Weitere Informationen finden Sie unter Cluster Mode Overview in der Apache Spark-Dokumentation.

  • Ändern Sie das Livy-Timeout wie in der folgenden Beispielkonfiguration von der Standardeinstellung von einer Stunde auf sechs Stunden.

    { "classification":"livy-conf", "Properties":{ "livy.server.session.timeout":"6h", "livy.spark.deploy-mode":"cluster" } }
  • Erstellen Sie verschiedene Instance-Flotten mit bis zu 30 Instances und wählen Sie mehrere Instance-Typen in Ihrer Spot Instance-Flotte aus. Sie könnten beispielsweise die folgenden arbeitsspeicheroptimierten Instance-Typen für Spark-Workloads angeben: r5.2x, r5.4x, r5.8x, r5.12x, r5.16x, r4.2x, r4.4x, r4.8x, r4.12, usw. Weitere Informationen finden Sie unter Instance-Flotten konfigurieren.

  • Verwenden Sie die kapazitätsoptimierte Zuweisungsstrategie für Spot Instances, um Amazon EMR dabei zu unterstützen, eine effektive Instance-Auswahl auf der Grundlage von Echtzeit-Kapazitätsinformationen von Amazon EC2 zu treffen. Weitere Informationen finden Sie unter Zuweisungsstrategie für Flotten.

  • Aktivieren Sie die verwaltete Skalierung in Ihrem Cluster. Legen Sie den Parameter für die maximale Anzahl an Core-Knoten auf die minimale persistente Kapazität fest, die Sie verwenden möchten, und konfigurieren Sie die Skalierung für eine gut diversifizierte Task-Flotte, die auf Spot Instances ausgeführt wird, um Kosten zu sparen. Weitere Informationen finden Sie unter Verwenden der verwalteten Skalierung in Amazon EMR.

Wir bitten Sie außerdem dringend, Amazon EMR Block Public Access aktiviert zu lassen und den eingehenden SSH-Verkehr auf vertrauenswürdige Quellen zu beschränken. Durch den eingehenden Zugriff auf einen Cluster können Benutzer Notebooks auf dem Cluster ausführen. Weitere Informationen finden Sie unter Verwenden von Amazon EMR Block Public Access und Steuerung des Netzwerkverkehrs mit Sicherheitsgruppen.

Cluster von Amazon EMR in EKS

Zusätzlich zu EMR-Clustern, die auf Amazon EC2 ausgeführt werden, können Sie Amazon EMR auf EKS-Clustern für EMR Studio mithilfe von AWS CLI einrichten und verwalten. Richten Sie Amazon EMR auf EKS-Clustern gemäß den folgenden Richtlinien ein:

  • Erstellen Sie einen verwalteten HTTPS-Endpunkt für den Cluster von Amazon EMR in EKS. Benutzer hängen einen Workspace an einen verwalteten Endpunkt an. Der Amazon Elastic Kubernetes Service (EKS)-Cluster, den Sie zur Registrierung eines virtuellen Clusters verwenden, muss über ein privates Subnetz verfügen, um verwaltete Endgeräte zu unterstützen.

  • Verwenden Sie einen Amazon-EKS-Cluster mit mindestens einem privaten Subnetz und Network Address Translation (NAT), wenn Sie öffentlich gehostete Git-Repositorys verwenden möchten.

  • Vermeiden Sie die Verwendung von Amazon-EKS-optimierten Arm-Amazon-Linux-AMIs, die für Endpunkte, die von Amazon EMR auf EKS verwaltet werden, nicht unterstützt werden.

  • Vermeiden Sie die AWS Fargate ausschließliche Verwendung von Amazon EKS-Clustern, die nicht unterstützt werden.