View a markdown version of this page

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 EMR-7.10.0 rilis, S3A Filesystem adalah konektor default untuk cluster EMR filesystem/s3 untuk semua skema file S3, termasuk yang berikut ini:

  • s3://

  • s3n://

  • s3a://

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

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> <property> <name>fs.s3n.impl</name> <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value> </property>

Migrasi Konfigurasi EMRFS yang Ada ke Konfigurasi S3A

catatan

Amazon EMR mengimplementasikan pemetaan konfigurasi otomatis antara EMRFS dan S3A ketika kondisi tertentu terpenuhi. Proses pemetaan secara otomatis terjadi ketika konfigurasi S3A tidak terdefinisi sementara konfigurasi EMRFS yang sesuai ada. Fungsionalitas pemetaan otomatis ini meluas ke konfigurasi tingkat ember, memungkinkan integrasi tanpa batas antara pengaturan EMRFS dan S3A. Sebagai ilustrasi, saat Anda mengonfigurasi pengaturan enkripsi khusus ember di EMRFS menggunakan 'fs.s3.bucket.amzn-s3-demo-bucket1.server 'dengan nilai “XYZ”, sistem secara otomatis memetakan ini ke konfigurasi S3A yang setara dengan menyetel' fs.s3a.encryption.key SideEncryption.kms.keyId 'ke “XYZ” untuk bucket yang ditentukan amzn-s3-demo-ember1.

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>
catatan

Pemetaan kunci enkripsi dari EMRFS (fs.s3.server SideEncryption.kms.keyId atau fs.s3.cse.kms.keyid) ke S3A (fs.s3a.encryption.key) hanya terjadi ketika salah satu atau enkripsi diaktifkan pada salah satu sistem file. SSE-KMS CSE-KMS

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.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
SideEncryption.kms.keyId fs.s3.server/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.diposisikan Read.optimization.enabled fs.s3a.diposisikan Read.optimization.enabled
fs.s3.baca FullyIntoBuffers.optimization.enabled fs.s3a.read FullyIntoBuffers.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.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.menerima FileStatus fs.s3a.open.menerima 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

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 MPU yang menggantung.

  • Agar dapat bermigrasi dari EMRFS ke S3A saat menggunakan CSE-CUSTOM enkripsi S3, Penyedia kunci khusus perlu ditulis ulang dari antarmuka ke antarmuka Keyring. EMRFSRSAEncryptionMaterialsProvider Lihat pengaturan S3A CSE-CUSTOMuntuk 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 konsistensi baca-setelah-tulis yang kuat dan karenanya fitur tampilan konsisten EMRFS tidak diperlukan.
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 Tidak seperti EMRFS yang menggunakan AWS SDK V1. S3A menggunakan AWS SDK V2 di mana opsi ini tidak didukung.
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 Bersihkan Unggahan Multi Bagian yang Tidak Lengkap (MPU) secara berkala tidak tersedia dengan S3A - Sebagai gantinya, konfigurasikan kebijakan siklus hidup bucket S3 untuk membersihkan MPU yang menggantung.
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.instance Profile.retryCount Ini adalah kerahasiaan khusus EMRFS yang tidak diperlukan di S3A karena perbedaan fungsionalitas dan arsitektur.
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.coba lagi PeriodSeconds
fs.s3.rename.algorithm.version
fs.s3.request Handler.classNames
fs.s3.request Statistics.enabled
fs.s3.request Statistics.sinks
fs.s3.coba lagi 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