Erste Schritte mit Amazon EMR Serverless - 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.

Erste Schritte mit Amazon EMR Serverless

Dieses Tutorial hilft Ihnen bei den ersten Schritten mit EMR Serverless, wenn Sie einen Spark- oder Hive-Beispiel-Workload bereitstellen. Sie werden Ihre eigene Anwendung erstellen, ausführen und debuggen. In den meisten Teilen dieses Tutorials zeigen wir Standardoptionen.

Bevor Sie eine EMR serverlose Anwendung starten, führen Sie die folgenden Aufgaben aus.

Erteilen Sie Berechtigungen zur Verwendung von Serverless EMR

Um EMR Serverless verwenden zu können, benötigen Sie einen Benutzer oder eine IAM Rolle mit einer angehängten Richtlinie, die Berechtigungen für EMR Serverless gewährt. Folgen Sie den Anweisungen unter, um einen Benutzer zu erstellen und diesem Benutzer die entsprechende Richtlinie zuzuweisen. Erteilen Sie Berechtigungen

Bereiten Sie den Speicher für EMR Serverless vor

In diesem Tutorial verwenden Sie einen S3-Bucket, um Ausgabedateien und Protokolle des Spark- oder Hive-Beispiel-Workloads zu speichern, den Sie mit einer EMR serverlosen Anwendung ausführen werden. Um einen Bucket zu erstellen, folgen Sie den Anweisungen unter Bucket erstellen im Amazon Simple Storage Service Console-Benutzerhandbuch. Ersetzen Sie alle weiteren Verweise auf amzn-s3-demo-bucket durch den Namen des neu erstellten Buckets.

Erstellen Sie ein EMR Studio, um interaktive Workloads auszuführen

Wenn Sie EMR Serverless verwenden möchten, um interaktive Abfragen über Notebooks auszuführen, die in EMR Studio gehostet werden, müssen Sie einen S3-Bucket und die Mindestdienstrolle für EMR Serverless angeben, um einen Workspace zu erstellen. Die Schritte zur Einrichtung finden Sie unter EMRStudio einrichten im Amazon EMR Management Guide. Weitere Informationen zu interaktiven Workloads finden Sie unterFühren Sie interaktive Workloads mit EMR Serverless über Studio aus EMR.

Erstellen Sie eine Job-Runtime-Rolle

Auftragsausführungen in EMR Serverless verwenden eine Runtime-Rolle, die zur Laufzeit detaillierte Berechtigungen für bestimmte AWS-Services Ressourcen bereitstellt. In diesem Tutorial hostet ein öffentlicher S3-Bucket die Daten und Skripte. Der Bucket amzn-s3-demo-bucket speichert die Ausgabe.

Um eine Job-Runtime-Rolle einzurichten, erstellen Sie zunächst eine Runtime-Rolle mit einer Vertrauensrichtlinie, damit EMR Serverless die neue Rolle verwenden kann. Als Nächstes fügen Sie dieser Rolle die erforderliche S3-Zugriffsrichtlinie hinzu. Die folgenden Schritte führen Sie durch den Prozess.

Console
  1. Navigieren Sie zur IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Roles aus.

  3. Wählen Sie Rolle erstellen.

  4. Wählen Sie als Rollentyp die Option Benutzerdefinierte Vertrauensrichtlinie aus und fügen Sie die folgende Vertrauensrichtlinie ein. Auf diese Weise können Jobs, die an Ihre Amazon EMR Serverless-Anwendungen gesendet wurden, in Ihrem Namen AWS-Services auf andere Jobs zugreifen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  5. Wählen Sie Weiter, um zur Seite „Berechtigungen hinzufügen“ zu gelangen, und wählen Sie dann Richtlinie erstellen aus.

  6. Die Seite „Richtlinie erstellen“ wird auf einer neuen Registerkarte geöffnet. Fügen Sie die Richtlinie JSON unten ein.

    Wichtig

    Ersetzen Sie die amzn-s3-demo-bucket nachstehende Richtlinie durch den tatsächlichen Bucket-Namen, der in erstellt wurdeBereiten Sie den Speicher für EMR Serverless vor. Dies ist eine grundlegende Richtlinie für den S3-Zugriff. Weitere Beispiele für Rollen zur Laufzeit von Jobs finden Sie unterJob-Runtime-Rollen für Amazon EMR Serverless.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadAccessForEMRSamples", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*.elasticmapreduce", "arn:aws:s3:::*.elasticmapreduce/*" ] }, { "Sid": "FullAccessToOutputBucket", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "GlueCreateAndReadDataCatalog", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetDataBases", "glue:CreateTable", "glue:GetTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:GetUserDefinedFunctions" ], "Resource": ["*"] } ] }
  7. Geben Sie auf der Seite „Richtlinie überprüfen“ einen Namen für Ihre Richtlinie ein, z. EMRServerlessS3AndGlueAccessPolicy B.

  8. Aktualisieren Sie die Seite mit den Richtlinien zum Anhängen von Berechtigungen und wählen SieEMRServerlessS3AndGlueAccessPolicy.

  9. Geben Sie auf der Seite Name, Überprüfung und Erstellung für Rollenname einen Namen für Ihre Rolle ein, EMRServerlessS3RuntimeRole z. B. Um diese IAM Rolle zu erstellen, wählen Sie Rolle erstellen aus.

CLI
  1. Erstellen Sie eine Datei mit dem Namenemr-serverless-trust-policy.json, die die Vertrauensrichtlinie enthält, die für die IAM Rolle verwendet werden soll. Die Datei sollte die folgende Richtlinie enthalten.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "EMRServerlessTrustPolicy", "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" } }] }
  2. Erstellen Sie eine IAM Rolle mit dem NamenEMRServerlessS3RuntimeRole. Verwenden Sie die Vertrauensrichtlinie, die Sie im vorherigen Schritt erstellt haben.

    aws iam create-role \ --role-name EMRServerlessS3RuntimeRole \ --assume-role-policy-document file://emr-serverless-trust-policy.json

    Notieren Sie sich den ARN in der Ausgabe. Sie verwenden die neue Rolle bei ARN der Einreichung von Jobs, die im Folgenden als die bezeichnet wirdjob-role-arn.

  3. Erstellen Sie eine Datei mit dem Namenemr-sample-access-policy.json, der die IAM Richtlinie für Ihren Workload definiert. Dies bietet Lesezugriff auf das Skript und die in öffentlichen S3-Buckets gespeicherten Daten sowie Lese- und Schreibzugriff auf. amzn-s3-demo-bucket

    Wichtig

    Ersetzen Sie die folgende Richtlinie durch den tatsächlichen Bucket-Namen, der amzn-s3-demo-bucket in.. erstellt wurde. Bereiten Sie den Speicher für EMR Serverless vor Dies ist eine grundlegende Richtlinie für den Zugriff auf AWS Glue und S3. Weitere Beispiele für Job-Runtime-Rollen finden Sie unterJob-Runtime-Rollen für Amazon EMR Serverless.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadAccessForEMRSamples", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*.elasticmapreduce", "arn:aws:s3:::*.elasticmapreduce/*" ] }, { "Sid": "FullAccessToOutputBucket", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "GlueCreateAndReadDataCatalog", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetDataBases", "glue:CreateTable", "glue:GetTable",Understanding default application behavior, including auto-start and auto-stop, as well as maximum capacity and worker configurations for configuring an application with &EMRServerless;. "glue:UpdateTable", "glue:DeleteTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:GetUserDefinedFunctions" ], "Resource": ["*"] } ] }
  4. Erstellen Sie eine IAM Richtlinie EMRServerlessS3AndGlueAccessPolicy mit dem Namen der Richtliniendatei, die Sie in Schritt 3 erstellt haben. Notieren Sie sich das ARN in der Ausgabe, da Sie das ARN der neuen Richtlinie im nächsten Schritt verwenden werden.

    aws iam create-policy \ --policy-name EMRServerlessS3AndGlueAccessPolicy \ --policy-document file://emr-sample-access-policy.json

    Beachten Sie die neuen Richtlinien ARN in der Ausgabe. Sie werden sie policy-arn im nächsten Schritt ersetzen.

  5. Hängen Sie die IAM Richtlinie EMRServerlessS3AndGlueAccessPolicy an die Job-Runtime-Rolle anEMRServerlessS3RuntimeRole.

    aws iam attach-role-policy \ --role-name EMRServerlessS3RuntimeRole \ --policy-arn policy-arn