Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Guía de migración: EMRFS al sistema de archivos S3A
A partir de la EMR-7.10.0 versión, el sistema de archivos S3A es el conector predeterminado filesystem/s3 para los clústeres EMR de todos los esquemas de archivos S3, incluidos los siguientes:
s3://
s3n://
s3a://
Este cambio se aplica a todas las implementaciones de EMR, incluidas EC2, EKS y EMR sin servidor.
Si desea seguir utilizando EMRFS, puede configurarlo agregando la siguiente propiedad al archivo de configuración core-site.xml:
<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>
Migración de las configuraciones de EMRFS existentes a las configuraciones de S3A
nota
Amazon EMR implementa una asignación de configuración automático entre EMRFS y S3A cuando se cumplen condiciones específicas. El proceso de asignación se produce automáticamente cuando las configuraciones de S3A no están definidas, mientras que las configuraciones de EMRFS correspondientes están presentes. Esta funcionalidad de asignación automática se extiende a las configuraciones a nivel de bucket, lo que permite una integración perfecta entre las configuraciones de EMRFS y S3A. A modo ilustrativo, cuando se configura una configuración de cifrado específica de un bucket en EMRFS mediante «fs.s3.bucket.amzn-s3-demo-bucket1.server» con el valor «XYZ», el sistema la asigna automáticamente a la configuración equivalente de S3A al establecer «SideEncryption.kms.keyIdfs.s3a.encryption.key» en «XYZ» para el bucket especificado amzn-s3-demo-bucket1.
El siguiente conjunto predefinido de configuraciones de EMRFS se traducirá automáticamente a sus correspondientes equivalentes de configuración de S3A. Cualquier configuración que se implemente actualmente mediante la anulación de clústeres o tareas pasará sin problemas al sistema de archivos del S3A sin necesidad de realizar modificaciones o configuraciones manuales adicionales.
De forma predeterminada, esta característica de asignación de configuración se activa automáticamente. Los usuarios que deseen deshabilitar esta traducción automática pueden hacerlo al agregar la siguiente propiedad al archivo de configuración core-site.xml.
<property> <name>fs.s3a.emrfs.compatibility.enable</name> <value>false</value> </property>
nota
La asignación de claves de cifrado de EMRFS (fs.s3.server SideEncryption.kms.keyId o fs.S3.cse.kms.keyID) a S3A (fs.s3a.encryption.key) solo se produce cuando uno SSE-KMS de los dos sistemas de archivos está habilitado el CSE-KMS cifrado.
| Nombre de la configuración EMRFS | Nombre de la configuración S3A |
|---|---|
| fs.s3.aimd.adjustWindow | fs.s3a.aimd.adjustWindow |
| fs.s3.aimd.enabled | fs.s3a.aimd.enabled |
| fs.s3.aimd.increaseIncrement | fs.s3a.aimd.increaseIncrement |
| fs.s3.aimd.initialRate | fs.s3a.aimd.initialRate |
| fs.s3.aimd.maxAttempts | fs.s3a.aimd.maxAttempts |
| fs.s3.aimd.minRate | fs.s3a.aimd.minRate |
| fs.s3.aimd.reductionFactor | fs.s3a.aimd.reductionFactor |
| fs.s3.sts.endpoint | fs.s3a.assumed.role.sts.endpoint |
| fs.s3.sts.session DurationSeconds | fs.s3a.assumed.role.session.duration |
| fs.s3.authorization.roleMapping | fs.s3a.authorization.roleMapping |
| 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 |
| fs.s3.server 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 |
| fs.s3.maxConnections | fs.s3a.connection.maximum |
| fs.s3.maxRetries | 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.canned.acl | fs.s3a.acl.default |
| fs.s3.posicionado Read.optimization.enabled | fs.s3a. posicionado Read.optimization.enabled |
| fs.s3.read FullyIntoBuffers.optimization.enabled | fs.s3a.read FullyIntoBuffers.optimization.enabled |
| fs.s3.signerType | fs.s3a.signing-algorithm |
| fs.s3.storageClass | 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 | fs.s3a.endpoint |
| fs.s3n.ssl.enabled | fs.s3a.connection.ssl.enabled |
| fs.s3.open.accepta FileStatus | fs.s3a.open.accepta 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 |
Condiciones y limitaciones
-
Todos los motores EMR (Spark, Flink MapReduce, Tez, Hive, etc.) utilizarán el S3A como conector S3 predeterminado, excepto los motores Trino y Presto.
-
EMR S3A no admite la integración con EMR Ranger. Considere migrar a AWS Lake Formation.
-
AWS Lake Formation Support With RecordServer For EMR Spark with S3A no es compatible. Considere la posibilidad de utilizar el FGAC nativo de Spark.
-
AWS No se admite S3 Select.
-
S3A no dispone de la opción de limpiar periódicamente las cargas multiparte incompletas (MPU). Considere la posibilidad de configurar una política de ciclo de vida de los bucket de S3 para limpiar las MPU pendientes.
-
Para migrar de EMRFS a S3A utilizando el CSE-CUSTOM cifrado S3, es necesario reescribir el proveedor de claves personalizadas de una interfaz a otra de EMRFSRSAEncryptionMaterialsProvider
Keyring. Consulte Configuración del S3A para obtener más información. CSE-CUSTOM Los directorios de Amazon S3 creados con EMRFS se marcan con un sufijo '_$folder$', mientras que los directorios creados con el sistema de archivos S3A terminan con un sufijo '/', que es coherente con los directorios creados a través de la consola S3. AWS
Para usar un proveedor de credenciales personalizado de S3, defina la propiedad de configuración de S3A
fs.s3a.aws.credentials.providercon la misma clase de proveedor de credenciales que se utilizó anteriormente en la configuración de EMRFSfs.s3.customAWSCredentialsProvider.
Configuraciones de EMRFS no compatibles
Las siguientes configuraciones de EMRFS se identificaron como no compatibles u obsoletas y, en consecuencia, no se proporcionará ninguna asignación directa a sus homólogas de configuración S3A. Estas configuraciones específicas no se traducirán ni transferirán automáticamente durante la migración al sistema de archivos S3A.
| Nombre de configuración de EMRFS | Motivo por el que no se admite |
|---|---|
| fs.s3.consistent | Amazon S3 ofrece una sólida coherencia de lectura posterior a la escritura |
| 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. Notificación consistente. SQS.batchSize | |
| fs.s3. Notificación consistente. SQS.customMsg | |
| fs.s3. Notificación consistente. SQS.pathReportLimit | |
| fs.s3. Notificación consistente. SQS.pullWaitTimeSeconds | |
| fs.s3. Notificación consistente. SQS.queueName | |
| fs.s3.consistent.retryCount | |
| fs.s3.cse.crypto StorageMode | A diferencia de EMRFS, que usa el SDK V1. AWS El S3A usa el AWS SDK V2, donde estas opciones no son compatibles. |
| fs.s3.cse.crypto StorageMode.deleteInstructionFiles.enabled | |
| fs.s3.cse.encriptación V2.enabled | |
| fs.s3.cse.materiales Description.enabled | |
| fs.s3.multipart.clean.age.threshold | S3A no permite limpiar periódicamente las cargas multiparte (MPU) incompletas. En su lugar, configure la política de ciclo de vida de los buckets de S3 para limpiar las MPU pendientes. |
| fs.s3.multipart.clean.enabled | |
| fs.s3.multipart.clean.jitter.max | La característica se agregó para evitar que los subprocesos de carga multiparte se atasquen o se vuelvan lentos. S3A no presenta un problema similar y, por lo tanto, no es obligatorio. |
| 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 | Se trata de configuraciones específicas de EMRFS que no son necesarias en S3A debido a diferencias de funcionalidad y arquitectura. |
| fs.s3.instance Profile.retryPeriodSeconds | |
| fs.s3.external StagedFiles.maxActiveTasks | |
| carpeta fs.s3. Object.autoAction.disabled | |
| Carpeta 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.enabled | |
| 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.reintento PeriodSeconds | |
| fs.s3.seekStrategy | |
| 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 |