Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为 CloudWatch 和 Amazon SQS 配置一致性通知

您可以针对 Amazon S3 最终一致性问题在 EMRFS 中启用 CloudWatch 指标和 Amazon SQS 消息。

CloudWatch

启用了 CloudWatch 指标时,每当 FileSystem API 调用由于 Amazon S3 最终一致性而失败,便会推送一个名为 Inconsistency (不一致性) 的指标。

查看针对 Amazon S3 最终一致性问题的 CloudWatch 指标

要在 CloudWatch 控制台中查看 Inconsistency (不一致性) 指标,请选择 EMRFS 指标,然后选择一个 JobFlowId (任务流程 ID)/Metric Name (指标名称) 对。例如:j-162XXXXXXM2CU ListStatusj-162XXXXXXM2CU GetFileStatus 等。

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. Dashboard (控制面板)Metrics (指标) 部分中,选择 EMRFS

  3. Job Flow Metrics (任务流程指标) 窗格中,选择一个或多个 JobFlowId (任务流程 ID)/Metric Name (指标名称) 对。将在下面的窗口中显示指标的图形表示。

Amazon SQS

启用 Amazon SQS 通知后,系统会在初始化 EMRFS 时,创建一个名为 EMRFS-Inconsistency-<jobFlowId> 的 Amazon SQS 队列。当 FileSystem API 调用因 Amazon S3 最终一致性问题而失败时,系统会将 Amazon SQS 消息推送到该队列中。消息包含诸如 JobFlowId、API、不一致路径的列表、堆栈跟踪等的信息。可以使用 Amazon SQS 控制台或 EMRFS read-sqs 命令读取消息。

管理针对 Amazon S3 最终一致性问题的 Amazon SQS 消息

可使用 EMRFS CLI 读取针对 Amazon S3 最终一致性问题的 Amazon SQS 消息。要从 EMRFS Amazon SQS 队列读取消息,请键入 read-sqs 命令并为生成的输出文件在主节点的本地文件系统上指定输出位置。

还可以使用 delete-sqs 命令删除 EMRFS Amazon SQS 队列。

  1. 要从 Amazon SQS 队列读取消息,请键入以下命令。将 queuename 替换为您配置的 Amazon SQS 队列的名称,并将 /path/filename 替换为输出文件的路径:

    emrfs read-sqs --queue-name queuename --output-file /path/filename

    例如,要从默认队列读取和输出 Amazon SQS 消息,请键入:

    emrfs read-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU --output-file /path/filename

    注意

    还可以分别使用 -q-o 快捷方式代替 --queue-name--output-file

  2. 要删除 Amazon SQS 队列,请键入以下命令:

    emrfs delete-sqs --queue-name queuename

    例如,要删除默认队列,请键入:

    emrfs delete-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU

    注意

    还可以使用 -q 快捷方式代替 --queue-name