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

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

一致视图

警告

2023 年 6 月 1 日,EMRFS一致观点将终止对未来亚马逊EMR版本的标准支持。EMRFS一致的视图将继续适用于现有版本。

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

检查你是否在使用 C EMRFS V 功能
  1. 导航到 Configuration(配置)选项卡。如果您的集群具有以下配置,则它将使用 EMRFS CV。

    Classification=emrfs-site,Property=fs.s3.consistent,Value=true
  2. 或者,使用 Amazon CLI 来描述您的集群describe-clusterAPI。如果输出包含fs.s3.consistent: true,则您的集群使用 EMRFS CV。

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

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

  1. 停止现有集群并启动一个没有 EMRFS CV 选项的新集群。
    1. 在停止集群之前,请务必备份数据并通知用户。

    2. 要停止集群,请按照终止集群中的说明操作。

    3. 如果您使用 Amazon EMR 控制台创建新集群,请导航至高级选项。在编辑软件设置部分,取消选择开启 EMRFS CV 的选项。如果EMRFS一致视图复选框可用,请将其保持未选中状态。

    4. 如果您 Amazon CLI 使用创建新集群 create-clusterAPI,请不要使用开启 EMRFS CV 的--emrfs选项。

    5. 如果您使用SDK或 Amazon CloudFormation 创建新集群,请不要使用配置一致视图中列出的任何配置。

  2. 克隆集群并删除 EMRFS CV
    1. 在 Amazon EMR 控制台中,选择使用 EMRFS CV 的集群。

    2. Cluster Details(集群详细信息)页面顶部,选择 Clone(克隆)。

    3. 选择 Previous(上一步)并导航至 Step 1: Software and Steps(步骤 1:软件和步骤)。

    4. “编辑软件设置” 中,删除 EMRFS CV。在 Edit configuration(编辑配置)椎间盘每个。删除 emrfs-site 分类中的以下配置。如果您JSON从 S3 存储桶加载,则必须修改您的 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" } } ]
  3. 从使用实例组的集群中删除 EMRFS CV
    1. 使用以下命令检查单个EMR集群是否使用EMRFS与 CV 关联的 DynamoDB 表,或者多个集群是否共享该表。表名称在 fs.s3.consistent.metadata.tableName 中指定,如 Configure consistent view(配置一致视图)中所述。EMRFSCV 使用的默认表名是EmrFSMetadata

      aws emr describe-cluster --cluster-id j-XXXXX | grep fs.s3.consistent.metadata.tableName
    2. 如果您的集群不与其他集群共享您的 DynamoDB 数据库,请使用以下命令重新配置集群并停用 CV。EMRFS有关更多信息,请参阅重新配置正在运行的集群中的实例组

      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": [] } ] } ] }
    3. 如果您的集群与其他集群共享 DynamoDB 表,请在没有群集修改共享 S3 位置中的任何对象时EMRFS关闭所有集群上的 CV。

删除与 CV 关联的亚马逊 DynamoDB 资源 EMRFS

从 Amazon EMR 集群中移除 EMRFS CV 后,删除与 CV 关联的 DynamoDB 资源。EMRFS在此之前,您将继续产生与 CV 相关的 DynamoDB 费用。EMRFS

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

  2. 删除 DynamoDB 表。

    aws dynamodb delete-table --table-name <your-table-name>
删除与 EMRFS CV 关联的 Amazon SQS 资源
  1. 如果您将集群配置为向 Amazon 推送不一致通知SQS,则可以删除所有SQS队列。

  2. 查找中指定的 Amazon SQS 队列名称fs.s3.consistent.notification.SQS.queueName,如配置一致视图中所述。默认队列名称格式为 EMRFS-Inconsistency-<j-cluster ID>

    aws sqs list-queues | grep ‘EMRFS-Inconsistency’ aws sqs delete-queue –queue-url <your-queue-url>
要停止使用 EMRFS CLI
  • EMRFSCLI管理 EMRFS CV 生成的元数据。随着对 EMRFS CV的标准支持在Amazon的未来版本中接近尾声EMR,对简历的支持也EMRFSCLI将接近尾声。