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
-
-
Navigieren Sie zur IAM-Konsole unter https://console.aws.amazon.com/iam/.
-
Wählen Sie im linken Navigationsbereich Roles aus.
-
Wählen Sie Rolle erstellen.
-
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"
}
]
}
-
Wählen Sie Weiter, um zur Seite „Berechtigungen hinzufügen“ zu gelangen, und wählen Sie dann Richtlinie erstellen aus.
-
Die Seite „Richtlinie erstellen“ wird auf einer neuen Registerkarte geöffnet. Fügen Sie die Richtlinie JSON unten ein.
{
"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": ["*"]
}
]
}
-
Geben Sie auf der Seite „Richtlinie überprüfen“ einen Namen für Ihre Richtlinie ein, z. EMRServerlessS3AndGlueAccessPolicy
B.
-
Aktualisieren Sie die Seite mit den Richtlinien zum Anhängen von Berechtigungen und wählen SieEMRServerlessS3AndGlueAccessPolicy
.
-
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
-
-
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"
}
}]
}
-
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
.
-
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
{
"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": ["*"]
}
]
}
-
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.
-
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