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
| 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.providerdengan 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.
| Nama Konfigurasi EMRFS | Alasan Tidak Mendukung |
|---|---|
| fs.s3.konsisten | Amazon S3 memberikan konsistensi baca-setelah-tulis yang kuat dan karenanya fitur tampilan konsisten |
| 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 |