Amazon S3 sur Outposts avec Amazon EMR local sur Outposts
Amazon EMR est une plateforme de cluster gérée qui simplifie l’exécution des infrastructures de big data, telles qu’Apache Hadoop et Apache Spark, sur AWS pour traiter et analyser de grandes quantités de données. Grâce à ces infrastructures et des projets open source connexes, vous pouvez traiter des données à des fins d’analytique et pour des charges de travail d’informatique décisionnelle. Amazon EMR aide également à transformer et déplacer de grandes quantités de données vers et à partir d’autres bases de données et magasins de données AWS, et prend en charge Amazon S3 sur Outposts. Pour plus d’informations sur Amazon EMR, consultez Amazon EMR sur Outposts dans le Guide de gestion Amazon EMR.
Pour Amazon S3 sur Outposts, Amazon EMR a commencé à prendre en charge le connecteur Apache Hadoop S3A dans sa version 7.0.0. Les versions antérieures d’Amazon EMR ne prennent pas en charge le service S3 local sur Outposts, et le système de fichiers EMR (EMRFS) n’est pas pris en charge.
Applications prises en charge
Amazon EMR avec Amazon S3 sur Outposts prend en charge les applications suivantes :
-
Hadoop
-
Spark
-
Hue
-
Hive
-
Sqoop
-
Pig
-
Hudi
-
Flink
Pour plus d’informations, consultez le Guide de version Amazon EMR.
Création et configuration d’un compartiment Amazon S3 sur Outposts
Amazon EMR utilise AWS SDK for Java avec Amazon S3 sur Outposts pour stocker des données d’entrée et de sortie. Vos fichiers journaux Amazon EMR sont stockés dans un emplacement Amazon S3 régional que vous sélectionnez et ne sont pas stockés localement sur l’Outpost. Pour plus d’informations, consultez Journaux Amazon EMR dans le Guide de gestion Amazon EMR.
Pour se conformer aux exigences Amazon S3 et DNS, les compartiments S3 sur Outposts sont soumis à des restrictions et des limitations. Pour en savoir plus, consultez Création d’un compartiment S3 sur Outposts.
À partir d’Amazon EMR version 7.0.0, vous pouvez utiliser Amazon EMR avec S3 sur Outposts et le système de fichiers S3A.
Prérequis
Autorisations S3 sur Outposts : lorsque vous créez votre profil d’instance Amazon EMR, votre rôle doit contenir l’espace de noms AWS Identity and Access Management (IAM) pour S3 sur Outposts. S3 sur Outposts possède son propre espace de noms, s3-outposts*
. Pour obtenir un exemple de politique utilisant cet espace de noms, consultez Configuration d’IAM avec S3 sur Outposts.
Connecteur S3A : pour configurer votre cluster EMR pour accéder aux données d’un compartiment Amazon S3 sur Outposts, vous devez utiliser le connecteur Apache Hadoop S3A. Pour utiliser ce connecteur, assurez-vous que tous vos URI S3 utilisent le schéma s3a
. Si ce n’est pas le cas, vous pouvez configurer l’implémentation du système de fichiers que vous utilisez pour votre cluster EMR afin que vos URI S3 fonctionnent avec le connecteur S3A.
Pour configurer l’implémentation du système de fichiers afin qu’elle fonctionne avec le connecteur S3A, utilisez les propriétés de configuration fs.
et file_scheme
.implfs.AbstractFileSystem.
pour votre cluster EMR, où file_scheme
.impl
correspond au type des URI S3 dont vous disposez. Pour utiliser l’exemple suivant, remplacez les file_scheme
par vos propres informations. Par exemple, pour modifier l’implémentation du système de fichiers pour les URI S3 qui utilisent le schéma user input
placeholders
s3
, spécifiez les propriétés de configuration de cluster suivantes :
[ { "Classification": "core-site", "Properties": { "fs.
s3
.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3
.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]
Pour utiliser S3A, définissez la propriété de configuration fs.
sur file_scheme
.implorg.apache.hadoop.fs.s3a.S3AFileSystem
et définissez la propriété fs.AbstractFileSystem.
sur file_scheme
.implorg.apache.hadoop.fs.s3a.S3A
.
Par exemple, si vous accédez au chemin s3a://
, définissez la propriété bucket
/...fs.s3a.impl
sur org.apache.hadoop.fs.s3a.S3AFileSystem
et définissez la propriété fs.AbstractFileSystem.s3a.impl
sur org.apache.hadoop.fs.s3a.S3A
.
Premiers pas avec Amazon EMR et Amazon S3 sur Outposts
Les rubriques suivantes expliquent comment commencer à utiliser Amazon EMR avec Amazon S3 sur Outposts.
Rubriques
Création d’une stratégie d’autorisations
Avant de créer un cluster EMR utilisant Amazon S3 sur Outposts, vous devez créer une politique IAM à attacher au profil d’instance Amazon EC2 pour le cluster. Cette politique doit disposer d’autorisations pour accéder à l’Amazon Resource Name (ARN) du point d’accès S3 sur Outposts. Pour plus d’informations sur la création de politiques IAM pour S3 sur Outposts, consultez Configuration d’IAM avec S3 sur Outposts.
L’exemple de politique suivant montre comment accorder les autorisations requises. Après avoir créé la politique, associez-la au rôle de profil d’instance que vous utilisez pour créer votre cluster EMR, comme décrit dans la section Création et configuration de votre cluster. Pour utiliser cet exemple, remplacez
par vos propres informations.user input
placeholders
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:s3-outposts:
us-west-2
:111122223333
:outpost/op-01ac5d28a6a232904
/accesspoint/access-point-name
, "Action": [ "s3-outposts:*" ] } ] }
Création et configuration de votre cluster
Pour créer un cluster qui exécute Spark avec S3 sur Outposts, procédez comme suit dans la console.
Pour créer un cluster qui exécute Spark avec S3 sur Outposts
Ouvrez la console Amazon EMR à l’adresse https://console.aws.amazon.com/elasticmapreduce/
. -
Dans le volet de navigation de gauche, choisissez Clusters.
-
Choisissez Créer un cluster.
-
Pour Version Amazon EMR, choisissez emr-7.0.0 ou une version ultérieure.
-
Pour Offre d’applications, choisissez Spark interactive. Sélectionnez ensuite les autres applications prises en charge que vous souhaitez inclure dans votre cluster.
-
Pour activer Amazon S3 sur Outposts, entrez vos paramètres de configuration.
Exemples de paramètres de configuration
Pour utiliser les exemples de paramètres de configuration suivants, remplacez les
par vos propres informations.user input placeholders
[ { "Classification": "core-site", "Properties": { "fs.s3a.bucket.
DOC-EXAMPLE-BUCKET
.accesspoint.arn": "arn:aws:s3-outposts:us-west-2
:111122223333
:outpost/op-01ac5d28a6a232904
/accesspoint/access-point-name
" "fs.s3a.committer.name": "magic", "fs.s3a.select.enabled": "false" } }, { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64" } } ], "Properties": {} }, { "Classification": "spark-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64" } } ], "Properties": {} }, { "Classification": "spark-defaults", "Properties": { "spark.executorEnv.JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64", "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ] -
Dans la section Mise en réseau, choisissez un cloud privé virtuel (VPC) et un sous-réseau qui se trouvent sur votre rack AWS Outposts. Pour plus d’informations sur Amazon EMR sur Outposts, consultez Clusters EMR sur AWS Outposts dans le Guide de gestion Amazon EMR.
-
Dans la section Profil d’instance EC2 pour Amazon EMR, choisissez le rôle IAM auquel est jointe la politique d’autorisation que vous avez créée précédemment.
-
Configurez les paramètres de cluster restants, puis choisissez Créer un cluster.
Présentation des configurations
Le tableau suivant décrit les configurations S3A et les valeurs à spécifier pour leurs paramètres lorsque vous configurez un cluster qui utilise S3 sur Outposts avec Amazon EMR.
Paramètre | Valeur par défaut | Valeur requise pour S3 sur Outposts | Explication |
---|---|---|---|
|
Si la valeur n’est pas spécifiée, S3A recherchera S3 dans le compartiment de la région avec le nom de compartiment Outposts. |
ARN du point d’accès du compartiment S3 sur Outposts |
Amazon S3 sur Outposts prend en charge les points d’accès Virtual Private Cloud (VPC) uniquement comme seul moyen d’accéder à vos compartiments Outposts. |
|
file |
|
Le validateur magique est le seul validateur pris en charge pour S3 sur Outposts. |
|
|
|
S3 Select n’est pas pris en charge sur Outposts. |
|
|
|
S3 sur Outposts sur S3A nécessite Java version 11. |
Le tableau suivant décrit les configurations Spark et les valeurs à spécifier pour leurs paramètres lorsque vous configurez un cluster qui utilise S3 sur Outposts avec Amazon EMR.
Paramètre | Valeur par défaut | Valeur requise pour S3 sur Outposts | Explication |
---|---|---|---|
|
|
|
S3 sur Outposts ne prend pas en charge la partition rapide. |
|
|
|
S3 sur Outposts sur S3A nécessite Java version 11. |
Considérations
Tenez compte des points suivants lorsque vous intégrez Amazon EMR avec les compartiments S3 sur Outposts :
-
Amazon S3 sur Outposts est pris en charge avec Amazon EMR version 7.0.0 et ultérieure.
-
Le connecteur S3A est nécessaire pour utiliser S3 sur Outposts avec Amazon EMR. Seul S3A dispose des fonctionnalités requises pour interagir avec les compartiments S3 sur Outposts. Pour obtenir des informations sur la configuration du connecteur S3A, consultez Conditions préalables.
-
Amazon S3 sur Outposts prend en charge uniquement le chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3) avec Amazon EMR. Pour en savoir plus, consultez Chiffrement des données dans S3 sur Outposts.
-
Amazon S3 sur Outposts ne prend pas en charge les écritures avec le validateur FileOutputCommitter S3A. Les écritures effectuées avec le validateur FileOutputCommitter S3A sur des compartiments S3 sur Outposts entraînent l’erreur suivante :
InvalidStorageClass : La classe de stockage que vous avez spécifiée n’est pas valide
. -
Amazon S3 sur Outposts n’est pas pris en charge avec Amazon EMR sans serveur ni Amazon EMR sur EKS.
-
Les journaux Amazon EMR sont stockés dans un emplacement Amazon S3 régional que vous sélectionnez et ne sont pas stockés localement dans le compartiment S3 sur Outposts.