Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Commencer à utiliser Amazon EMR Serverless
Ce didacticiel vous aide à démarrer avec EMR Serverless lorsque vous déployez un exemple de charge de travail Spark ou Hive. Vous allez créer, exécuter et déboguer votre propre application. Nous présentons les options par défaut dans la plupart des parties de ce didacticiel.
Avant de lancer une application EMR sans serveur, effectuez les tâches suivantes.
Accorder des autorisations pour utiliser EMR Serverless
Pour utiliser EMR Serverless, vous avez besoin d'un utilisateur ou d'un IAM rôle associé à une politique qui accorde des autorisations pour EMR Serverless. Pour créer un utilisateur et associer la politique appropriée à cet utilisateur, suivez les instructions figurant dansAccorder des autorisations.
Préparer le stockage pour le mode EMR Serverless
Dans ce didacticiel, vous allez utiliser un compartiment S3 pour stocker les fichiers de sortie et les journaux de l'exemple de charge de travail Spark ou Hive que vous exécuterez à l'aide d'une application EMR sans serveur. Pour créer un bucket, suivez les instructions de la section Création d'un bucket dans le guide de l'utilisateur de la console Amazon Simple Storage Service. Remplacez toute autre référence amzn-s3-demo-bucket
à par le nom du compartiment nouvellement créé.
Créez un EMR studio pour exécuter des charges de travail interactives
Si vous souhaitez utiliser EMR Serverless pour exécuter des requêtes interactives via des blocs-notes hébergés dans EMR Studio, vous devez spécifier un compartiment S3 et le rôle de service minimum pour que EMR Serverless puisse créer un espace de travail. Pour connaître les étapes de configuration, consultez la section Configurer un EMR studio dans le guide EMR de gestion Amazon. Pour plus d'informations sur les charges de travail interactives, consultezExécutez des charges de travail interactives avec EMR Serverless via Studio EMR.
Création d'un rôle d'exécution de tâches
Les exécutions de tâches dans EMR Serverless utilisent un rôle d'exécution qui fournit des autorisations détaillées à des ressources spécifiques lors Services AWS de l'exécution. Dans ce didacticiel, un compartiment S3 public héberge les données et les scripts. Le bucket amzn-s3-demo-bucket
stocke la sortie.
Pour configurer un rôle d'exécution de tâche, créez d'abord un rôle d'exécution avec une politique de confiance afin que EMR Serverless puisse utiliser le nouveau rôle. Ensuite, associez la politique d'accès S3 requise à ce rôle. Les étapes suivantes vous guident tout au long du processus.
- Console
-
-
Accédez à la console IAM à l'adresse https://console.aws.amazon.com/iam/.
-
Dans le panneau de navigation de gauche, choisissez Rôles.
-
Sélectionnez Créer un rôle.
-
Pour le type de rôle, choisissez Politique de confiance personnalisée et collez la politique de confiance suivante. Cela permet aux tâches soumises à vos applications Amazon EMR Serverless d'accéder à d'autres applications Services AWS en votre nom.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "emr-serverless.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
Choisissez Suivant pour accéder à la page Ajouter des autorisations, puis choisissez Créer une politique.
-
La page Créer une politique s'ouvre dans un nouvel onglet. Collez la politique JSON ci-dessous.
{
"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": ["*"]
}
]
}
-
Sur la page Réviser la politique, entrez le nom de votre politique, tel queEMRServerlessS3AndGlueAccessPolicy
.
-
Actualisez la page de politique d'autorisation de joindre, puis choisissezEMRServerlessS3AndGlueAccessPolicy
.
-
Dans la page Nom, révision et création, pour Nom du rôle, entrez le nom de votre rôle, par exemple,EMRServerlessS3RuntimeRole
. Pour créer ce IAM rôle, choisissez Create role.
- CLI
-
-
Créez un fichier nommé emr-serverless-trust-policy.json
contenant la politique de confiance à utiliser pour le IAM rôle. Le fichier doit contenir la politique suivante.
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "EMRServerlessTrustPolicy",
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "emr-serverless.amazonaws.com"
}
}]
}
-
Créez un IAM rôle nomméEMRServerlessS3RuntimeRole
. Utilisez la politique de confiance que vous avez créée à l'étape précédente.
aws iam create-role \
--role-name EMRServerlessS3RuntimeRole \
--assume-role-policy-document file://emr-serverless-trust-policy.json
Notez la valeur ARN dans la sortie. Vous utilisez le nouveau rôle lors ARN de la soumission des offres d'emploi, ci-après dénomméjob-role-arn
.
-
Créez un fichier nommé emr-sample-access-policy.json
qui définit la IAM politique de votre charge de travail. Cela fournit un accès en lecture au script et aux données stockées dans des compartiments S3 publics et un accès en lecture-écriture à. 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": ["*"]
}
]
}
-
Créez une IAM politique nommée EMRServerlessS3AndGlueAccessPolicy
avec le fichier de stratégie que vous avez créé à l'étape 3. Prenez note de ce qui ARN se trouve dans le résultat, car vous utiliserez ARN celui de la nouvelle politique à l'étape suivante.
aws iam create-policy \
--policy-name EMRServerlessS3AndGlueAccessPolicy \
--policy-document file://emr-sample-access-policy.json
Notez que la nouvelle politique apparaît ARN dans le résultat. Vous le remplacerez policy-arn
à l'étape suivante.
-
Attachez la IAM politique EMRServerlessS3AndGlueAccessPolicy
au rôle d'exécution du jobEMRServerlessS3RuntimeRole
.
aws iam attach-role-policy \
--role-name EMRServerlessS3RuntimeRole \
--policy-arn policy-arn