

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

# 配置一致视图
<a name="emrfs-configure-consistent-view"></a>

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

**Example 在集群启动时更改默认元数据读取和写入值**  

```
aws emr create-cluster --release-label emr-7.12.0 --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-7.12.0 --applications Name=Hive \
--instance-type m5.xlarge --instance-count 2 --configurations file://./myConfig.json
```

**注意**  
为了便于读取，包含 Linux 行继续符（\$1）。它们可以通过 Linux 命令删除或使用。对于 Windows，请将它们删除或替换为脱字号（^）。

可以使用配置或 AWS CLI `--emrfs`参数设置以下选项。有关这些实参的信息，请参阅 [AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/)。


**一致视图的 `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 ETags 来验证正在读取的对象是否为最新的可用版本。此功能对于 S3 上的文件被覆盖，同时保留相同名称的 read-after-update用例非常有用。此 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 请求。 | 