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

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

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

CloudWatch

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

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

要在 CloudWatch 控制台中查看 Inconsistency 指标,请选择 EMRFS 指标,然后选择一个 JobFlowId/Metric Name 对。例如:j-162XXXXXXM2CU ListStatusj-162XXXXXXM2CU GetFileStatus 等。

  1. Open the CloudWatch console at https://console.amazonaws.cn/cloudwatch/.

  2. DashboardMetrics 部分中,选择 EMRFS

  3. Job Flow Metrics 窗格中,选择一个或多个 JobFlowId/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