Amazon S3 sur Outposts avec Amazon EMR local sur Outposts - Amazon S3 sur Outposts

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.

Amazon S3 sur Outposts avec Amazon EMR local sur Outposts

Amazon EMR est une plate-forme de cluster gérée qui simplifie l'exécution de frameworks de mégadonnées, tels que Apache Hadoop and Apache Spark, 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 vous aide également à transformer et à déplacer de grandes quantités de données vers et depuis d'autres banques de données et bases de AWS données, et prend en charge Amazon S3 on Outposts. Pour plus d’informations sur Amazon EMR, consultez Amazon EMR sur Outposts dans le Guide de gestion Amazon EMR.

Pour Amazon S3 on Outposts, Amazon EMR a commencé à prendre en charge le Apache Hadoop Connecteur S3A en 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 Amazon S3 on Outposts pour stocker les données d'entrée et de sortie. AWS SDK pour Java 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 de plus amples informations, veuillez consulter 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 on 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) de S3 on 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 afin d'accéder aux données d'un bucket Amazon S3 on Outposts, vous devez utiliser le Apache Hadoop Connecteur S3A Pour utiliser le connecteur, assurez-vous que tous vos S3 URIs utilisent le s3a schéma. 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 votre S3 URIs fonctionne avec le connecteur S3A.

Pour configurer l'implémentation du système de fichiers afin qu'elle fonctionne avec le connecteur S3A, vous utilisez les propriétés de fs.AbstractFileSystem.file_scheme.impl configuration fs.file_scheme.impl et de votre cluster EMR, file_scheme qui correspondent au type de URIs S3 dont vous disposez. Pour utiliser l’exemple suivant, remplacez les user input placeholders par vos propres informations. Par exemple, pour modifier l'implémentation du système de fichiers pour S3 URIs qui utilise le s3 schéma, 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.file_scheme.impl sur org.apache.hadoop.fs.s3a.S3AFileSystem et définissez la propriété fs.AbstractFileSystem.file_scheme.impl sur org.apache.hadoop.fs.s3a.S3A.

Par exemple, si vous accédez au chemin s3a://bucket/..., définissez la propriété 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.

Création d’une stratégie d’autorisations

Avant de créer un cluster EMR qui utilise Amazon S3 sur Outposts, vous devez créer une politique IAM à associer au profil d' EC2 instance Amazon du 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 user input placeholders par vos propres informations.

{ "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 s'exécute Spark avec S3 sur Outposts
  1. Ouvrez la console Amazon EMR à l'adresse https://console.aws.amazon.com/elasticmapreduce/.

  2. Dans le volet de navigation de gauche, choisissez Clusters.

  3. Choisissez Créer un cluster.

  4. Pour la version Amazon EMR, choisissez emr-7.0.0 ou version ultérieure.

  5. Pour Offre d’applications, choisissez Spark interactive. Sélectionnez ensuite les autres applications prises en charge que vous souhaitez inclure dans votre cluster.

  6. 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 user input placeholders par vos propres informations.

    [ { "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" } } ]
  7. Dans la section Mise en réseau, choisissez un cloud privé virtuel (VPC) et un sous-réseau situés 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.

  8. Dans la section profil d'EC2 instance pour Amazon EMR, choisissez le rôle IAM auquel est jointe la politique d'autorisation que vous avez créée précédemment.

  9. 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

fs.s3a.aws.credentials.provider

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.

fs.s3a.committer.name

file

magic

Le validateur magique est le seul validateur pris en charge pour S3 sur Outposts.

fs.s3a.select.enabled

TRUE

FALSE

S3 Select n’est pas pris en charge sur Outposts.

JAVA_HOME

/usr/lib/jvm/java-8

/usr/lib/jvm/java-11-amazon-corretto.x86_64

S3 sur Outposts sur S3A nécessite Java version 11.

Le tableau suivant décrit Spark les configurations 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

spark.sql.sources.fastS3PartitionDiscovery.enabled

TRUE

FALSE

S3 sur Outposts ne prend pas en charge la partition rapide.

spark.executorEnv.JAVA_HOME

/usr/lib/jvm/java-8

/usr/lib/jvm/java-11-amazon-corretto.x86_64

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 de plus amples informations, veuillez consulter Chiffrement des données dans S3 sur Outposts.

  • Amazon S3 on Outposts ne prend pas en charge les écritures avec le S3A. FileOutputCommitter Les écritures effectuées avec le S3A FileOutputCommitter sur les compartiments S3 on 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.