

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

# 一致视图
<a name="emr-plan-consistent-view"></a>

**警告**  
2023 年 6 月 1 日，EMRFS 一致视图将终止对未来 Amazon EMR 发行版的标准支持。EMRFS 一致视图将继续支持现有发行版。

随着 2020 年 12 月 1 日发布的 Amazon S3 强 read-after-write一致性版本，您不再需要在亚马逊 EMR 集群中使用 EMRFS 一致视图 (EMRFS CV)。EMRFS CV 是一项可选功能，它允许 Amazon EMR 集群检查 Amazon S3 对象的列表和 read-after-write一致性。当您创建集群并打开 EMRFS CV 时，Amazon EMR 会创建一个 Amazon DynamoDB 数据库来存储用于跟踪 S3 对象列表和一致性的对象元数据。 read-after-write现在，您可以关闭 EMRFS CV 并删除它使用的 DynamoDB 数据库，这样就不会产生额外费用。以下过程说明了如何检查、关闭 CV 功能以及删除该功能使用的 DynamoDB 数据库。<a name="enable-emr-fs-console"></a>

**检查您是否在使用 EMRFS CV 功能**

1. 导航到 **Configuration**（配置）选项卡。如果您的集群具有以下配置，它将使用 EMRFS CV。

   ```
   Classification=emrfs-site,Property=fs.s3.consistent,Value=true
   ```

1. 或者，也可以使用 [`describe-cluster`API Amazon CLI](https://docs.amazonaws.cn/cli/latest/reference/emr/describe-cluster.html) 来描述您的集群。如果输出包含 `fs.s3.consistent: true`，则您的集群使用 EMRFS CV。

**在您的 Amazon EMR 集群上关闭 EMRFS CV**

要关闭 EMRFS CV 功能，请使用以下三个选项之一。在将这些选项应用到生产环境之前，应先在测试环境中测试它们。

1. 

**停止现有集群并启动没有 EMRFS CV 选项的新集群。**

   1. 在停止集群之前，请务必备份数据并通知用户。

   1. 要停止集群，请按照[终止集群](https://docs.amazonaws.cn/emr/latest/ManagementGuide/UsingEMR_TerminateJobFlow.html)中的说明操作。

   1. 如果您使用 Amazon EMR 控制台创建新集群，请导航到 **Advanced Options**（高级选项）。在 **Edit software settings**（编辑软件设置）部分中，取消选中该选项以打开 EMRFS CV。如果 **EMRFS consistent view**（EMRFS 一致视图）复选框可用，请保持其未选中。

   1. 如果您使用使用 Amazon CLI [`create-cluster`API](https://docs.amazonaws.cn/cli/latest/reference/emr/create-cluster.html) 创建新集群，请不要使用该`--emrfs`选项，该选项会启用 EMRFS CV。

   1. 如果您使用 SDK 或 Amazon CloudFormation 创建新集群，请不要使用配置[一致视图](https://docs.amazonaws.cn/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html)中列出的任何配置。

1. 

**克隆集群并删除 EMRFS CV**

   1. 在 Amazon EMR 控制台中，选择使用 EMRFS CV 的集群。

   1. 在 **Cluster Details**（集群详细信息）页面顶部，选择 **Clone**（克隆）。

   1. 选择 **Previous**（上一步）并导航至 **Step 1: Software and Steps**（步骤 1：软件和步骤）。

   1. 在 **Edit software settings**（编辑软件设置）中，删除 EMRFS CV。在 **Edit configuration**（编辑配置）椎间盘每个。删除 `emrfs-site` 分类中的以下配置。如果您要从 S3 存储桶加载 JSON，则必须修改您的 S3 对象。

      ```
      [
      	{"classification":
      		"emrfs-site",
      		"properties": {
      			"fs.s3.consistent.retryPeriodSeconds":"10",
      			"fs.s3.consistent":"true",
      			"fs.s3.consistent.retryCount":"5",
      			"fs.s3.consistent.metadata.tableName":"EmrFSMetadata"
      		}
      	}
      ]
      ```

1. 

**从使用实例组的集群中删除 EMRFS CV**

   1. 使用以下命令检查是否有一个 EMR 集群使用与 EMRFS CV 关联的 DynamoDB 表，或者是否有多个集群共享该表。表名称在 `fs.s3.consistent.metadata.tableName` 中指定，如 [Configure consistent view](https://docs.amazonaws.cn/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html)（配置一致视图）中所述。EMRFS CV 使用的默认表名称为 `EmrFSMetadata`。

      ```
      aws emr describe-cluster --cluster-id j-XXXXX | grep fs.s3.consistent.metadata.tableName
      ```

   1. 如果您的集群未与其他集群共享您的 DynamoDB 数据库，请使用以下命令重新配置集群并停用 EMRFS CV。有关更多信息，请参阅[重新配置正在运行的集群中的实例组](https://docs.amazonaws.cn/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html)。

      ```
      aws emr modify-instance-groups --cli-input-json file://disable-emrfs-1.json
      ```

      此命令打开要修改的文件。请使用以下配置修改此文件。

      ```
      {
      	"ClusterId": "j-xxxx",
      	"InstanceGroups": [
      		{
      			"InstanceGroupId": "ig-xxxx",
      			"Configurations": [
      				{
      					"Classification": "emrfs-site",
      					"Properties": {
      						"fs.s3.consistent": "false"
      					},
      					"Configurations": []
      				}
      			]
      		}
      	]
      }
      ```

   1. 如果您的集群与其他集群共享 DynamoDB 表，请在没有集群修改共享 S3 位置中的任何对象时关闭所有集群上的 EMRFS CV。

**删除与 EMRFS CV 关联的 Amazon DynamoDB 资源**

从 Amazon EMR 集群中删除 EMRFS CV 后，请删除与 EMRFS CV 关联的 DynamoDB 资源。在您执行此操作之前，您将继续承担与 EMRFS CV 相关的 DynamoDB 费用。

1. 检查您的 DynamoDB 表的 CloudWatch 指标，并确认该表未被任何集群使用。

1. 删除 DynamoDB 表。

   ```
   aws dynamodb delete-table --table-name {{<your-table-name>}}
   ```

**删除与 EMRFS CV 关联的 Amazon SQS 资源**

1. 如果您将集群配置为向 Amazon SQS 推送不一致通知，则可以删除所有 SQS 队列。

1. 查找 `fs.s3.consistent.notification.SQS.queueName` 中指定的 Amazon SQS 队列名称，如 [Configure consistent view](https://docs.amazonaws.cn/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html)（配置一致视图）中所述。默认队列名称格式为 `EMRFS-Inconsistency-{{<j-cluster ID>}}`。

   ```
   aws sqs list-queues | grep ‘EMRFS-Inconsistency’
   aws sqs delete-queue –queue-url {{<your-queue-url>}}
   ```

**停止使用 EMRFS CLI**
+ [EMRFS CLI](https://docs.amazonaws.cn/emr/latest/ReleaseGuide/emrfs-cli-reference.html) 管理 EMRFS CV 生成的元数据。随着对 EMRFS CV 的标准支持在 Amazon EMR 的未来版本中即将结束，对 EMRFS CLI 的支持也将结束。

**Topics**
+ [启用一致视图](enable-consistent-view.md)
+ [了解 EMRFS 一致视图如何跟踪 Amazon S3 中的对象](emrfs-files-tracked.md)
+ [重试逻辑](emrfs-retry-logic.md)
+ [EMRFS 一致视图元数据](emrfs-metadata.md)
+ [为 CloudWatch 和 Amazon SQS 配置一致性通知](emrfs-configure-sqs-cw.md)
+ [配置一致视图](emrfs-configure-consistent-view.md)
+ [EMRFS CLI 命令参考](emrfs-cli-reference.md)