View a markdown version of this page

Guida alla migrazione: da EMRFS a S3A Filesystem - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Guida alla migrazione: da EMRFS a S3A Filesystem

A partire dalla EMR-7.10.0 versione, S3A Filesystem è il connettore predefinito per i cluster EMR filesystem/s3 per tutti gli schemi di file S3, inclusi i seguenti:

  • s3://

  • s3n://

  • s3a://

Questa modifica si applica a tutte le implementazioni EMR, incluse EC2, EKS ed EMR Serverless.

Se desideri continuare a utilizzare EMRFS, puoi configurarlo aggiungendo la seguente proprietà al file di configurazione: 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>

Migrazione di configurazioni EMRFS esistenti a configurazioni S3A

Nota

Amazon EMR implementa la mappatura automatica della configurazione tra EMRFS e S3A quando vengono soddisfatte condizioni specifiche. Il processo di mappatura si verifica automaticamente quando le configurazioni S3A non sono definite mentre sono presenti le configurazioni EMRFS corrispondenti. Questa funzionalità di mappatura automatica si estende alle configurazioni a livello di bucket, consentendo una perfetta integrazione tra le impostazioni EMRFS e S3A. A titolo illustrativo, quando si configura un'impostazione di crittografia specifica del bucket in EMRFS utilizzando «fs.s3.bucket.amzn-s3-demo-bucket1.serverSideEncryption.kms.keyId» con un valore di «XYZ», il sistema la mappa automaticamente alla configurazione S3A equivalente impostando «fs.s3a.encryption.key» su «XYZ» per il bucket specificato amzn-s3-demo-bucketet.key 1.

Il seguente set predefinito di configurazioni EMRFS verrà automaticamente tradotto nei corrispondenti equivalenti di configurazione S3A. Tutte le configurazioni attualmente implementate tramite cluster o job override passeranno senza problemi al file system S3A senza richiedere configurazioni o modifiche manuali aggiuntive.

Per impostazione predefinita, questa funzionalità di mappatura della configurazione viene attivata automaticamente. Gli utenti che desiderano disabilitare questa traduzione automatica possono farlo aggiungendo la seguente proprietà al file di configurazione core-site.xml.

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

La mappatura delle chiavi di crittografia da EMRFS (fs.s3.server SideEncryption.kms.keyId o fs.s3.cse.KMS.KeyID) a S3A (fs.s3a.encryption.key) si verifica solo quando una delle due o la crittografia è abilitata su uno dei due file system. SSE-KMS CSE-KMS

Mappatura della configurazione da EMRFS a S3A
Nome di configurazione EMRFS Nome di configurazione S3A
FS.S3.AIMD.Adjust Window FS.S3A.AIMD.Adjust finestra
fs.s3.aimd. abilitato fs.s3a.aimd.enabled
fs.s3.aimd. Aumenta l'incremento fs.s3a.aimd.Aumenta l'incremento
fs.s3.aimd. Frequenza iniziale fs.s3a.aimd. Frequenza iniziale
Tentativi FS.S3.AIMD.max fs.s3a.AIMD.MaxAttempts
Tariffa fs.s3.aimd.min Tariffa FS.S3A.AIMD.min
FS.S3.AIMD. fattore di riduzione FS.S3A.AIMD. fattore di riduzione
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
Connessioni FS.S3.max fs.s3a.connection.maximum
fs.s3.max riprova 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.impostazione predefinita
fs.s3.positioned Read.optimization.enabled fs.s3a. posizionato Read.optimization.enabled
fs.s3.read FullyIntoBuffers.optimization.enabled fs.s3a.read FullyIntoBuffers.optimization.enabled
fs.s3.signerType algoritmo di firma fs.s3a.
classe fs.s3.storage 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.accetta FileStatus fs.s3a.open.accetta 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

Considerazioni e limitazioni

  • Tutti i motori EMR: Spark, Flink, Tez MapReduce, Hive ecc. utilizzeranno S3A come connettore S3 predefinito ad eccezione dei motori Trino e Presto.

  • EMR S3A non supporta l'integrazione con EMR Ranger. Prendi in considerazione la migrazione a AWS Lake Formation.

  • AWS Lake Formation Support with RecordServer For EMR Spark with S3A non è supportato. Prendi in considerazione l'utilizzo di Spark Native FGAC.

  • AWS S3 Select non è supportato.

  • L'opzione per la pulizia periodica del caricamento multiparte incompleto (MPU) non è disponibile con S3A. Valuta la possibilità di configurare la politica del ciclo di vita del bucket S3 per eliminare le MPU sospese.

  • Per migrare da EMRFS a S3A utilizzando la crittografia S3 CSE-CUSTOM , il fornitore di chiavi personalizzate deve essere riscritto dall'interfaccia all'interfaccia Keyring. EMRFSRSAEncryptionMaterialsProvider Per ulteriori informazioni, consulta la sezione Configurazione di S3A. CSE-CUSTOM

  • Le directory Amazon S3 create utilizzando EMRFS sono contrassegnate con un suffisso '_$folder$', mentre le directory create utilizzando il file system S3A terminano con un suffisso '/', che è coerente con le directory create tramite la console S3. AWS

  • Per utilizzare un provider di credenziali S3 personalizzato, imposta la proprietà di configurazione S3A con la stessa classe di provider di credenziali utilizzata in precedenza nella configurazione EMRFS. fs.s3a.aws.credentials.provider fs.s3.customAWSCredentialsProvider

Configurazioni EMRFS non supportate

Le seguenti configurazioni EMRFS sono state identificate come non supportate o obsolete e, di conseguenza, non verrà fornita alcuna mappatura diretta alle rispettive configurazioni S3A. Queste configurazioni specifiche non verranno tradotte o trasferite automaticamente durante la migrazione al file system S3A.

Configurazioni e motivi EMRFS non supportati
Nome Config EMRFS Motivo del mancato supporto
fs.s3.consistent Amazon S3 offre una forte coerenza di lettura dopo scrittura e quindi non è richiesta la funzionalità di visualizzazione coerente EMRFS.
fs.s3.consistent.dynamodb.endpoint
fs.s3.consistent.veloce FirstRetrySeconds
fs.s3.consistent.fastList
fs.s3.consistent.fast List.batchSize
fs.s3.consistent.veloce 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.secondi
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 A differenza di EMRFS che utilizza SDK V1. AWS S3A utilizza AWS SDK V2 dove queste opzioni non sono supportate.
fs.s3.cse.crypto StorageMode.deleteInstructionFiles.enabled
fs.s3.cse.encryption V2.enabled
fs.s3.cse.materiali Description.enabled
fs.s3.multipart.clean.age.threshold La funzione Periodical Up Of Incomplete Multi Part Upload (MPU) non è disponibile con S3A. Configura invece la politica del ciclo di vita del bucket S3 per ripulire le MPU sospese.
fs.s3.multipart.clean.enabled
fs.s3.multipart.clean.jitter.max La funzionalità è stata aggiunta per evitare che i thread di caricamento in più parti si blocchino o rallentino. S3A non presenta problemi simili e quindi non è richiesto.
fs.s3.multipart.fraction.part.avg.completion.time
fs.s3.multipart.part.attemps
fs.s3.multipart.th.fraction.parts.completed
fs.s3.instance Profile.retryCount Si tratta di configurazioni specifiche di EMRFS che non sono richieste in S3A a causa di differenze di funzionalità e architettura.
fs.3.instance Profile.retryPeriodSeconds
fs.s3.external StagedFiles.maxActiveTasks
cartella fs.s3 Object.autoAction.disabled
cartella 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.enableled
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.riprova PeriodSeconds
Strategia 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