Guide de migration : système de fichiers EMRFS vers S3A - Amazon EMR

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.

Guide de migration : système de fichiers EMRFS vers S3A

Depuis la version EMR-7.10.0, le système de fichiers S3A est le système de fichiers/connecteur s3 par défaut pour les clusters EMR pour tous les schémas de fichiers S3, y compris les suivants :

  • s3 ://

  • s3n ://

  • s3a ://

Cette modification s'applique à tous les déploiements EMR, y compris les environnements EKS et EMR Serverless EC2, Glue ETL.

Si vous souhaitez continuer à utiliser EMRFS, vous pouvez le configurer en ajoutant la propriété suivante au fichier de core-site.xml configuration :

<property> <name>fs.s3.impl</name> <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value> </property>

Migration de configurations EMRFS existantes vers des configurations S3A

L'ensemble prédéfini de configurations EMRFS suivant sera automatiquement traduit en leurs équivalents de configuration S3A correspondants. Toutes les configurations actuellement mises en œuvre par le biais de remplacements de clusters ou de tâches seront facilement transférées vers le système de fichiers S3A sans nécessiter de configuration ou de modifications manuelles supplémentaires.

Par défaut, cette fonctionnalité de mappage de configuration est automatiquement activée. Les utilisateurs qui souhaitent désactiver cette traduction automatique peuvent le faire en ajoutant la propriété suivante au fichier de configuration core-site.xml.

<property> <name>fs.s3a.emrfs.compatibility.enable</name> <value>false</value> </property>
Mappage de configuration EMRFS vers S3A
Nom de configuration EMRFS Nom de configuration S3A
fs.s3.aimd.AdjustWindow FS.S3A.AIMD.Régler la fenêtre
fs.s3.aimd.enabled fs.s3a.aimd.enabled
fs.s3.aimd.IncreaseIncrement fs.s3a.aimd.IncreaseIncrement
fs.s3.aimd.taux initial fs.s3a.aimd.taux initial
FS.S3.AIMD.Max Tentatives FS.S3A.AIMD.Max Tentatives
Tarif fs.s3.aimd.min Tarif fs.s3a.aimd.min
Facteur de réduction FS.S3.AIM. FS.S3A.AIM D. Facteur de réduction
fs.s3.sts.endpoint fs.s3a.assumed.role.sts.endpoint
fs.s3.sts. sessionDurationSeconds fs.s3a.assumed.role.session.duration
FS.S3. Autorisation. Cartographie des rôles FS.S3A. Autorisation. Cartographie des rôles
fs.s3.authorization.ugi.groupName.Enabled fs.s3a.Authorization.UGI.GroupName.Enabled
fs.s3. credentialsResolverClass fs.s3a.credentials.resolver
fs.s3n.multipart.uploads.enabled fs.s3a.multipart.uploads.enabled
fs.s3n.multipart.uploads.split.size fs.s3a.multipart.size
fs.s3. serverSideEncryption.km. customEncryptionContext fs.s3a.encryption.context
fs.s3. enableServerSideChiffrement fs.s3a.encryption.algorithm
fs.s3. serverSideEncryptionID de clé .kms fs.s3a.encryption.key
fs.s3.cse.kms.region fs.s3a.encryption.cse.kms.region
fs.s3.authorization.audit.enabled fs.s3a.authorization.audit.enabled
fs.s3.buckets.create.enabled fs.s3a.bucket.probe
fs.s3.delete. maxBatchSize fs.s3a.bulk.delete.page.size
fs.s3.filestatus.metadata.enabled fs.s3a.metadata.cache.enabled
Connexions FS.S3.max fs.s3a.connection.maximum
FS.S3.max Réessaie fs.s3a.retry.limit
fs.s3.metadata.cache.expiration.seconds fs.s3a.metadata.cache.expiration.seconds
fs.s3.buffer.dir fs.s3a.buffer.dir
fs.s3.cand.acl fs.s3a.acl.default
FS.S3.PositionedRead.Optimization.Activé FS.S3A.PositionedRead.Optimization.Activé
fs.s3. readFullyIntoBuffers. Optimisation activée fs.3a. readFullyIntoBuffers. Optimisation activée
FS.S3. Type de signature algorithme de signature fs.s3a
Classe de stockage FS.S3 fs.s3a.create.storage.class
fs.s3.threadpool.maxSize fs.s3a.threads.max
fs.s3. useRequesterPaysEn-tête fs.s3a.requester.pays.enabled
fs.s3n.block.size fs.s3a .block.size
fs.s3n.endpoint point de terminaison fs.s3a.
fs.s3n.ssl.enabled fs.s3a.connection.ssl.enabled
fs.s3.open. acceptsFileStatus fs.s3a.open. acceptsFileStatus
connexion fs.s3. maxIdleMilliSecondes fs.s3a.connection.idle.time
fs.s3.s3 .enabled AccessGrants fs.s3a.access.grants.enabled
fs.s3.s3AccessGrants. Retournez à IAM fs.s3a.access.grants.fallback.to.iam

Considérations et restrictions

  • Tous les moteurs EMR (Spark, Flink, Tez MapReduce, Hive, etc.) utiliseront le S3A comme connecteur S3 par défaut, à l'exception des moteurs Trino et Presto.

  • L'EMR S3A ne prend pas en charge l'intégration avec EMR Ranger. Envisagez de migrer vers AWS Lake Formation.

  • AWS Lake Formation Support with RecordServer For EMR Spark with S3A n'est pas pris en charge. Pensez à utiliser Spark Native FGAC.

  • AWS S3 Select n'est pas pris en charge.

  • L'option de nettoyage périodique en cas de téléchargement multipartie (MPU) incomplet n'est pas disponible avec S3A. Envisagez de configurer la politique de cycle de vie des compartiments S3 pour éliminer les éléments pendants MPUs.

  • Afin de migrer d'EMRFS vers S3A tout en utilisant le chiffrement S3 CSE-CUSTOM, le fournisseur de clés personnalisées doit être réécrit d'une interface à l'autre. EMRFSRSAEncryptionMaterialsProvider Reportez-vous à la section Configuration de S3A CSE-CUSTOM pour plus d'informations.

  • Les répertoires Amazon S3 créés à l'aide d'EMRFS sont marqués d'un suffixe « _$folder$ », tandis que les répertoires créés à l'aide du système de fichiers S3A se terminent par un suffixe «/», ce qui est cohérent avec les répertoires créés via la console S3. AWS

  • Pour utiliser un fournisseur d'informations d'identification S3 personnalisé, définissez la propriété de configuration S3A fs.s3a.aws.credentials.provider avec la même classe de fournisseur d'informations d'identification que celle utilisée précédemment dans la configuration EMRFS. fs.s3.customAWSCredentialsProvider

Configurations EMRFS non prises en charge

Les configurations EMRFS suivantes ont été identifiées comme non prises en charge ou obsolètes et, par conséquent, aucun mappage direct ne sera fourni à leurs homologues de configuration S3A. Ces configurations spécifiques ne seront pas automatiquement traduites ou reportées lors de la migration vers le système de fichiers S3A.

Configurations EMRFS non prises en charge et raisons
Nom de la configuration EMRFS Raison pour laquelle vous ne soutenez pas
fs.s3.consistent Amazon S3 offre une forte read-after-write cohérence et, par conséquent, la fonctionnalité d'affichage cohérent EMRFS n'est pas requise.
fs.s3.consistent.dynamodb.endpoint
fs.s3.consistent. fastFirstRetrySecondes
fs.s3.Consistent.FastList
fs.s3. Consistent.FastList.BatchSize
fs.s3.consistent.fastlist.prefetchMetadata
fs.s3.consistent.metadata.accesskey
fs.s3.consistent.metadata.autoCreate
fs.s3.consistent.metadata.capacity.autoincrease
fs.s3.consistent.Metadata.Capacity.AutoIncrease.Factor
fs.s3.Consistent.Metadata.Capacity.AutoIncrease.MaxRead
fs.s3.consistent.Metadata.Capacity.AutoIncrease.MaxWrite
fs.s3.consistent.metadata.conditional
fs.s3.consistent.metadata.delete.ttl.enabled
fs.s3.consistent.metadata.delete.ttl.expiration.seconds
fs.s3.consistent.metadata.etag.verification.enabled
fs.s3.consistent.metadata.read.capacity
fs.s3.consistent.metadata.read.capacity.limit
fs.s3.consistent.metadata.SecretKey
fs.s3.consistent.metadata.TableName
fs.s3.consistent.metadata.write.capacity
fs.s3.consistent.metadata.write.capacity.limit
fs.s3.consistent.notification. CloudWatch
fs.s3.consistent.notification.sqs
fs.s3.consistent.notification.sqs.Taille du lot
fs.s3.consistent.notification.sqs.customMsg
fs.s3.consistent.notification.sqs. pathReportLimit
fs.s3.consistent.notification.sqs. pullWaitTimeSecondes
fs.s3.consistent.notification.sqs.QueueName
fs.s3.consistent.RetryCount
fs.s3.cse. cryptoStorageMode Contrairement à EMRFS qui utilise le AWS SDK V1. S3A utilise le AWS SDK V2 lorsque ces options ne sont pas prises en charge.
fs.s3.cse. cryptoStorageMode. deleteInstructionFiles.activé
fs.s3.cse.EncryptionV2.activé
fs.s3.cse.materialsDescription.Enabled
fs.s3.multipart.clean.age.threshold Le nettoyage périodique en cas de téléchargement multipartie (MPU) incomplet n'est pas disponible avec S3A. Configurez plutôt la politique de cycle de vie des compartiments S3 pour éliminer les éléments pendants MPUs.
fs.s3.multipart.clean.enabled
fs.s3.multipart.clean.jitter.max Cette fonctionnalité a été ajoutée pour éviter que les fils de téléchargement en plusieurs parties ne soient bloqués ou lents. Le S3A ne présente pas de problème similaire et n'est donc pas requis.
fs.s3.multipart.fraction.part.avg.completion.time
fs.s3.multipart.part.attempts
fs.s3.multipart.th.fraction.parts.completed
fs.s3.instanceprofile.retryCount Il s'agit de configurations spécifiques à EMRFS qui ne sont pas requises dans S3A en raison de différences de fonctionnalité et d'architecture.
fs.s3.instanceProfile. retryPeriodSeconds
fs.s3. externalStagedFiles. maxActiveTasks
fs.s3.FolderObject.AutoAction.Disabled
fs.s3.FolderObject .AutoInsert
fs.s3.GetObject. initialSocketTimeoutMillisecondes
fs.s3.ListFiles.IncrementalFetch.Enabled
fs.s3. listFilesInCommande. includeDescendantsOfDossiers
fs.s3.ListObjects.EncodingType
fs.s3.buckets.create.region
fs.s3.configuration.load.enablebled
fs.s3.create. allowFileNameEndsWithFolderSuffix
fs.s3.open.LazyConnection.activé
fs.s3.region.fallback
fs.s3.region.retryCount
fs.s3.region. retryPeriodSeconds
fs.s3.rename.algorithm.version
fs.s3.RequestHandler.ClassNames
fs.s3. Demander des statistiques. Activé
fs.s3. Demander des statistiques. Sinks
fs.s3. retryPeriodSeconds
Stratégie FS.S3.SEEK
fs.s3.threadpool.buffer.size
fs.s3.threadpool.maxSize
fs.s3. useDirectoryHeaderAsFolderObject
fs.s3n.filestatuscache.enable
fs.s3.delete.retryCount
fs.s3.s3 .CacheSize AccessGrants
fs.s3.s3. AccessGrants retryDelayBase
fs.s3.s3. AccessGrants throttledRetryDelayBase
fs.s3.s3 .maxRéessais AccessGrants