

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

# 为 CloudWatch 和 Amazon SQS 配置一致性通知
<a name="emrfs-configure-sqs-cw"></a>

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

**CloudWatch**  
启用 CloudWatch 指标后，由于 Amazon S3 的最终**一致性**，每次 `FileSystem` API 调用失败时，都会推送名为 “不一致” 的指标。

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

要在 CloudWatch 控制台中查看**不一致**指标，请选择 EMRFS 指标，然后选择 **JobFlowId**/**指标**名称对。例如：`j-162XXXXXXM2CU ListStatus`、`j-162XXXXXXM2CU GetFileStatus` 等。

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在 **Dashboard (控制面板)** 的 **Metrics (指标)** 部分中，选择 **EMRFS**。

1. 在 **Job Flow Metrics** 窗格中，选择一个或多个 **JobFlowId**/**指标名称**对。将在下面的窗口中显示指标的图形表示。

**Amazon SQS**  
启用 Amazon SQS 通知后，系统会在初始化 EMRFS 时创建一个名为 `EMRFS-Inconsistency-<jobFlowId>` 的 Amazon SQS 队列。当 `FileSystem` API 调用因 Amazon S3 最终一致性问题而失败时，系统会将 Amazon SQS 消息推送到该队列中。该消息包含诸如 API JobFlowId、不一致路径列表、堆栈跟踪等信息。可以使用 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`。

1. 要删除 Amazon SQS 队列，请键入以下命令：

   ```
   emrfs delete-sqs --queue-name queuename
   ```

   例如，要删除默认队列，请键入：

   ```
   emrfs delete-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU
   ```
**注意**  
还可以使用 `-q` 快捷方式代替 `--queue-name`。