本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
一致视图
警告
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 数据库。
检查您是否在使用 EMRFS CV 功能
-
导航到 Configuration(配置)选项卡。如果您的集群具有以下配置,它将使用 EMRFS CV。
Classification=emrfs-site,Property=fs.s3.consistent,Value=true
-
或者,也可以使用
describe-cluster
API Amazon CLI 来描述您的集群。如果输出包含fs.s3.consistent: true
,则您的集群使用 EMRFS CV。
在您的 Amazon EMR 集群上关闭 EMRFS CV
要关闭 EMRFS CV 功能,请使用以下三个选项之一。在将这些选项应用到生产环境之前,应先在测试环境中测试它们。
-
停止现有集群并启动没有 EMRFS CV 选项的新集群。
-
在停止集群之前,请务必备份数据并通知用户。
-
要停止集群,请按照终止集群中的说明操作。
-
如果您使用 Amazon EMR 控制台创建新集群,请导航到 Advanced Options(高级选项)。在 Edit software settings(编辑软件设置)部分中,取消选中该选项以打开 EMRFS CV。如果 EMRFS consistent view(EMRFS 一致视图)复选框可用,请保持其未选中。
-
如果您使用 Amazon CLI 此
create-cluster
API 创建新集群,请不要使用该--emrfs
选项,该选项会启用 EMRFS CV。 -
如果您使用 SDK 或 Amazon CloudFormation 创建新集群,请不要使用配置一致视图中列出的任何配置。
-
-
克隆集群并删除 EMRFS CV
-
在 Amazon EMR 控制台中,选择使用 EMRFS CV 的集群。
-
在 Cluster Details(集群详细信息)页面顶部,选择 Clone(克隆)。
-
选择 Previous(上一步)并导航至 Step 1: Software and Steps(步骤 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" } } ]
-
-
从使用实例组的集群中删除 EMRFS CV
-
使用以下命令检查是否有一个 EMR 集群使用与 EMRFS CV 关联的 DynamoDB 表,或者是否有多个集群共享该表。表名称在
fs.s3.consistent.metadata.tableName
中指定,如 Configure consistent view(配置一致视图)中所述。EMRFS CV 使用的默认表名称为EmrFSMetadata
。aws emr describe-cluster --cluster-id j-XXXXX | grep fs.s3.consistent.metadata.tableName
-
如果您的集群未与其他集群共享您的 DynamoDB 数据库,请使用以下命令重新配置集群并停用 EMRFS CV。有关更多信息,请参阅重新配置正在运行的集群中的实例组。
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": [] } ] } ] }
-
如果您的集群与其他集群共享 DynamoDB 表,请在没有集群修改共享 S3 位置中的任何对象时关闭所有集群上的 EMRFS CV。
-
删除与 EMRFS CV 关联的 Amazon DynamoDB 资源
从 Amazon EMR 集群中删除 EMRFS CV 后,请删除与 EMRFS CV 关联的 DynamoDB 资源。在您执行此操作之前,您将继续承担与 EMRFS CV 相关的 DynamoDB 费用。
-
检查您的 DynamoDB 表的 CloudWatch 指标,并确认该表未被任何集群使用。
-
删除 DynamoDB 表。
aws dynamodb delete-table --table-name
<your-table-name>
删除与 EMRFS CV 关联的 Amazon SQS 资源
-
如果您将集群配置为向 Amazon SQS 推送不一致通知,则可以删除所有 SQS 队列。
-
查找
fs.s3.consistent.notification.SQS.queueName
中指定的 Amazon SQS 队列名称,如 Configure consistent view(配置一致视图)中所述。默认队列名称格式为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 管理 EMRFS CV 生成的元数据。随着对 EMRFS CV 的标准支持在 Amazon EMR 的未来版本中即将结束,对 EMRFS CLI 的支持也将结束。