

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

# Amazon EMR 的预写日志（WAL）
<a name="emr-hbase-wal"></a>

使用亚马逊 EMR 6.15 及更高版本，你可以将 Apache HBase 预写日志 (WAL) 写入亚马逊 EMR WAL。在 Amazon EMR 版本较低的情况下，当您使用 “**on Amaz HBase on S3**” 选项创建集群时，WAL 是集群中唯一存储在本地磁盘中的 Apache 组 HBase 件，您可以在 Amazon S3 上存储其他组件，例如根目录、存储文件 (HFiles)、表元数据和数据。

您可以使用 Amazon EMR WAL 恢复未刷新到 Amazon S3 的数据。要完全备份您的 HBase 集群，请选择使用 Amazon EMR WAL 服务。在幕后，`RegionServer`将你的 HBase 预写日志 (WAL) 写入 Amazon EMR 的 WAL。

如果您的集群或可用区运行状况不佳或不可用，您可以创建一个新集群，将其指向相同的 S3 根目录和 Amazon EMR WAL Workspace，在几分钟内自动恢复 WAL 中的数据。有关更多信息，请参阅 [从 Amazon EMR WAL 还原](emr-hbase-wal-restoring.md)。

从亚马逊 EMR 7.3.0 及更高版本开始，亚马逊 EMR 为每台服务器创建多个 EMR，并将多个区域 HBase 分组为一个 Amazon WALs EMR WAL。这样做可以增强 Apache HBase WAL，从而提高日志利用率并优化成本。要配置每个 Amazon EMR WAL 实例的数量 HBase `RegionServer`，请使用参数。`hbase.wal.regiongrouping.numgroups`默认情况下，此参数设置为 2。有两个系统表未包含在任何 WALS 组中：*meta* 和 *masterstore*。这些桌子总是使用自己的个人表格 WALs。

如果您运行的版本低于 Amazon EMR 7.3.0，我们建议您手动禁用旧 HBase 集群中的表，以确保 Amazon EMR WAL 中的所有数据都刷新到 Amazon S3。然后，删除旧的 Amazon EMR WAL，终止旧集群，并设置一个运行最新版本的新集群。如果遇到问题，无法禁用旧集群上的表，可以直接终止旧群集，在新集群上将 `emr.wal.multiplex.migrate` 设置为 `true`。如果设置为 true，则 HBase 将在 HBase 区域初始化期间尝试重播来自旧 Amazon EMR WAL 实例的数据，并在重播 WALs 后删除旧的 Amazon EMR WAL 实例。此重放过程会产生额外的读取费用。迁移后，建议您配置集群，并将 `emr.wal.multiplex.migrate` 设置为 `false`。或者，您可以删除该参数以加快 HBase 区域初始化的速度。

**注意**  
 Amazon EMR WAL 在 HBase 刷新数据后将其删除。如果 HBase 没有刷新数据，Amazon EMR WAL 将数据最多保留 30 天。30 天后，Amazon EMR WAL 会自动删除数据。自终止 EMR 集群后，Amazon EMR 会将 WAL 实例最多保留 30 天。但如果您在这 30 天内从同一 S3 根目录启动启用了 WAL 的新集群，则 Amazon EMR 不会从之前的集群中删除任何 WAL 实例。有关更多信息，请参阅 [从 Amazon EMR WAL 还原](emr-hbase-wal-restoring.md)。

以下各节介绍如何在 HBase已启用的 EMR 集群中设置和使用 Amazon EMR WAL。

**Topics**
+ [Amazon EMR WAL Workspace](emr-hbase-wal-workspaces.md)
+ [Amazon EMR WAL 的所需权限](emr-hbase-wal-permissions.md)
+ [启用 Amazon EMR WAL](emr-hbase-wal-enabling.md)
+ [从 Amazon EMR WAL 还原](emr-hbase-wal-restoring.md)
+ [在 Amazon EMR WAL 中使用安全配置](emr-hbase-wal-security.md)
+ [通过以下方式访问亚马逊 EMR WAL AWS PrivateLink](emr-hbase-wal-privatelink.md)
+ [了解 Amazon EMR WAL 定价和指标](emr-hbase-wal-metrics.md)
+ [标记 WAL Workspace](emr-hbase-wal-tagging.md)
+ [EMR WAL 跨集群复制](emr-hbase-wal-cross-cluster.md)
+ [Amazon EMR WAL 注意事项和区域](emr-hbase-wal-considerations.md)
+ [Amazon EMR WAL（EMRWAL）CLI 参考](emrwalcli-ref.md)

# Amazon EMR WAL Workspace
<a name="emr-hbase-wal-workspaces"></a>

Amazon EMR WAL 增加了 WAL Workspace 的概念。*WAL 工作区*是的逻辑容器 WALs。Amazon EMR WAL 中的每个预写日志都由 WAL Workspace 封装。EMR 集群只写入 WALs 您在集群启动时配置的一个 WAL 工作空间，或者`defaultWALworkspace`如果您未指定工作空间，则写入到。WAL 工作空间与任何现有 HBase 术语无关，例如命名空间。

您可以使用 WAL Workspace 缩小 Amazon EMR WAL IAM 权限的范围，使其仅包含集群需要访问的 Workspace。您还可以标记 WAL Workspace，进行基于标记的访问控制。有关标记的更多信息，请参阅 [标记 WAL Workspace](emr-hbase-wal-tagging.md)。

![\[HBase architecture diagram showing write request flow through RegionServers, MemStore, and data storage.\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ReleaseGuide/images/wal-new.png)


# Amazon EMR WAL 的所需权限
<a name="emr-hbase-wal-permissions"></a>

为要使您的集群连接到 Amazon EMR WAL，集群的实例配置文件需要某些 IAM 权限：
+ Amazon EMR 使用 [https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html) 服务相关角色来检索集群状态。Amazon EMR HBase 会在您创建 WAL 工作空间时自动创建此服务相关角色，或者在您为 Amazon EMR WAL 配置工作空间且服务相关角色尚不存在时创建服务相关角色。

  在为集群启用 Amazon EMR WAL 之前，必须先配置权限，以便自动创建 AWSServiceRoleForEMRWAL 服务相关角色。有关更多信息和添加此功能的示例语句，请参阅[使用服务相关角色预写日志记录](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html#using-service-linked-roles-permissions-wal)。
+ 由于 Amazon EMR WAL 使用预 HBase 写日志 (WAL)，因此您的集群必须使用 HBase WAL。以下是您需要运行的最低 IAM 权限 HBase。将以下内容添加到实例配置文件的权限策略：

  ```
  emrwal:DeleteWal
  emrwal:CreateWal
  emrwal:CreateWorkspace
  emrwal:AppendEdit
  emrwal:ReplayEdits
  emrwal:GetCurrentWalTime
  emrwal:CompleteWalFlush
  emrwal:ListWALs
  emrwal:DescribeWAL
  emrwal:TrimWAL
  emrwal:ArchiveWAL
  emrwal:ArchiveWALCheckPoint
  ```
**注意**  
如果将 Amazon EMR WAL 的权限范围限定为最小集，则某些 [EMRWAL CLI](emrwalcli-ref.md) 命令将没有运行所需的权限。

# 启用 Amazon EMR WAL
<a name="emr-hbase-wal-enabling"></a>

使用 AWS Command Line Interface创建集群时，按照以下步骤启用写入 Amazon EMR WAL 的功能。

**注意**  
您无法为正在运行的集群启用 Amazon EMR WAL，也无法启动具有相同 S3 根目录的两个集群。有关更多信息，请参阅 [Amazon EMR WAL 注意事项和区域](emr-hbase-wal-considerations.md)。

1. 在创建启用了 Amazon EMR WAL 的集群之前，必须向计划用于集群的实例配置文件添加所需的权限。有关更多信息，请参阅 [Amazon EMR WAL 的所需权限](emr-hbase-wal-permissions.md)。

1. 从 AWS CLI创建集群 使用 `--configurations` 选项提供指定 `hbase.emr.wal.enabled` 属性的 JSON 配置对象，如下例所示。
   + 指定 Amazon S3 的存储模式和根目录位置。您指定的 Amazon S3 位置应与您的 EMR 集群位于同一区域，但一次只能有一个活动集群使用 S3 中的同一个 HBase 根目录。
   + 使用实例组配置创建集群。您不能将 Amazon EMR WAL 与实例集配置结合使用。有关使用实例组创建集群的更多信息，请参阅《Amazon EMR 管理指南》**中的[配置统一实例组](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-uniform-instance-group.html)。
   + 有关创建集群的控制台步骤以及使用集群的详细`create-cluster`示例 AWS CLI，请参阅使用[创建集群 HBase](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-create.html)。

1. 要为新集群启用 WAL，请将 `hbase.emr.wal.enabled` 属性设置为 `true`。以下命令包含带有示例配置对象的 JSON 代码段。

   ```
   aws emr create-cluster --name "hbasewal" --release-label emr-6.x.y \
   --applications Name=HBase --use-default-roles --ec2-attributes KeyName=myKey \
   --instance-type m6i.xlarge --instance-count 1 --configurations hbase.json
   $cat hbase.json
   [
       {
           "Classification": "hbase-site",
           "Properties": {
               "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore"
           }
       },
       {
           "Classification": "hbase",
           "Properties": {
               "hbase.emr.storageMode": "s3",
               "hbase.emr.wal.enabled": "true"
           }
       }
   ]
   ```

在新创建的集群上联机时 HBase ， HBase 会自动将 WAL 数据写入 Amazon EMR WAL，并使用 Amazon EMR WAL 进行恢复。

**Example 1：创建使用 Amazon EMR WAL 的 EMR 集群**  

```
[
    {
        "Classification": "hbase-site",
        "Properties": {
            "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore"
        }
    },
    {
        "Classification": "hbase",
        "Properties": {
            "hbase.emr.storageMode": "s3",
            "hbase.emr.wal.enabled": "true"
        }
    }
]
```

**Example 2：使用自定义 WAL Workspace 创建 EMR 集群**  

```
[
    {
        "Classification": "hbase-site",
        "Properties": {
            "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore",
            "emr.wal.workspace": "customWorkspaceName"
        }
    },
    {
        "Classification": "hbase",
        "Properties": {
            "hbase.emr.storageMode": "s3",
            "hbase.emr.wal.enabled": "true"
        }
    }
]
```

# 从 Amazon EMR WAL 还原
<a name="emr-hbase-wal-restoring"></a>

由于原始集群的 Amazon EMR WAL 保留 30 天，因此您可以在 30 天内为新创建的集群还原和重用 WAL。当您从同一 S3 根目录启动新集群时，Amazon EMR 会保留旧集群中的 WAL 实例。如果终止此新集群，30 天时钟将从终止之时重新开始。

按照以下过程使用新集群还原现有 WAL。此过程假设您在启用 Amazon EMR WAL 的情况下创建了原始集群。

1. 在创建支持 WAL 的集群后 30 天内，创建一个与原始集群 AWS 区域 相同的新集群。新集群可以位于创建原始集群的同一区域内的可用区中，也可以位于不同的可用区中。

   配置对象属性，指定 Amazon S3 中的存储模式和根目录位置。您指定的 Amazon S3 位置应与您的 EMR 集群位于同一区域，但一次只能有一个活动集群使用 S3 中的同一个 HBase 根目录。

   有关创建集群的控制台步骤以及使用集群的详细`create-cluster`示例 AWS CLI，请参阅使用[创建集群 HBase](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-create.html)。

1. 要对新集群使用现有 Amazon EMR WAL，请将 `hbase.emr.wal.enabled` 属性设置为 `true`。以下 JSON 代码段显示了一个示例配置对象。

```
[
    {
        "Classification": "hbase-site",
        "Properties": {
            "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore"
        }
    },
    {
        "Classification": "hbase",
        "Properties": {
            "hbase.emr.storageMode": "s3",
            "hbase.emr.wal.enabled": "true"
        }
    }
]
```

# 在 Amazon EMR WAL 中使用安全配置
<a name="emr-hbase-wal-security"></a>

Amazon EMR 会自动加密集群和 Amazon EMR WAL 服务之间的传输中数据，以及 Amazon EMR WAL 中的静态数据。有关更多信息，请参阅 [Amazon EMR WAL 的静态加密](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html#emr-encryption-WAL)。您还可以使用安全配置从 AWS Key Management Service (KMS) 服务中获取自己的密钥，并对存储在 Amazon EMR WAL 中的数据进行加密。

在创建集群时，使用以下方法之一选择安全配置：

------
#### [ Console ]

在中 AWS 管理控制台，在 “**安全配置” 和 EC2 key pair 下指定配置**。

![\[Security configuration section with search bar, refresh button, and options to browse or create configuration.\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ReleaseGuide/images/wal-configure-security.png)


------
#### [ CLI ]

使用 [create-clust](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) er 命令时，请从中设置`--security-configuration`参数。 AWS CLI

------

有关更多信息，请参阅《Amazon EMR 管理指南》**中的 [Amazon EMR WAL 的静态加密](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html#emr-encryption-WAL)和[使用安全配置设置集群安全性](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)。

有关 WAL 的更多安全相关信息，请参阅[使用服务相关角色预写日志](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html)。

# 通过以下方式访问亚马逊 EMR WAL AWS PrivateLink
<a name="emr-hbase-wal-privatelink"></a>

如果您想在 AWS 网络内保持连接，Amazon EMR WAL 可提供 AWS PrivateLink 支持。要进行设置 AWS PrivateLink，请使用 AWS 管理控制台 或 AWS Command Line Interface (AWS CLI) 创建连接到 Amazon EMR WAL 的接口 VPC 终端节点。有关更多信息，请参阅*AWS PrivateLink 指南*中的[使用接口 VPC 终端节点访问 AWS 服务](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。

基本步骤如下所示：

1. 使用 Amazon VPC 控制台[创建 VPC 端点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。选择**端点**，然后选择**创建端点**。

1. 将服务类别保留为 **AWS 服务**。

1. 在**服务**面板的搜索栏中，键入 **emrwal**，然后选择标记为 `com.amazonaws.region.emrwal.prod` 的服务。

1. 选择您的 VPC 并保存端点。确保将相同的安全组附加到您用来附加到 EMR 集群的 VPC 端点。

1. 如果需要，您可以为新端点启用私有 DNS 主机名。对于 VPC，将**启用 DNS 主机名**和**启用 DNS 支持**设置为 `true`。然后，选择端点 ID，从**操作**菜单中选择**编辑 VPC 设置**，并启用私有 DNS 名称。
   + 端点的私有 DNS 主机名将遵循 `prod.emrwal.region.amazonaws.com` 格式。
   + 如果不启用私有 DNS 主机名，Amazon VPC 会为您提供一个 DNS 端点名称，格式为 `endpointID.prod.emrwal.region.vpce.amazonaws.com`。

1. 要使用您的 AWS PrivateLink 终端节点，请在创建[启用 Amazon EMR WAL 的集群](emr-hbase-wal-enabling.md)时修改`emr.wal.client.endpoint`配置，如以下示例所示：

   ```
   [
       {
           "Classification": "hbase-site",
           "Properties": {
               "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore",
               "emr.wal.workspace": "customWorkspaceName",
               "emr.wal.client.endpoint": "https://prod.emrwal.region.amazonaws.com"
           }
       },
       {
           "Classification": "hbase",
           "Properties": {
               "hbase.emr.storageMode": "s3",
               "hbase.emr.wal.enabled": "true"
           }
       }
   ]
   ```

您也可以使用 VPCE 策略来允许或限制对 Amazon EMR WAL 的访问。 APIs有关更多信息，请参阅 *AWS PrivateLink 指南*中的[使用端点策略控制对 VPC 端点的访问权限](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。

# 了解 Amazon EMR WAL 定价和指标
<a name="emr-hbase-wal-metrics"></a>


| 核心功能计费单位 | Details | 
| --- | --- | 
| EMR-WAL-Read-GiB | API calls to read data from your table are billed as ReadRequestGiB. This includes [`Get` and `Scan`](https://hbase.apache.org/book.html#_data_model_operations) operations. Reads are charged based on the sizes of the read items. Amazon EMR bills at a minimum of 1 byte. For example, if you read a 1234.12 bytes item, you're charged for 1235 bytes. Reads are aggregated every hour for billing and shown as GiBs. | 
| EMR-WAL-Write-GiB | API calls to write data from your table are billed as Write-GiB. This includes [https://hbase.apache.org/book.html#_data_model_operations](https://hbase.apache.org/book.html#_data_model_operations) operations. Writes are charged based on the sizes of the written items. Amazon EMR bills at a minimum of 1 byte. For example, if you write a 1234.12 bytes item, you're charged for 1235 bytes. Writes are aggregated every hour for billing and shown as GiBs. | 
| EMR-WAL-WALHours | 您在服务上存储 WALs 的数量按以下方式计费。`EMR-WAL-WALHours`Amazon EMR 为每个区域创建一个 WAL。 HBase例如，如果您创建了 20 个 HBase 表（包括系统表），并且每个表有两个 HBase 区域，那么您将使用 28,800 个 WAL 小时，计算公式为： <pre>  20 tables <br />x  2 Regions per table <br />x  1 WAL per Region <br />x 30 days <br />x 24 hours <br />-----------<br />28,800 EMR-WAL-WALHours</pre> | 

**示例`EMRWALCount`：**

![\[Line graph showing ResourceCount fluctuations over time, ranging from about 18.87 to 19.20.\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ReleaseGuide/images/wal-metric.png)


**示例`EMRWALWorkspaceCount`：**

![\[Graph showing ResourceCount fluctuations over time, ranging from 7.97 to 8.32.\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ReleaseGuide/images/wal-metric2.png)


# 标记 WAL Workspace
<a name="emr-hbase-wal-tagging"></a>

您可以在创建新 Workspace 时向 Workspace 添加标签，也可以在活动 Workspace 中为正在运行的集群添加、删除或列出标签。您无法标记 Workspace 中的单个资源，也无法更新现有标签；相反，从 Workspace 中删除不需要的标签并替换。

您可以从 EMRWAL CLI 中标记 Workspace。有关标记 Workspace 的 EMRWAL CLI 命令列表，请参阅 [Amazon EMR WAL（EMRWAL）CLI 参考](emrwalcli-ref.md)。

以下示例 IAM 策略说明了一个场景，该场景仅允许使用适当的标记键 `resource_tag_allow_test_key` 和值 `resource_tag_allow_test_value` 执行 Workspace CRUDL 操作：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/resource_tag_allow_test_key": [
            "resource_tag_allow_test_value"
          ]
        }
      },
      "Sid": "AllowEMRWAL"
    }
  ]
}
```

------

要验证 Workspace 操作现在是否需要标签，请使用 [Amazon EMR WAL（EMRWAL）CLI 参考](emrwalcli-ref.md) 在 `tagAllowResourceTag` 上对具有所需资源标签的 Workspace 调用 [`listTagsForResource`](emrwalcli-ref.md#emrwalcli-ref-listtagsforresource) 命令。如果您正确配置了条件，命令将成功执行。

```
emrwal listTagsForResource -r us-east-1 -arn arn:aws:emrwal:us-east-1:arn:workspace/tagAllowResourceTag
Tag(Key=resource_tag_allow_test_key, Value=resource_tag_allow_test_value)
```

# EMR WAL 跨集群复制
<a name="emr-hbase-wal-cross-cluster"></a>

从 EMR 7.5 开始，EMR WAL 支持预写日志的 HBase 跨集群复制。本主题介绍如何启用该功能并检查其是否正常工作。有关集群复制的更多详细信息，请参阅 A HBase pache 文档中的[集群复制](https://hbase.apache.org/book.html#_cluster_replication)。

**注意**  
由于复制过程会从本地 EMR WAL 读取数据，因此预写日志会产生额外的读取成本。有关成本的更多详细信息，请参阅[关于 Amazon EMR 发行版](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-wal-metrics.html)。

## 跨集群复制设置
<a name="emr-hbase-wal-cross-cluster-setup"></a>

为了获得相同的用户体验，在 EMR WAL 上启用复制功能与使用本机预 HBase 写日志相同。以下过程显示了一个简单示例。有关更多信息，请参阅集[群复制中的 HBase ](https://hbase.apache.org/book.html#_cluster_replication)文档。

1. 启动一个主集群（作为复制源），并启用 EMR WAL。要启用预写日志，请参阅[启用 Amazon EMR WAL](emr-hbase-wal-enabling.md)。此外，启动一个对等集群。对于此对等集群，您可以选择是否启用 EMR WAL。

1. 在两个集群上，创建一个表：

   ```
   HBASE_CMD="sudo -u hbase hbase"
   echo "create 'test_replication_table',{NAME => 'CF'}" | $HBASE_CMD shell
   ```

1. 在主集群上添加对等集群设置并启用表复制。在添加对等节点期间，需要对等集群主节点主机名，即 **PEER\$1DNS**。

   ```
   HBASE_CMD="sudo -u hbase hbase"
   PEER_DNS="ip-10-1-1-0.ec2.com"
   PEER_NAME="aws"
   TABLE_NAME="test_replication_table"
   
   ## Create peering with the destination cluster
   echo "add_peer '$PEER_NAME', CLUSTER_KEY => '$PEER_DNS:2181:/hbase'" | $HBASE_CMD shell
   
   ## List peers in the primary cluster to confirm peer setup
   echo "list_peers" | $HBASE_CMD shell
   
   ## Enable table replication
   echo "enable_table_replication '$TABLE_NAME'" | $HBASE_CMD shell
   ```

## 确认跨集群复制
<a name="emr-hbase-wal-cross-cluster-confirm"></a>

执行设置步骤后，在主集群和对等集群之间启用复制。接下来进行测试，确认复制正常工作。

1. 在主集群上添加数据，并验证复制到对等集群的数据。

   ```
   ## Write on primary cluster with HBase CLI
   
   put 'test_replication_table', 'aaa', 'CF:a', 'aaa_a1'
   put 'test_replication_table', 'bbb', 'CF:b', 'bbb_b1'
   put 'test_replication_table', 'ccc', 'CF:c', 'ccc_c1'
   ```

1. 确认在对等集群上复制成功。在这种情况下，您应该会看到从主集群复制到对等集群的数据。

   ```
   ### Scan on peer cluster with HBase CLI
   
   scan 'test_replication_table'
   ```

# Amazon EMR WAL 注意事项和区域
<a name="emr-hbase-wal-considerations"></a>

## Amazon EMR WAL 注意事项
<a name="emr-hbase-wal-consid"></a>

以下列表列出了 Amazon EMR WAL 的重要注意事项和限制：
+ Amazon EMR WAL 可用于 Amazon EMR 6.15.0 及更高版本。
+ Amazon EMR WAL 是一项可选的付费服务。您可以按实际使用量付费：读取、写入和数据存储。有关更多信息，请参阅 [了解 Amazon EMR WAL 定价和指标](emr-hbase-wal-metrics.md) 和 [Amazon EMR 定价](https://aws.amazon.com/emr/pricing/)页面。
+ 亚马逊 EMR WAL 使用预 HBase 写日志 (WAL)。要使用 Amazon EMR WAL，您的集群必须使用 HBase WAL。
+ 要在创建集群时启用 Amazon EMR WAL，您必须拥有所需的角色权限。有关更多信息，请参阅[使用服务相关角色预写日志记录](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html)。
+ 使用 AWS 管理控制台、 AWS CLI或 API 创建集群时，必须启用 Amazon EMR WAL，并且必须使用*实例组配置*。如果您未使用 Amazon EMR WAL 创建集群，则无法在正在运行的集群中启用 Amazon EMR WAL。您也无法编辑 `hbase-site` 配置，在正在运行的集群中启用 Amazon EMR WAL。
+ 您只能在将 Amazon S3 用作根目录的集群上启用 Amazon EMR WAL。
+ 在 Amazon EMR 版本 7.5.0 之前，Amazon EMR WAL 中的记录必须为 4 MB 或更小。但是在 Amazon EMR 7.5.0 及更高版本中，EMR WAL 中的最大记录大小可以通过属性 `emr.wal.max.payload.size` 进行配置。默认值为 1 GB。以下示例将最大记录大小设置为 2 GB：

  ```
  [
    {
      "Classification":"hbase-site",
      "Properties": {
         "emr.wal.max.payload.size": "2147483648"
      }
    }
  ]
  ```
+ 在 Amazon S3 中，不能在同一个 HBase 根目录下有多个活动集群。
+ 您无法在只读副本集群上启用 Amazon EMR WAL。
+ WAL 在托管服务内跨可用区复制。
+ WAL 的存在时间超过集群，并且在下一个集群中仍然可用。
+ 在启动期间或集群运行时（处于运行状态），您无法禁用 Amazon EMR WAL。
+ 有关 WAL 和 Workspace 限制的信息，请参阅 [Amazon EMR 端点和配额](https://docs.aws.amazon.com/general/latest/gr/emr.html)。

## Amazon EMR WAL 的区域可用性
<a name="emr-hbase-wal-regions"></a>

亚马逊 EMR WAL 服务有以下几种可供选择： AWS 区域
+ `ap-northeast-1`：亚太地区（东京）
+ `ap-northeast-2`：亚太地区（首尔）
+ `ap-southeast-1` – 亚太地区（新加坡）
+ `ap-south-1`：亚太地区（孟买）
+ `ap-southeast-2`：亚太地区（悉尼）
+ `eu-central-1`：欧洲地区（法兰克福）
+ `eu-north-1`：欧洲地区（斯德哥尔摩）
+ `eu-west-1`：欧洲地区（爱尔兰）
+ `sa-east-1`：南美洲（圣保罗）
+ `us-east-1`：美国东部（弗吉尼亚州北部）
+ `us-east-2`：美国东部（俄亥俄州）
+ `us-west-2`：美国西部（俄勒冈州）

以下区域仅适用于 Amazon EMR 7.3.0 或更高版本：
+ `ap-east-1`：亚太地区（香港）
+ `af-south-1`：非洲（开普敦） 
+ `ca-central-1`：加拿大（中部）
+ `eu-west-2`：欧洲地区（伦敦）

# Amazon EMR WAL（EMRWAL）CLI 参考
<a name="emrwalcli-ref"></a>

*EMRWAL 命令行界面（EMRWAL CLI）* 是一个统一的工具，用于管理 Amazon EMR 的预写日志（WAL）。当您在创建集群时启用 WAL 时，EMRWAL CLI 随 EMR 集群一起提供。有关启用 WAL 的更多信息，请参阅 [Amazon EMR 的预写日志（WAL）](emr-hbase-wal.md)。

EMRWAL CLI 包括以下命令：

**Topics**
+ [`createWorkspace`](#emrwalcli-ref-createworkspace)
+ [`deleteWal`](#emrwalcli-ref-deletewal)
+ [`deleteWorkspace`](#emrwalcli-ref-deleteworkspace)
+ [`listTagsForResource`](#emrwalcli-ref-listtagsforresource)
+ [`listWals`](#emrwalcli-ref-listwals)
+ [`listWorkspaces`](#emrwalcli-ref-listworkspaces)
+ [`tagResource`](#emrwalcli-ref-tagresource)
+ [`untagResource`](#emrwalcli-ref-untagresource)

## `createWorkspace`
<a name="emrwalcli-ref-createworkspace"></a>

`createWorkspace` 命令将创建一个新的 Amazon EMR WAL Workspace。

**用法：**

```
emrwal createWorkspace [-tags <tags>] [-e {endpoint}] [-r {Region}] -w {workspacename} [-h]
```

**示例**：

```
emrwal createWorkspace -w examplews
```

## `deleteWal`
<a name="emrwalcli-ref-deletewal"></a>

`deleteWals` 命令将删除您指定的 Amazon EMR WAL。

**用法：**

```
emrwal deleteWal [-e {endpoint}] [-r {Region}] [-w {workspacename}] [-p <tablePrefix>] [-n <walName>] [-N <fullName>] [-R] [-m] [-h]
```

**示例**：

```
emrwal deleteWal -w examplews -p hbasetable -n examplewal
```

## `deleteWorkspace`
<a name="emrwalcli-ref-deleteworkspace"></a>

`deleteWorkspace` 命令将删除您指定的 Amazon EMR WAL Workspace。

**用法：**

```
emrwal deleteWorkspace [-e {endpoint}] [-r {Region}] -w {workspacename} [-h]
```

**示例**：

```
emrwal deleteWorkspace -w examplews
```

## `listTagsForResource`
<a name="emrwalcli-ref-listtagsforresource"></a>

`listTagsForResource` 命令将列出您指定的 Amazon EMR WAL Workspace的所有键值对标签。

**用法：**

```
emrwal listTagsForResource -arn {resource-arn} [-e {endpoint}] [-r {Region}] [-h]
```

**示例**：

```
emrwal listTagsForResource -arn arn:aws:emrwal::1234567891234:workspace/examplews
```

## `listWals`
<a name="emrwalcli-ref-listwals"></a>

该`listWals`命令列出了您指定的工作空间 WALs 中的所有 Amazon EMR。

**用法：**

```
emrwal listWals [-nextToken {token-string}] [-pageSize {integer}] [-e {endpoint}] [-r {Region}] [-w {workspacename}] [-p <tablePrefix>] [-M {integer}] [-h]
```

**示例**：

```
emrwal listWals -w examplews
```

## `listWorkspaces`
<a name="emrwalcli-ref-listworkspaces"></a>

`listWorkspaces` 命令将列出所有可用的 Amazon EMR WAL Workspace。

**用法：**

```
emrwal listWorkspaces [-nextToken {token-string}] [-pageSize {integer}] [-e {endpoint}] [-r {Region}] [-M {integer}] [-h]
```

**示例**：

```
emrwal listWorkspaces
```

## `tagResource`
<a name="emrwalcli-ref-tagresource"></a>

`tagResource` 命令将为您指定的 Amazon EMR WAL Workspace 分配一个或多个键值对标签。

**用法：**

```
emrwal tagResource -arn {resource-arn} -tags <tags> [-e {endpoint}] [-r {Region}] [-h]
```

**示例**：

```
emrwal tagResource -arn arn:aws:emrwal::1234567891234:workspace/examplews -tags tag_key=tag_value
```

## `untagResource`
<a name="emrwalcli-ref-untagresource"></a>

`untagResource` 命令将为您指定的 Amazon EMR WAL Workspace 取消分配一个或多个键值对标签。

**用法：**

```
emrwal untagResource -arn {resource-arn} -tagKeys <tagKeys> [-e {endpoint}] [-r {Region}] [-h]
```

**示例**：

```
emrwal untagResource -arn arn:aws:emrwal::1234567891234:workspace/examplews -tagKeys tag_key
```