移行ガイド: EMRFS から S3A ファイルシステムへ - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

移行ガイド: 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 への設定マッピング
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 の設定と理由
EMRFS 設定名 サポートしない理由
fs.s3.consistent Amazon S3 はread-after-writeの強力な整合性を提供するため、EMRFS の整合性のあるビュー機能は必要ありません。
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