翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
移行ガイド: EMRFS から S3A ファイルシステムへ
EMR-7.10.0 リリース以降、S3A Filesystem は、以下を含むすべての S3 ファイルスキームの EMR クラスター用のデフォルトのファイルシステム/S3 コネクタです。
s3://
s3n://
s3a://
この変更は、EC2、EKS、EMR Serverless、Glue ETL 環境を含むすべての EMR デプロイに適用されます。
EMRFS を引き続き使用する場合は、次のプロパティを設定ファイルに追加することでcore-site.xml
これを設定できます。
<property> <name>fs.s3.impl</name> <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value> </property>
既存の EMRFS 設定の S3A 設定への移行
次の事前定義された EMRFS 設定のセットは、対応する S3A 設定に相当するものに自動的に変換されます。クラスターまたはジョブの上書きによって現在実装されている設定は、追加の手動設定や変更を必要とせずに S3A ファイルシステムにシームレスに移行します。
デフォルトでは、この設定マッピング機能は自動的にアクティブ化されます。この自動翻訳を無効にするには、次のプロパティを core-site.xml 設定ファイルに追加します。
<property> <name>fs.s3a.emrfs.compatibility.enable</name> <value>false</value> </property>
EMRFS 設定名 | 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.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.enableServerSideEncryption | 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-algorithm |
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.open.acceptsFileStatus |
fs.s3.connection.maxIdleMilliSeconds | fs.s3a.connection.idle.time |
fs.s3.s3AccessGrants.enabled | fs.s3a.access.grants.enabled |
fs.s3.s3AccessGrants.fallbackToIAM | fs.s3a.access.grants.fallback.to.iam |
考慮事項と制約事項
-
Spark、MapReduce、Flink、Tez、Hive などのすべての EMR エンジンは、Trino エンジンと Presto エンジンを除くデフォルトの S3 コネクタとして S3S3A を使用します。
-
EMR S3A は EMR Ranger との統合をサポートしていません。 AWS Lake Formation への移行を検討してください。
-
AWS S3A を使用した EMR Spark の RecordServer での Lake Formation サポートはサポートされていません。Spark ネイティブ FGAC の使用を検討してください。
-
AWS S3 Select はサポートされていません。
-
S3A では、不完全なマルチパートアップロード (MPU) を定期的にクリーンアップするオプションは使用できません - ダングリング MPU をクリーンアップするように S3 バケットライフサイクルポリシーを設定することを検討してください。 MPUs
-
S3 CSE-CUSTOM 暗号化の使用中に EMRFS から S3A に移行するには、カスタムキープロバイダーを EMRFSRSAEncryptionMaterialsProvider
インターフェイスから Keyring インターフェイスに書き直す必要があります。詳細については、S3A CSE-CUSTOM の設定」を参照してください。 EMRFS を使用して作成された Amazon S3 ディレクトリには「_$folder$」というサフィックスが付き、S3A ファイルシステムを使用して作成されたディレクトリには「/」というサフィックスが付きます。これは、 AWS S3 コンソールを使用して作成されたディレクトリと一致します。
カスタム S3 認証情報プロバイダーを使用するには、EMRFS 設定 で以前に使用されたものと同じ認証情報プロバイダークラス
fs.s3a.aws.credentials.provider
で S3A 設定プロパティを設定しますfs.s3.customAWSCredentialsProvider
。
サポートされていない EMRFS 設定
次の EMRFS 設定はサポートされていないか、古いものとして識別されているため、S3A 設定の対応する部分に直接マッピングは提供されません。これらの特定の設定は、S3A ファイルシステムへの移行中に自動的に変換または引き継がれません。
EMRFS 設定名 | サポートしない理由 |
---|---|
fs.s3.consistent | Amazon S3 はread-after-writeの強力な整合性 |
fs.s3.consistent.dynamodb.endpoint | |
fs.s3.consistent.fastFirstRetrySeconds | |
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.pullWaitTimeSeconds | |
fs.s3.consistent.notification.SQS.queueName | |
fs.s3.consistent.retryCount | |
fs.s3.cse.cryptoStorageMode | AWS SDK V1 を使用する EMRFS とは異なります。S3A は、これらのオプションがサポートされていない AWS SDK V2 を使用します。 |
fs.s3.cse.cryptoStorageMode.deleteInstructionFiles.enabled | |
fs.s3.cse.encryptionV2.enabled | |
fs.s3.cse.materialsDescription.enabled | |
fs.s3.multipart.clean.age.threshold | S3A では、不完全なマルチパートアップロード (MPU) を定期的にクリーンアップすることはできません。代わりに、ダングリング MPUs をクリーンアップするように S3 バケットライフサイクルポリシーを設定します。 |
fs.s3.multipart.clean.enabled | |
fs.s3.multipart.clean.jitter.max | この機能は、マルチパートアップロードスレッドがスタックまたは低速にならないように追加されました。S3A は同様の問題を排除しないため、必須ではありません。 |
fs.s3.multipart.fraction.part.avg.completion.time | |
fs.s3.multipart.part.attempts | |
fs.s3.multipart.th.fraction.parts.completed | |
fs.s3.instanceProfile.retryCount | これらは EMRFS 固有の設定であり、機能とアーキテクチャの違いにより S3A では必要ありません。 |
fs.s3.instanceProfile.retryPeriodSeconds | |
fs.s3.externalStagedFiles.maxActiveTasks | |
fs.s3.folderObject.autoAction.disabled | |
fs.s3.folderObject.autoInsert | |
fs.s3.getObject.initialSocketTimeoutMilliseconds | |
fs.s3.listFiles.incrementalFetch.enabled | |
fs.s3.listFilesInOrder.includeDescendantsOfFiles | |
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.s3AccessGrants.cacheSize | |
fs.s3.s3AccessGrants.retryDelayBase | |
fs.s3.s3AccessGrants.throttledRetryDelayBase | |
fs.s3.s3AccessGrants.maxRetries |