

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EMR の先行書き込みログ (WAL)
<a name="emr-hbase-wal"></a>

Amazon EMR 6.15 以降では、Amazon EMR WAL に Apache HBase 先行書き込みログ (WAL) を書き込むことができます。Amazon EMR の以前のリリースでは、**[HBase on Amazon S3]** オプションを使用してクラスターを作成すると、WAL はクラスターのローカルディスクに保存される唯一の Apache HBase コンポーネントであり、ルートディレクトリ、ストアファイル (HFiles)、テーブルメタデータ、Amazon S3 上のデータなどの他のコンポーネントを保存できます。

Amazon EMR WAL を使用して、Amazon S3 にフラッシュされなかったデータを復元できます。HBase クラスターを完全にバックアップするには、Amazon EMR WAL サービスの使用をオプトインします。バックグラウンドで、`RegionServer` は HBase 先行書き込みログ (WAL) を Amazon EMR の WAL に書き込みます。

クラスターまたは AZ が異常または使用できなくなった場合は、新しいクラスターを作成し、同じ S3 ルートディレクトリと Amazon EMR WAL ワークスペースにポイントし、数分以内に WAL でデータを自動的に復元できます。詳細については、「[Amazon EMR WAL からの復元](emr-hbase-wal-restoring.md)」を参照してください。

Amazon EMR リリース 7.3.0 以降では、Amazon EMR はサーバーごとに複数の EMR WAL を作成し、複数の HBase リージョンを 1 つの Amazon EMR WAL にグループ化します。これにより、Apache HBase WAL が強化され、ログ使用率が向上し、コストが最適化されます。HBase `RegionServer` あたりの Amazon EMR WAL インスタンスの数を設定するには、`hbase.wal.regiongrouping.numgroups` パラメータを使用します。デフォルトでは、このパラメータは 2 に設定されます。WAL グループに含まれていないシステムテーブルは、*meta* と *masterstore* の 2 つです。これらのテーブルは常に独自の WAL を使用します。

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 インスタンスからデータを再生しようとし、再生後に古い WAL を削除します。この再生プロセスでは、読み取りに追加のコストが発生します。移行後は、クラスターを設定し、`emr.wal.multiplex.migrate` を `false` に設定することをお勧めします。または、パラメータを削除して HBase リージョンの初期化を高速化することもできます。

**注記**  
 Amazon EMR WAL は、HBase がフラッシュした後にデータを削除します。HBase がデータをフラッシュしない場合、Amazon EMR WAL はデータを最大 30 日間保持します。30 日後、Amazon EMR WAL は自動的にデータを削除します。Amazon EMR は、EMR クラスターを終了してから最大 30 日間 WAL インスタンスを保持します。ただし、30 日以内に同じ S3 ルートディレクトリから新しい WAL 対応クラスターを起動した場合、Amazon EMR は以前のクラスターからどの WAL インスタンスも削除しません。詳細については、「[Amazon EMR WAL からの復元](emr-hbase-wal-restoring.md)」を参照してください。

以下のセクションでは、HBase 対応 EMR クラスターで Amazon EMR WAL をセットアップして使用する方法について説明します。

**Topics**
+ [Amazon EMR WAL ワークスペース](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)
+ [経由で Amazon EMR WAL にアクセスする AWS PrivateLink](emr-hbase-wal-privatelink.md)
+ [Amazon EMR WAL の料金とメトリクスについて](emr-hbase-wal-metrics.md)
+ [WAL ワークスペースのタグ付け](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 ワークスペース
<a name="emr-hbase-wal-workspaces"></a>

Amazon EMR WAL は WAL ワークスペースの概念を追加します。*WAL ワークスペース*は、WAL の論理コンテナです。Amazon EMR WAL の各先行書き込みログは、WAL ワークスペースによってカプセル化されます。EMR クラスターは、クラスターの起動時に設定した 1 つの WAL ワークスペースに WAL を書き込むか、ワークスペースを指定しない場合は `defaultWALworkspace` に書き込みます。WAL ワークスペースは、名前空間などの既存の HBase 用語には関連していません。

WAL ワークスペースを使用して Amazon EMR WAL IAM アクセス許可の範囲を縮小し、クラスターがアクセスする必要があるワークスペースのみを含めることができます。また、WAL ワークスペースにタグを付け、タグベースのアクセス制御を行うこともできます。タグ付けの詳細については、「[WAL ワークスペースのタグ付け](emr-hbase-wal-tagging.md)」を参照してください。

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


# Amazon EMR WAL に必要なアクセス許可
<a name="emr-hbase-wal-permissions"></a>

クラスターを Amazon EMR WAL に接続するには、クラスターのインスタンスプロファイルに特定の IAM アクセス許可が必要です。
+ Amazon EMR WAL は、サービスにリンクされたロール [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 は、WAL ワークスペースを作成するときにこのサービスにリンクされたロールを自動的に作成します。または、Amazon EMR WAL のワークスペースを設定したときにサービスにリンクされたロールがまだ存在しない場合は、HBase がサービスにリンクされたロールを作成します。

  クラスターで Amazon EMR WAL を有効にする前に、サービスにリンクされたロール AWSServiceRoleForEMRWAL の自動作成を許可するアクセス許可を設定する必要があります。この機能を追加する詳細とステートメントの例については、「[Using service-linked roles for write-ahead logging](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html#using-service-linked-roles-permissions-wal)」を参照してください。
+ Amazon EMR WAL は HBase Write Ahead Log (WAL) を使用するため、クラスターは HBase WAL を使用する必要があります。以下は、HBase を実行するために必要な最小限の IAM アクセス許可です。これらをインスタンスプロファイルのアクセス許可ポリシーに追加します。

  ```
  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 ルートディレクトリで 2 つのクラスターを起動したりすることはできません。詳細については、「[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 ルートディレクトリを使用できるアクティブなクラスターは 1 つだけです。
   + インスタンスグループ設定でクラスターを作成します。Amazon EMR WAL をインスタンスフリート設定で使用することはできません。インスタンスグループでクラスターを作成する詳細については、「*Amazon EMR 管理ガイド*」の「[Configure uniform instance groups](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-uniform-instance-group.html)」を参照してください。
   + クラスターを作成するコンソールの手順と、 を使用する詳細な`create-cluster`例については、[HBase を使用したクラスターの作成](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-create.html) AWS CLI」を参照してください。

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 ワークスペースを使用した 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 日間保持されるため、WAL を復元して 30 日以内に新しく作成されたクラスターに再利用できます。同じ S3 ルートディレクトリから新しいクラスターを起動すると、Amazon EMR は古いクラスターから WAL インスタンスを保持します。この新しいクラスターを終了すると、終了時から 30 日間のクロックが再起動します。

新しいクラスターで既存の WAL を復元するには、次の手順に従います。このプロセスでは、Amazon EMR WAL を有効にして元のクラスターを作成したことを前提としています。

1. WAL 対応クラスターを作成してから 30 日以内に、元のクラスター AWS リージョン と同じ に新しいクラスターを作成します。新しいクラスターは、元のクラスターが作成されたリージョンと同じリージョン内の同じ AZ 内または別の AZ 内に配置できます。

   Amazon S3 内のストレージモードとルートディレクトリの場所を指定するオブジェクトプロパティを設定します。指定する Amazon S3 の場所は EMR クラスターと同じリージョンにある必要がありますが、S3 で同時に同じ HBase ルートディレクトリを使用できるアクティブなクラスターは 1 つだけです。

   クラスターを作成するコンソールの手順と、 を使用する詳細な`create-cluster`例については、[HBase を使用したクラスターの作成](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-create.html) AWS CLI」を参照してください。

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 に保管中のデータの両方を自動的に暗号化します。詳細については、「[Encryption at rest for 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 キーペアで設定**を指定します。

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


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

から AWS CLI、[create-cluster](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) コマンドを使用するときに `--security-configuration`パラメータを設定します。

------

詳細については、「*Amazon EMR 管理ガイド*」の「[Encryption at rest for Amazon EMR WAL](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html#emr-encryption-WAL)」および「[Use security configurations to set up cluster security](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)」を参照してください。

WAL に関するセキュリティ関連の詳細については、「[Using service-linked roles for write-ahead logging](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html)」を参照してください。

# 経由で Amazon 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 は `endpointID.prod.emrwal.region.vpce.amazonaws.com` 形式で DNS エンドポイント名を提供します。

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 API へのアクセスを許可または制限することもできます。詳細については、『*AWS PrivateLink ガイド*』の「[Control access to VPC endpoints using endpoint policies (エンドポイントポリシーを使用して VPC エンドポイントへのアクセスをコントロールする)](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)」を参照してください。

# Amazon EMR WAL の料金とメトリクスについて
<a name="emr-hbase-wal-metrics"></a>


| コア機能請求単位 | 詳細 | 
| --- | --- | 
| 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 | サービスに保存している WAL の数は `EMR-WAL-WALHours` として請求されます。Amazon EMR は、HBase リージョンごとに 1 つの WAL を作成します。例えば、システムテーブルを含む 20 個の HBase テーブルを作成し、各テーブルに 2 つの 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/ja_jp/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/ja_jp/emr/latest/ReleaseGuide/images/wal-metric2.png)


# WAL ワークスペースのタグ付け
<a name="emr-hbase-wal-tagging"></a>

新しいワークスペースを作成するときにワークスペースにタグを追加し、実行中のクラスターのアクティブなワークスペースからタグを追加、削除、または一覧表示できます。ワークスペース内の個々のリソースにタグを付けることはできず、既存のタグを更新することもできません。代わりに、ワークスペースから不要なタグを削除して置き換えます。

ワークスペースには EMRWAL CLI からタグ付けできます。ワークスペースにタグ付けするための EMRWAL CLI コマンドのリストについては、「[Amazon EMR WAL (EMRWAL) CLI リファレンス](emrwalcli-ref.md)」を参照してください。

次の IAM ポリシーの例は、適切なタグ付けキー `resource_tag_allow_test_key` と値 `resource_tag_allow_test_value` を使用してワークスペース 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"
    }
  ]
}
```

------

ワークスペースの操作にタグが必要になったことを確認するには、[Amazon EMR WAL (EMRWAL) CLI リファレンス](emrwalcli-ref.md) を使用して、目的のリソースタグを持つワークスペースの `tagAllowResourceTag` で [`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 クラスター間レプリケーションをサポートしています。このトピックでは、この機能を有効にし、機能していることをチェックする方法について説明します。クラスターレプリケーションの詳細については、Apache HBase ドキュメントの「[Cluster Replication](https://hbase.apache.org/book.html#_cluster_replication)」を参照してください。

**注記**  
レプリケーションプロセスがローカル EMR WAL からデータを読み取るため、先行書き込みログには追加の読み取りコストがかかります。コストの詳細については、「[About Amazon EMR Releases](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 ドキュメントの「[Cluster Replication](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/)」ページを参照してください。
+ Amazon EMR WAL は HBase Write Ahead Log (WAL) を使用します。Amazon EMR WAL を使用するには、クラスターで HBase WAL を使用する必要があります。
+ クラスターの作成時に Amazon EMR WAL を有効にするには、必要なロールアクセス許可が必要です。詳細については、「[Using service-linked roles for write-ahead logging](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html)」を参照してください。
+ Amazon EMR WAL は、 AWS マネジメントコンソール、、 AWS CLIまたは API を使用してクラスターを作成するときに有効にする必要があり、*インスタンスグループ*設定を使用する必要があります。Amazon EMR WAL でクラスターを作成していない場合、実行中のクラスターで Amazon EMR WAL を有効にすることはできません。また、`hbase-site` 設定を編集して実行中のクラスターで Amazon EMR WAL を有効にすることはできません。
+ Amazon EMR WAL は、ルートディレクトリに Amazon S3 を使用するクラスターでのみ有効にできます。
+ Amazon EMR バージョン 7.5.0 以前は、Amazon EMR WAL のレコードは 4MB 以下である必要がありました。ただし、Amazon EMR バージョン 7.5.0 以降では、`emr.wal.max.payload.size` プロパティを使用して EMR WAL の最大レコードサイズを設定できます。デフォルト値は 1 GB です。以下の例では、最大レコードサイズを 2GB に設定します:

  ```
  [
    {
      "Classification":"hbase-site",
      "Properties": {
         "emr.wal.max.payload.size": "2147483648"
      }
    }
  ]
  ```
+ Amazon S3 の同じ HBase ルートディレクトリに複数のアクティブなクラスターを持つことはできません。
+ リードレプリカクラスターで Amazon EMR WAL を有効にすることはできません。
+ WAL は、マネージドサービス内のアベイラビリティーゾーン間でレプリケートされます。
+ WAL はクラスターを存続させ、次のクラスターで引き続き使用できるようにします。
+ Amazon EMR WAL は、起動中またはクラスターが動作中 (実行中の状態) に無効にすることはできません。
+ WAL とワークスペースの制限については、「[Amazon EMR endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/emr.html)」を参照してください。

## Amazon EMR WAL のリージョン可用性
<a name="emr-hbase-wal-regions"></a>

Amazon 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 ワークスペースを作成します。

**使用:**

```
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 ワークスペースを削除します。

**使用:**

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

**例**:

```
emrwal deleteWorkspace -w examplews
```

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

`listTagsForResource` コマンドは、指定した Amazon EMR WAL ワークスペースのすべてのキーと値のペアタグを一覧表示します。

**使用:**

```
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` コマンドは、指定したワークスペース内のすべての Amazon EMR WAL を一覧表示します。

**使用:**

```
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 ワークスペースを一覧表示します。

**使用:**

```
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 ワークスペースに 1 つ以上のキーと値のペアタグを割り当てます。

**使用:**

```
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 ワークスペースに 1 つ以上のキーと値のペアタグの割り当てを解除します。

**使用:**

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

**例**:

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