Panduan Migrasi: Sistem File EMRFS ke S3A - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Panduan Migrasi: Sistem File EMRFS ke S3A

Dimulai dengan rilis EMR-7.10.0, S3A Filesystem adalah konektor filesystem/s3 default untuk cluster EMR untuk semua skema file S3, termasuk yang berikut:

  • s3://

  • s3n://

  • s3a://

Perubahan ini berlaku di semua penerapan EMR, termasuk, EKS, dan EMR Tanpa Server EC2, lingkungan Glue ETL.

Jika Anda ingin terus menggunakan EMRFS, Anda dapat mengonfigurasinya dengan menambahkan properti berikut ke file core-site.xml konfigurasi:

<property> <name>fs.s3.impl</name> <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value> </property>

Migrasi Konfigurasi EMRFS yang Ada ke Konfigurasi S3A

Set konfigurasi EMRFS yang telah ditentukan berikut akan secara otomatis diterjemahkan ke setara konfigurasi S3A yang sesuai. Konfigurasi apa pun yang saat ini diterapkan melalui cluster atau penggantian pekerjaan akan bertransisi dengan mulus ke sistem file S3A tanpa memerlukan konfigurasi atau modifikasi manual tambahan.

Secara default, fitur pemetaan konfigurasi ini diaktifkan secara otomatis. Pengguna yang ingin menonaktifkan terjemahan otomatis ini dapat melakukannya dengan menambahkan properti berikut ke file konfigurasi core-site.xml.

<property> <name>fs.s3a.emrfs.compatibility.enable</name> <value>false</value> </property>
Pemetaan Konfigurasi EMRFS ke S3A
Nama Konfigurasi EMRFS Nama Konfigurasi 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.maxPercobaan FS.S3A.AIMD.MaxAttrits
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. sessionDurationSeconds fs.s3a.assumed.role.session.duration
fs.s3.authorization.rolemapping FS.S3A.Authorization.Rolemapping
fs.s3.authorization.ugi.groupname.enabled fs.s3a.authorization.ugi.groupname.enabled
fs.s3. credentialsResolverClass 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. serverSideEncryption.kms. customEncryptionContext fs.s3a.encryption.context
fs.s3. enableServerSideEnkripsi fs.s3a.encryption.algorithm
fs.s3. serverSideEncryption.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. maxBatchSize 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.positioneDread.Optimization.Enabled fs.s3a.positionedread.optimization.enabled
fs.s3. readFullyIntoBuffers.optimization.enabled fs.s3a. readFullyIntoBuffers.optimization.enabled
FS.S3.SignerType fs.s3a.signing-algoritma
FS.S3.StorageClass fs.s3a.create.storage.class
fs.s3.threadpool.maxsize fs.s3a.threads.max
fs.s3. useRequesterPaysHeader 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. acceptsFileStatus fs.s3a.terbuka. acceptsFileStatus
fs.s3.koneksi. maxIdleMilliDetik fs.s3a.connection.idle.time
fs.s3.s3 .diaktifkan AccessGrants fs.s3a.access.grants.enabled
fs.s3.s3 AccessGrants .fallbackToIAM fs.s3a.access.grants.fallback.to.iam

Pertimbangan dan batasan

  • Semua mesin EMR — Spark,, Flink, Tez MapReduce, Hive dll akan menggunakan S3A sebagai konektor S3 default kecuali untuk mesin Trino dan Presto.

  • EMR S3A tidak mendukung integrasi dengan EMR Ranger. Pertimbangkan untuk bermigrasi ke AWS Lake Formation.

  • AWS Dukungan Lake Formation With RecordServer For EMR Spark dengan S3A tidak didukung - Pertimbangkan untuk menggunakan Spark Native FGAC.

  • AWS S3 Select tidak didukung.

  • Opsi untuk Membersihkan Unggahan Multi Bagian yang Tidak Lengkap (MPU) secara berkala tidak tersedia dengan S3A - Pertimbangkan untuk mengonfigurasi kebijakan siklus hidup bucket S3 untuk membersihkan yang menggantung. MPUs

  • Agar dapat bermigrasi dari EMRFS ke S3A saat menggunakan enkripsi S3 CSE-CUSTOM, Penyedia kunci khusus perlu ditulis ulang dari antarmuka ke antarmuka Keyring. EMRFSRSAEncryptionMaterialsProvider Lihat pengaturan S3A CSE-CUSTOM untuk informasi lebih lanjut.

  • Direktori Amazon S3 yang dibuat menggunakan EMRFS ditandai dengan akhiran '_$folder$', sedangkan direktori yang dibuat menggunakan sistem file S3A diakhiri dengan akhiran '/', yang konsisten dengan direktori yang dibuat melalui konsol S3. AWS

  • Untuk menggunakan penyedia kredensi S3 kustom, setel properti konfigurasi S3A fs.s3a.aws.credentials.provider dengan kelas penyedia kredensi yang sama yang sebelumnya digunakan dalam konfigurasi EMRFS. fs.s3.customAWSCredentialsProvider

Konfigurasi EMRFS yang tidak didukung

Konfigurasi EMRFS berikut telah diidentifikasi sebagai tidak didukung atau usang, dan akibatnya, tidak ada pemetaan langsung yang akan diberikan kepada rekan konfigurasi S3A mereka. Konfigurasi spesifik ini tidak akan diterjemahkan atau dibawa secara otomatis selama migrasi ke sistem file S3A.

Konfigurasi dan Alasan EMRFS yang Tidak Didukung
Nama Konfigurasi EMRFS Alasan Tidak Mendukung
fs.s3.konsisten Amazon S3 memberikan read-after-writekonsistensi yang kuat dan karenanya fitur tampilan konsisten EMRFS tidak diperlukan.
fs.s3.consistent.dynamodb.endpoint
fs.s3.konsisten. fastFirstRetryDetik
fs.s3.consistent.fastlist
fs.s3.consistent.fastlist.batchSize
fs.s3.consistent.fastlist.prefetchmetadata
fs.s3.consistent.metadata.accesskey
fs.s3.consistent.metadata.autocreate
fs.s3.consistent.metadata.capacity.autoincrease
fs.s3.consistent.metadata.capacity.autoincrease.factor
fs.s3.consistent.metadata.capacity.autoincrease.maxRead
fs.s3.consistent.metadata.capacity.autoincrease.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. pullWaitTimeDetik
fs.s3.consistent.notification.sqs.queuename
fs.s3.consistent.RetryCount
fs.s3.cse. cryptoStorageMode Tidak seperti EMRFS yang menggunakan AWS SDK V1. S3A menggunakan AWS SDK V2 di mana opsi ini tidak didukung.
fs.s3.cse. cryptoStorageMode. deleteInstructionFiles.diaktifkan
fs.s3.cse.encryptionv2.enabled
fs.s3.cse.materialsdescription.enabled
fs.s3.multipart.clean.age.threshold Bersihkan Unggahan Multi Bagian yang Tidak Lengkap (MPU) secara berkala tidak tersedia dengan S3A - Sebagai gantinya, konfigurasikan kebijakan siklus hidup bucket S3 untuk membersihkan yang menggantung. MPUs
fs.s3.multipart.clean.enabled
fs.s3.multipart.clean.jitter.max Fitur ini ditambahkan untuk menghindari utas unggahan multi-bagian macet atau lambat. S3A tidak menunjukkan masalah serupa dan karenanya tidak diperlukan.
fs.s3.multipart.fraction.part.avg.completion.time
fs.s3.multipart.part.attempts
fs.s3.multipart.th.fraction.parts.complete
fs.s3.instanceprofile.retrycount Ini adalah kerahasiaan khusus EMRFS yang tidak diperlukan di S3A karena perbedaan fungsionalitas dan arsitektur.
fs.s3.InstanceProfile. retryPeriodSeconds
fs.s3. externalStagedFiles. maxActiveTasks
fs.s3.folderObject.autoaction.disabled
fs.s3.folderObject.AutoInsert
fs.s3.getObject. initialSocketTimeoutMilidetik
fs.s3.listfiles.incrementalfetch.enabled
fs.s3. listFilesInMemesan. includeDescendantsOfBerkas
fs.s3.listobjects.encodingType
fs.s3.buckets.create.region
fs.s3.configuration.load.enablebled
fs.s3.create. allowFileNameEndsWithFolderSuffix
fs.s3.open.lazyconnection.enabled
fs.s3.region.fallback
fs.s3.region.retryCount
fs.s3.region. retryPeriodSeconds
fs.s3.rename.algorithm.version
fs.s3.requestHandler.ClassNames
fs.s3.requeststatistics.Enabled
fs.s3.requeststatistics.sinks
fs.s3. retryPeriodSeconds
fs.s3.seekStrategy
fs.s3.threadpool.buffer.size
fs.s3.threadpool.maxsize
fs.s3. useDirectoryHeaderAsFolderObject
fs.s3n.filestatuscache.enable
fs.s3.delete.retrycount
fs.s3.s3 .CacheSize AccessGrants
AccessGrantsfs.s3.s3. retryDelayBase
AccessGrantsfs.s3.s3. throttledRetryDelayBasis
fs.s3.s3 .maxRetries AccessGrants