HBase スナップショット機能を使用すると、パフォーマンスへの影響を最小限に抑えながら、テーブルの軽量なバックアップを取得できます。E-MapReduce (EMR) クラスター上で HBase シェルまたはコマンドラインを使用して、スナップショットを作成、インポート、またはエクスポートできます。これらのスナップショットを使用して、新しいテーブルの作成やテーブルデータの復元ができます。本トピックでは、HBase スナップショットの使用方法について説明します。
スナップショットの作成
hbase shell コマンドを実行して HBase に接続します。詳細については、「Use HBase Shell」トピックの「HBase への接続」セクションをご参照ください。HBase への接続後、次のコマンドを実行して、table1 のスナップショット table1-snapshot を作成します。ビジネス要件に応じて制限を指定するために、snapshot コマンドで SKIP_FLUSH、TTL、または MAX_FILESIZE パラメーターを設定できます。
snapshot 'table1', 'table1-snapshot'スナップショット名は一意である必要があります。list_snapshots コマンドを実行すると、既存のすべてのスナップショットを表示できます。
スナップショットのクローンによるテーブルの作成
clone_snapshot コマンドを使用して、既存のスナップショットから新しいテーブルを作成します。
たとえば、hbase shell コマンドを実行して HBase に接続した後、次のコマンドを実行して、table1-snapshot から table2 という名前のテーブルを作成できます。
clone_snapshot 'table1-snapshot', 'table2'
スナップショットを使用したテーブルデータの復元
restore_snapshot コマンドを実行すると、スナップショットが作成された時点のテーブルデータを復元できます。スナップショットを使用してテーブルデータを復元する前に、テーブルを無効にする必要があります。
たとえば、hbase shell コマンドを実行して HBase に接続した後、次のコマンドを実行して、table1 を無効にし、table1-snapshot を使用して table1 のデータを復元し、再度 table1 を有効にできます。
disable 'table1'
restore_snapshot 'table1-snapshot'
enable 'table1'スナップショットのエクスポート
コマンドラインを使用して、他のパスにある HBase スナップショットをエクスポートできます。スナップショットをエクスポートする際は、スナップショットの名前とソースパス、コピー先アドレス、およびエクスポートタスクのマッパー数を指定する必要があります。
たとえば、次のコマンドを実行して、ある DataServing クラスターの OSS-HDFS サービスから別の DataServing クラスターの OSS-HDFS サービスにスナップショットをエクスポートできます。
hbase snapshot export \
-snapshot 'table1-snapshot' \
-copy-from oss://${Endpoint of the OSS-HDFS service}/oss-dir \
-copy-to oss://${Endpoint of the OSS-HDFS service}/hbase \
-mappers 2
パラメーター | 説明 |
|
コピーするスナップショットの名前。例: |
|
エクスポートするスナップショットのソースアドレスとコピー先アドレス。 OSS-HDFS サービスのエンドポイントは、Object Storage Service (OSS) コンソールの Overview ページで確認できます。詳細については、「OSS-HDFS サービスのエンドポイントの取得」をご参照ください。 |
| |
| エクスポートタスクのマッパー数。この例では、このパラメーターの値は 2 です。 重要 スナップショットをエクスポートする際にこのパラメーターを設定しない場合、HBase はテーブルサイズに基づいて値を計算します。値が大きすぎると、HBase で実行中のタスクに影響が及びます。スナップショットのエクスポートで使用するクラスターリソースの数を制限するために、 |
スナップショットのエクスポート
コマンドラインを使用して、あるクラスターから別のクラスターの Hadoop 分散ファイルシステム (HDFS) または OSS-HDFS サービスにスナップショットをエクスポートできます。スナップショットをエクスポートする際は、エクスポートするスナップショットの名前とコピー先パス、およびエクスポートタスクのマッパー数を指定する必要があります。
たとえば、次のコマンドを実行して、現在のクラスターから別のクラスターの OSS-HDFS サービスに table1-snapshot をエクスポートできます。スナップショットを別のクラスターの HDFS サービスにエクスポートする場合は、-copy-to パラメーターを対応する HDFS パスに設定する必要があります。
hbase snapshot export \
-snapshot 'table1-snapshot' \
-copy-to oss://${Endpoint of the OSS-HDFS service}/oss-dir \
-mappers 2スナップショットの削除
hbase shell コマンドを実行して HBase に接続した後、次のコマンドを実行して table1-snapshot を削除できます。
delete_snapshot 'table1-snapshot'関連ドキュメント
詳細については、Apache HBase の公式サイトにある「Apache HBase Reference Guide」をご参照ください。