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