移行ガイド: 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 設定への移行

注記

Amazon EMR は、特定の条件が満たされた場合に、EMRFS と S3A 間の自動設定マッピングを実装します。対応する EMRFS 設定が存在する間に S3A 設定が未定義の場合、マッピングプロセスが自動的に行われます。この自動マッピング機能はバケットレベルの設定に拡張され、EMRFS 設定と S3A 設定をシームレスに統合できます。例として、「XYZ」の値で「fs.s3.bucket.amzn-s3-demo-bucket1.serverSideEncryption.kms.keyId'」を使用して EMRFS でバケット固有の暗号化設定を構成すると、システムは指定されたバケット amzn-s3-demo-bucket1 の「fs.s3a.encryption.key」を「XYZ」に設定することで、これを同等の S3A 設定に自動的にマッピングします。

以下の事前定義された一連の EMRFS 設定は、対応する S3A 設定と同等の設定に自動的に変換されます。クラスターまたはジョブの上書きによって現在実装されている設定は、追加の手動設定や変更を必要とせずに S3A ファイルシステムにシームレスに移行します。

デフォルトでは、この設定マッピング機能は自動的にアクティブ化されます。この自動翻訳を無効にするには、次のプロパティを core-site.xml 設定ファイルに追加します。

<property> <name>fs.s3a.emrfs.compatibility.enable</name> <value>false</value> </property>
注記

EMRFS (fs.s3.serverSideEncryption.kms.keyId または fs.s3.cse.kms.keyId) から S3A (fs.s3a.encryption.key) への暗号化キーマッピングは、いずれかのファイルシステムで SSE-KMS または CSE-KMS 暗号化が有効になっている場合にのみ発生します。

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.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.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 Native 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