View a markdown version of this page

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

À partir de cette EMR-7.10.0 version, le système de fichiers S3A est le filesystem/s3 connecteur 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 EC2, EKS et EMR Serverless.

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> <property> <name>fs.s3n.impl</name> <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value> </property>

Migration de configurations EMRFS existantes vers des configurations S3A

Note

Amazon EMR implémente le mappage automatique de configuration entre EMRFS et S3A lorsque des conditions spécifiques sont remplies. Le processus de mappage se produit automatiquement lorsque les configurations S3A ne sont pas définies alors que les configurations EMRFS correspondantes sont présentes. Cette fonctionnalité de mappage automatique s'étend aux configurations au niveau du compartiment, permettant une intégration parfaite entre les paramètres EMRFS et S3A. À titre d'illustration, lorsque vous configurez un paramètre de chiffrement spécifique à un compartiment dans EMRFS à l'aide de « fs.s3.bucket.amzn-s3-demo-bucket1.server SideEncryption.kms.keyId » avec la valeur « XYZ », le système le mappe automatiquement à la configuration S3A équivalente en définissant « fs.s3a.encryption.key » sur « XYZ » pour le compartiment amzn-s3-demo-bucket1 spécifié.

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>
Note

Le mappage des clés de chiffrement entre EMRFS (fs.s3.server SideEncryption.kms.keyId ou fs.s3.cse.kms.keyID) et S3A (fs.s3a.encryption.key) se produit uniquement lorsque l'un ou l'autre système de fichiers est activé ou que le chiffrement est activé sur l'un ou l'autre des systèmes de fichiers. SSE-KMS CSE-KMS

Mappage de configuration EMRFS vers S3A
Nom de configuration EMRFS Nom de configuration S3A
fs.s3.aimd.AdjustWindow FS.S3A.AIMD.Ajuster 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
session fs.s3.st DurationSeconds fs.s3a.assumed.role.session.duration
FS.S3. Autorisation. Cartographie des rôles FS.S3A. Autorisation. Cartographie des rôles
fs.s3.authorization.ugi.group Name.enabled fs.s3a.authorization.ugi.group Name.enabled
fs.s3.credentials ResolverClass fs.s3a.credentials.resolver
fs.s3n.multipart.uploads.enabled fs.s3a.multipart.uploads.enabled
fs.s3n.multipart.uploads.split.size fs.s3a.multipart.size
serveur fs.s3 SideEncryption.kms.customEncryptionContext fs.s3a.encryption.context
fs.s3.enable ServerSideEncryption fs.s3a.encryption.algorithm
fs.s3.server/ fs.s3.cse.kms.keyID SideEncryption.kms.keyId 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.max BatchSize 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 positionné Read.optimization.enabled fs.s3a.positionné Read.optimization.enabled
fs.s3.read FullyIntoBuffers.optimization.enabled fs.s3a.read FullyIntoBuffers.optimization.enabled
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.use RequesterPaysHeader 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.accepts FileStatus fs.s3a.open.accepts FileStatus
fs.s3.connection.max IdleMilliSeconds fs.s3a.connection.idle.time
fs.s3.s3 AccessGrants.enabled fs.s3a.access.grants.enabled
fs.s3.s3 AccessGrants.fallbackToIAM 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. Envisagez d'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 le S3A. Envisagez de configurer la politique de cycle de vie des compartiments S3 pour nettoyer les MPU pendants.

  • Afin de migrer d'EMRFS vers S3A tout en utilisant le CSE-CUSTOM chiffrement S3, le fournisseur de clés personnalisé doit être réécrit d'une interface à l'autre. EMRFSRSAEncryptionMaterialsProvider Reportez-vous à la section Configuration de S3A CSE-CUSTOMpour 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 cohérence entre lecture après écriture et, par conséquent, la fonctionnalité d'affichage cohérent EMRFS n'est pas requise.
fs.s3.consistent.dynamodb.endpoint
fs.s3.consistent.fast FirstRetrySeconds
fs.s3.Consistent.FastList
fs.s3.consistent.fast List.batchSize
fs.s3.consistent.fast List.prefetchMetadata
fs.s3.consistent.metadata.AccessKey
fs.s3.consistent.metadata.autoCreate
fs.s3.consistent.metadata.capacity.autoIncrease
fs.s3.consistent.metadata.capacity.auto Increase.factor
fs.s3.consistent.metadata.capacity.auto Increase.maxRead
fs.s3.consistent.metadata.capacity.auto Increase.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.batchSize
fs.s3.consistent.notification. SQS.customMsg
fs.s3.consistent.notification. SQS.pathReportLimit
fs.s3.consistent.notification. SQS.pullWaitTimeSeconds
fs.s3.consistent.notification. SQS.queueName
fs.s3.consistent.RetryCount
fs.s3.cse.crypto StorageMode 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.crypto StorageMode.deleteInstructionFiles.enabled
fs.s3.cse.encryption V2.enabled
fs.s3.cse.materials Description.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 nettoyer les MPU en suspens.
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 instance Profile.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 instance Profile.retryPeriodSeconds
fs.s3.external StagedFiles.maxActiveTasks
dossier fs.s3. Object.autoAction.disabled
dossier fs.s3. Object.autoInsert
fs.s3.get Object.initialSocketTimeoutMilliseconds
fs.s3.list Files.incrementalFetch.enabled
fs.s3.list FilesInOrder.includeDescendantsOfFiles
fs.s3.list Objects.encodingType
fs.s3.buckets.create.region
fs.s3.configuration.load.enablebled
fs.s3.create.allow FileNameEndsWithFolderSuffix
fs.s3.open.lazy Connection.enabled
fs.s3.region.fallback
fs.s3.region.retryCount
fs.s3.region.retry PeriodSeconds
fs.s3.rename.algorithm.version
fs.s3.request Handler.classNames
fs.s3.request Statistics.enabled
fs.s3.request Statistics.sinks
fs.s3.retry PeriodSeconds
Stratégie FS.S3.SEEK
fs.s3.threadpool.buffer.size
fs.s3.threadpool.maxSize
fs.s3.use DirectoryHeaderAsFolderObject
fs.s3n.filestatuscache.enable
fs.s3.delete.retryCount
fs.s3.s3 AccessGrants.cacheSize
fs.s3.s3 AccessGrants.retryDelayBase
fs.s3.s3 AccessGrants.throttledRetryDelayBase
fs.s3.s3 AccessGrants.maxRetries