すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:HBase スナップショットの使用

最終更新日:Aug 21, 2026

HBase スナップショット機能を使用すると、パフォーマンスへの影響を最小限に抑えながら、テーブルの軽量なバックアップを取得できます。E-MapReduce (EMR) クラスター上で HBase シェルまたはコマンドラインを使用して、スナップショットを作成、インポート、またはエクスポートできます。これらのスナップショットを使用して、新しいテーブルの作成やテーブルデータの復元ができます。本トピックでは、HBase スナップショットの使用方法について説明します。

スナップショットの作成

hbase shell コマンドを実行して HBase に接続します。詳細については、「Use HBase Shell」トピックの「HBase への接続」セクションをご参照ください。HBase への接続後、次のコマンドを実行して、table1 のスナップショット table1-snapshot を作成します。ビジネス要件に応じて制限を指定するために、snapshot コマンドで SKIP_FLUSHTTL、または 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

パラメーター

説明

-snapshot

コピーするスナップショットの名前。例:table1-snapshot

-copy-from

エクスポートするスナップショットのソースアドレスとコピー先アドレス。

OSS-HDFS サービスのエンドポイントは、Object Storage Service (OSS) コンソールの Overview ページで確認できます。詳細については、「OSS-HDFS サービスのエンドポイントの取得」をご参照ください。

-copy-to

-mappers

エクスポートタスクのマッパー数。この例では、このパラメーターの値は 2 です。

重要

スナップショットをエクスポートする際にこのパラメーターを設定しない場合、HBase はテーブルサイズに基づいて値を計算します。値が大きすぎると、HBase で実行中のタスクに影響が及びます。スナップショットのエクスポートで使用するクラスターリソースの数を制限するために、-mappers または -bandwidth パラメーターを設定することを推奨します。

スナップショットのエクスポート

コマンドラインを使用して、あるクラスターから別のクラスターの 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」をご参照ください。