配置一致视图 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置一致视图

您可以为一致视图配置其它设置,方法是使用 emrfs-site 属性的配置属性来提供这些设置。例如,您可以选择其它的默认 DynamoDB 吞吐量(方式是将以下参数提供给 CLI --emrfs 选项,使用 emrfs-site 配置分类(仅限 Amazon EMR 发行版 4.x 及更高版本))或引导操作来配置主节点上的 emrfs-site.xml 文件:

例 在集群启动时更改默认元数据读取和写入值
aws emr create-cluster --release-label emr-5.36.1 --instance-type m5.xlarge \ --emrfs Consistent=true,Args=[fs.s3.consistent.metadata.read.capacity=600,\ fs.s3.consistent.metadata.write.capacity=300] --ec2-attributes KeyName=myKey

或者,使用下面的配置文件并将其保存到本地或 Amazon S3 中:

[ { "Classification": "emrfs-site", "Properties": { "fs.s3.consistent.metadata.read.capacity": "600", "fs.s3.consistent.metadata.write.capacity": "300" } } ]

按照下面的语法使用您创建的配置:

aws emr create-cluster --release-label emr-5.36.1 --applications Name=Hive \ --instance-type m5.xlarge --instance-count 2 --configurations file://./myConfig.json
注意

为了便于读取,包含 Linux 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号(^)。

可以使用配置或 Amazon CLI --emrfs 参数设置以下选项。有关这些实参的信息,请参阅 Amazon CLI 命令参考

一致视图的 emrfs-site.xml 属性
属性 默认值 描述
fs.s3.consistent false

设置为 true 时,此属性会将 EMRFS 配置为使用 DynamoDB 提供一致性。

fs.s3.consistent.retryPolicyType exponential 此属性标识针对一致性问题进行重试时要使用的策略。选项包括:exponential、fixed 和 none。
fs.s3.consistent.retryPeriodSeconds 1 此属性设置两次一致性重试尝试之间等待的时间长度。
fs.s3.consistent.retryCount 10 此属性设置检测到不一致时的最大重试次数。
fs.s3.consistent.throwExceptionOnInconsistency true 此属性确定是引发还是记录一致性异常。设置为 true 时,会引发 ConsistencyException
fs.s3.consistent.metadata.autoCreate true 设置为 true 时,此属性会启用元数据表的自动创建。
fs.s3.consistent.metadata.etag.verification.enabled true 对于 Amazon EMR 5.29.0,此属性已默认启用。启用后,EMRFS 使用 S3 ETag 验证所读取的对象为最新可用版本。此功能对更新后读取使用案例很有帮助,此时将覆盖 S3 上的文件但保留相同名称。此 ETag 验证功能当前不可用于 S3 Select。
fs.s3.consistent.metadata.tableName EmrFSMetadata 此属性指定 DynamoDB 中元数据表的名称。
fs.s3.consistent.metadata.read.capacity 500 此属性指定创建元数据表时要配置的 DynamoDB 读取容量。
fs.s3.consistent.metadata.write.capacity 100 此属性指定创建元数据表时要配置的 DynamoDB 写入容量。
fs.s3.consistent.fastList true 设置为 true 时,此属性会使用多个线程列出目录(需要时)。必须启用一致性才能使用此属性。
fs.s3.consistent.fastList.prefetchMetadata false 设置为 true 时,此属性会为包含 20000 个以上的项目的目录启用元数据预取。
fs.s3.consistent.notification.CloudWatch false 设置为 true 时,为因 Amazon S3 最终一致性问题而失败的 FileSystem API 调用启用 CloudWatch 指标。
fs.s3.consistent.notification.SQS false 设置为 true 时,向 Amazon SQS 队列推送最终一致性通知。
fs.s3.consistent.notification.SQS.queueName EMRFS-Inconsistency-<jobFlowId> 通过更改此属性可以为有关 Amazon S3 最终一致性问题的消息指定您自己的 SQS 队列名称。
fs.s3.consistent.notification.SQS.customMsg none 通过此属性可以指定有关 Amazon S3 最终一致性问题的 SQS 消息中包含的自定义信息。如果没有为此属性指定值,则消息中的对应字段为空。
fs.s3.consistent.dynamodb.endpoint none 此属性允许您为一致性视图元数据指定自定义 DynamoDB 终端节点。
fs.s3.useRequesterPaysHeader false 当设置为true,此属性允许在启用付款人选项请求的情况下向存储桶发出Amazon S3 请求。