迁移指南:EMRFS 到 S3A 文件系统 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

迁移指南:EMRFS 到 S3A 文件系统

从 EMR-7.10.0 版本开始,S3A 文件系统是所有 S3 文件方案的 EMR 集群的默认文件系统/s3 连接器,包括以下内容:

  • s3://

  • s3n://

  • s3a://

此更改适用于所有 EMR 部署,包括 EKS 和 EMR Serverless EC2、Glue ETL 环境。

如果要继续使用 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.adjust 窗口 fs.s3a.aimd.adjust 窗口
fs.s3.aimd.enabled fs.s3a.aimd.enabled
fs.s3.aimd.增加增量 fs.s3a.aimd.增加增量
fs.s3.aimd.initialRate fs.s3a.aimd.initialRate
fs.s3.aimd.max尝试次数 fs.s3a.aimd.max尝试次数
fs.s3.aimd.minrate fs.s3a.aimd.minrate
fs.s3.aimd.还原系数 fs.s3a.aimd.还原系数
fs.s3.sts.endpoint fs.s3a.assumed.role.sts.endpoint
fs.s3.sts。 sessionDurationSeconds fs.s3a.assumed.role.session.duration
fs.s3.授权.rolemapping fs.s3a.授权.rolemapping
fs.s3.authorization.ugi.groupname.enabled fs.s3a.authorization.ugi.groupname.enabled
fs.3。 credentialsResolverClass fs.s3a.credentials.resolver
fs.s3n.multipart.uploads.enable fs.s3a.multipart.uploads.enable
fs.s3n.multipart.uploads.split.size fs.s3a.multipart.size
fs.3。 serverSideEncryption.kms。 customEncryptionContext fs.s3a.加密.contextion
fs.3。 enableServerSide加密 fs.s3a.加密算法
fs.3。 serverSideEncryption.kms.keyid fs.s3a.encryption.key
fs.s3.cse.kms.region fs.s3a.encryption.cse.kms.region
fs.s3.authorization.audit.abled fs.s3a.authorization.audit.abled
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.max连接数 fs.s3a.连接.maximum
fs.s3.max重试次数 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.positiedread.Optimization.enabled fs.s3a.positiedread.Optimization.enabled
fs.3。 readFullyInto缓冲区 > 优化 > 已启用 fs.s3a。 readFullyInto缓冲区 > 优化 > 已启用
fs.s3.signerType fs.s3a.签名算法
fs.s3.StorageClass fs.s3a.create.storage.class
fs.s3.threadpool.maxSize fs.s3a.threads.max
fs.3。 useRequesterPays标题 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。 maxIdleMilli秒 fs.s3a.connection.idle.time
fs.s3.s3 .enabled AccessGrants fs.s3a.access.grants.enabled
fs.s3.s3 .fallbacktoIAM AccessGrants fs.s3a.access.grants.fallback.to.iam

注意事项和限制

  • 除 Trino 和 Presto 引擎外,所有 EMR 引擎 —— Spark MapReduce、Flink、Tez、Hive 等,都将使用 S3A 作为默认 S3 连接器。

  • EMR S3A 不支持与 EMR Ranger 集成。考虑迁移到 AWS Lake Formation。

  • AWS 不支持带有 S3A RecordServer 的 EMR Spark 的 Lake Formation 支持——可以考虑使用 Spark Native FGAC。

  • AWS 不支持 S3 选择。

  • S3A 不提供定期清理未完成的多段上传 (MPU) 的选项-请考虑配置 S3 存储桶生命周期策略来清理悬空。 MPUs

  • 为了在使用 S3 CSE-CUSTOM 加密时从 EMRFS 迁移到 S3A,需要将自定义密钥提供程序从接口重写到密钥环接口。EMRFSRSAEncryptionMaterialsProvider有关更多信息,请参阅设置 S3A CSE-CUSTOM。

  • 使用 EMRFS 创建的 Amazon S3 目录标有 “_$folder$” 后缀,而使用 S3A 文件系统创建的目录以 “/” 后缀结尾,这与通过 S3 控制台创建的目录一致。 AWS

  • 要使用自定义 S3 凭证提供程序,请将 S3A 配置属性fs.s3a.aws.credentials.provider设置为之前在 EMRFS 配置中使用的相同凭证提供程序类别。fs.s3.customAWSCredentialsProvider

不支持的 EMRFS 配置

以下 EMRFS 配置已被确定为不支持或已过时,因此不会提供与其 S3A 配置对应的直接映射。在迁移到 S3A 文件系统的过程中,这些特定的配置不会被自动转换或延续。

不支持的 EMRFS 配置和原因
EMRFS Config 名称 不支持的原因
fs.s3. 一致 Amazon S3 具有很强 read-after-write的一致性,因此不需要 EMRFS 一致视图功能。
fs.s3 一致性.dynamodb.endpoint
fs.s3. 一致。 fastFirstRetry秒
fs.s3. 一致性.fastList
fs.s3 一致.fastlist.batchSize
fs.s3.consitent.fastlist.prefetchMetadata
fs.s3.constinent.metadata.accessKey
fs.s3.constinent.metadata.autoCreate
fs.s3 一致性.metadata.capacitay.capacity.auto
fs.s3. 一致性.metadata.capacita.capacity.autoinge
fs.s3.consitent.metadata.capacitay.autoingexe.max
fs.s3.consitent.metadata.capacita.capacity.autoing
fs.s3. 一致性.metadata.conditional
fs.s3.consitent.metadata.delete.ttl.enabled
fs.s3. 一致性.metadata.delete.ttl.expiration.seconds
fs.s3.consitent.metadata.etag.verification.enabled
fs.s3. 一致性.metadata.read.capacity
fs.s3 一致性.metadata.read.capacity.limit
fs.s3. 一致性.metadata.secretKey
fs.s3.consitent.metadata.tableName
fs.s3. 一致性.metadata.write.capacite
fs.s3. 一致性.metadata.write.capacite.capacity.li
fs.s3. 一致的通知。 CloudWatch
fs.s3.consticent.notification.sqs
fs.s3.consticent.notification.sqs.batchSize
fs.s3.consticent.notification.sqs.customMsg
fs.s3.consticent.notification.sqs。 pathReportLimit
fs.s3.consticent.notification.sqs。 pullWaitTime秒
fs.s3.consticent.notification.squeueName
fs.s3.一致.retryCount
fs.s3.cse。 cryptoStorageMode 与使用 S AWS DK V1 的 EMRFS 不同。S3A 使用不支持这些选项的 AWS SDK V2。
fs.s3.cse。 cryptoStorageMode。 deleteInstructionFiles. 已启用
fs.s3.cse.encryptionv2.enabled
fs.s3.cse.materialsDescription.en
fs.s3.multipart.clean.age.thresh 定期清理未完成的多段上传 (MPU) 不适用于 S3A,而是配置 S3 存储桶生命周期策略以清理悬空。 MPUs
fs.s3.multipart.clean.enabled
fs.s3.multipart.clean.jitter.max 添加该功能是为了避免多部分上传线程卡住或变慢。S3A 没有遇到类似的问题,因此不是必需的。
fs.s3.multipart.fraction.part.part.avg.completi
fs.s3.multipart.part.parts
fs.s3.multipart.th.fraction.parts.part
fs.s3.实例配置文件.retryCount 这些是 EMRFS 特定的配置,由于功能和架构的差异,S3A 中不需要这些配置。
fs.s3. 实例配置文件。 retryPeriodSeconds
fs.3。 externalStagedFiles。 maxActiveTasks
fs.s3.folderObject.autoaction.dis
fs.s3.folderObject.autoInser
fs.s3.getObject。 initialSocketTimeout毫秒
fs.s3.listfiles.incrementalFetch.enabled
fs.3。 listFilesIn订购。 includeDescendantsOf档案
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.algorith.version
fs.s3.requestHandler.classNames
fs.s3. 请求统计信息。已启用
fs.s3.requestistics.sinks
fs.3。 retryPeriodSeconds
fs.s3.seekStrategy
fs.s3.threadpool.buffer.size
fs.s3.threadpool.maxSize
fs.3。 useDirectoryHeaderAsFolderObject
fs.s3n.filestatuscache.enable
fs.s3.delete.retryCount
fs.s3.s3 .cacheSize AccessGrants
fs.s3.s3。AccessGrants retryDelayBase
fs.s3.s3。AccessGrants throttledRetryDelay基地
fs.s3.s3 .maxRetries AccessGrants