为 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 ListStatus、j-162XXXXXXM2CU
GetFileStatus 等。
-
通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。
-
在 Dashboard (控制面板) 的 Metrics (指标) 部分中,选择 EMRFS。
-
在 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 队列。
-
要从 Amazon SQS 队列读取消息,请键入以下命令。将
queuename替换为您配置的 Amazon SQS 队列的名称,并将/path/filename替换为输出文件的路径:emrfs read-sqs --queue-namequeuename--output-file/path/filename例如,要从默认队列读取和输出 Amazon SQS 消息,请键入:
emrfs read-sqs --queue-nameEMRFS-Inconsistency-j-162XXXXXXM2CU--output-file/path/filename注意
还可以分别使用
-q和-o快捷方式代替--queue-name和--output-file。 -
要删除 Amazon SQS 队列,请键入以下命令:
emrfs delete-sqs --queue-namequeuename例如,要删除默认队列,请键入:
emrfs delete-sqs --queue-nameEMRFS-Inconsistency-j-162XXXXXXM2CU注意
还可以使用
-q快捷方式代替--queue-name。