View a markdown version of this page

Guia de migração: EMRFS para o Sistema de arquivos S3A - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Guia de migração: EMRFS para o Sistema de arquivos S3A

A partir da EMR-7.10.0 versão, o sistema de arquivos S3A é o conector padrão para clusters do EMR filesystem/s3 para todos os esquemas de arquivos do S3, incluindo os seguintes:

  • s3://

  • s3n://

  • s3a://

Essa alteração é aplicável a todas as implantações do EMR, incluindo o EC2, o EKS e o EMR Sem Servidor.

Se quiser continuar usando o EMRFS, você pode configurar isso adicionando a seguinte propriedade ao arquivo de configuração 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>

Migração das configurações existentes do EMRFS para configurações do S3A

nota

O Amazon EMR implementa o mapeamento automático de configurações entre o EMRFS e o S3A quando condições específicas são atendidas. O processo de mapeamento ocorre automaticamente quando as configurações do S3A são indefinidas, enquanto as configurações correspondentes do EMRFS estão presentes. Essa funcionalidade de mapeamento automático se estende às configurações em nível de bucket, permitindo uma integração perfeita entre as configurações do EMRFS e do S3A. Como ilustração, quando você configura uma configuração de criptografia específica do bucket no EMRFS usando 'fs.s3.bucket.amzn-s3-demo-bucket1.server 'com o valor “XYZ”, o sistema automaticamente mapeia isso para a configuração equivalente do S3A definindo' SideEncryption.kms.keyId fs.s3a.encryption.key 'como “XYZ” para o bucket especificado amzn-s3-demo-bucket1.

O seguinte conjunto predefinido de configurações do EMRFS será automaticamente convertido em seus respectivos equivalentes de configuração do S3A. Todas as configurações atualmente implementadas por meio de substituições de cluster ou de trabalho farão a transição perfeita para o sistema de arquivos S3A sem exigir configurações ou modificações manuais adicionais.

Por padrão, esse recurso de mapeamento de configurações é ativado automaticamente. Os usuários que desejam desabilitar essa conversão automática podem fazer isso adicionando a seguinte propriedade ao arquivo de configuração core-site.xml.

<property> <name>fs.s3a.emrfs.compatibility.enable</name> <value>false</value> </property>
nota

O mapeamento da chave de criptografia do EMRFS (fs.s3.server SideEncryption.kms.keyId ou fs.s3.cse.kms.keyID) para o S3A (fs.s3a.encryption.key) ocorre somente quando uma ou a criptografia está ativada em qualquer sistema de arquivos. SSE-KMS CSE-KMS

Mapeamento de configurações do EMRFS para o S3A
Nome da configuração do EMRFS Nome da configuração do 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/SideEncryption.kms.keyId fs.s3.cse.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.accepts FileStatus fs.s3a.open.aceita 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

Condições e limitações

  • Todos os motores EMR — Spark, Flink, Tez MapReduce, Hive etc. usarão o S3A como o conector S3 padrão, exceto os motores Trino e Presto.

  • O EMR S3A não oferece suporte para integração com o EMR Ranger. Considere migrar para AWS Lake Formation.

  • AWS Não há suporte RecordServer para Lake Formation Support with For EMR Spark with S3A. Considere usar o Spark Native FGAC.

  • AWS O S3 Select não é suportado.

  • A opção de limpar periodicamente uploads em várias partes (MPU) incompletos não está disponível com o S3A - Considere configurar a política de ciclo de vida de buckets do S3 para limpar MPUs pendentes.

  • Para migrar do EMRFS para o S3A usando a CSE-CUSTOM criptografia S3, o provedor de chave personalizada precisa ser reescrito da interface para a interface do Keyring. EMRFSRSAEncryptionMaterialsProvider Consulte a configuração do S3A CSE-CUSTOMpara obter mais informações.

  • Os diretórios do Amazon S3 criados usando o EMRFS são marcados com o sufixo '_$folder$', enquanto os diretórios criados usando o sistema de arquivos S3A terminam com o sufixo '/', que é consistente com os diretórios criados por meio do console do S3. AWS

  • Para usar um provedor de credenciais personalizadas do S3, defina a propriedade de configuração do S3A fs.s3a.aws.credentials.provider com a mesma classe de provedor de credenciais usada anteriormente na configuração fs.s3.customAWSCredentialsProvider do EMRFS.

Configurações do EMRFS sem suporte

As seguintes configurações do EMRFS foram identificadas como sem suporte ou obsoletas e, consequentemente, nenhum mapeamento direto será fornecido para suas contrapartes de configuração do S3A. Essas configurações específicas não serão convertidas ou transferidas automaticamente durante a migração para o sistema de arquivos S3A.

Configurações do EMRFS sem suporte e motivos
Nome da configuração do EMRFS Motivo para a ausência de suporte
fs.s3.consistent Como o Amazon S3 oferece forte consistência de leitura após gravação, o recurso de visualização consistente do EMRFS não é necessário.
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 Ao contrário do EMRFS, que usa o AWS SDK V1. O S3A usa o AWS SDK V2 onde essas opções não são suportadas.
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 A opção de limpar periodicamente uploads em várias partes (MPU) incompletos não está disponível com o S3A. Em vez disso, configure a política de ciclo de vida de buckets do S3 para limpar MPUs pendentes.
fs.s3.multipart.clean.enabled
fs.s3.multipart.clean.jitter.max O recurso foi adicionado para evitar que threads de uploads em várias partes fiquem presos ou lentos. O S3A não apresenta um problema semelhante e, portanto, o recurso não é necessário.
fs.s3.multipart.fraction.part.avg.completion.time
fs.s3.multipart.part.attempts
fs.s3.multipart.th.fraction.parts.complete
fs.s3.instance Profile.retryCount Essas são configurações específicas do EMFS que não são necessárias no S3A devido a diferenças de funcionalidade e arquitetura.
fs.s3.instance Profile.retryPeriodSeconds
fs.s3.external StagedFiles.maxActiveTasks
fs.s3.folder Object.autoAction.disabled
fs.s3.folder 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
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