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

E-MapReduce:HBase クラスターのバックアップ

最終更新日:Jan 11, 2025

このトピックでは、E-MapReduce(EMR)HBase クラスターをバックアップする方法について説明します。

前提条件

2 つの Hadoop クラスターが作成され、HBase サービスと ZooKeeper サービスがクラスターに追加されています。詳細については、「クラスターの作成」をご参照ください。

手順

  1. テーブルを作成し、テーブルにデータを追加します。
    1. HBase Shell を有効にします。
      hbase shell
    2. テーブルを作成します。
      create 'test','cf'
    3. テーブルにデータを追加します。
      put 'test','a','cf:c1',1
      put 'test','a','cf:c2',2
      put 'test','b','cf:c1',3
      put 'test','b','cf:c2',4
      put 'test','c','cf:c1',5
      put 'test','c','cf:c2',6
    4. HBase Shell を終了します。
      exit
  2. スナップショットを作成し、スナップショット情報をクエリします。
    1. スナップショットを作成します。
      hbase snapshot create -n test_snapshot -t test
    2. HBase Shell を有効にします。
      hbase shell
    3. スナップショット情報をクエリします。
      list_snapshots
      次の情報が返されます。
      SNAPSHOT                                           TABLE + CREATION TIME
       test_snapshot                                     test (Tue Aug 18 14:35:28 +0800 2020)
      1 row(s) in 0.2450 seconds
      
      => ["test_snapshot"]
    4. HBase Shell を終了します。
      exit
  3. 作成したスナップショットを OSS にエクスポートします。
    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot test_snapshot -copy-to oss://$accessKeyId:$accessKeySecret@$bucket.oss-cn-hangzhou-internal.aliyuncs.com/hbase/snapshot/test
    説明 内部エンドポイントを使用して OSS にアクセスします。
  4. SSH を使用して他のクラスターにログオンします。
  5. OSS からスナップショットをエクスポートします。
    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot test_snapshot -copy-from oss://$accessKeyId:$accessKeySecret@$bucket.oss-cn-hangzhou-internal.aliyuncs.com/hbase/snapshot/test -copy-to /hbase/
  6. スナップショットからデータを復元し、復元されたテーブルのデータを表示します。
    1. HBase Shell を有効にします。
      hbase shell
    2. スナップショットからデータを復元します。
      restore_snapshot 'test_snapshot'
    3. 復元されたテーブルのデータを表示します。
      scan 'test'
      次の情報が返されます。
      ROW                     COLUMN+CELL
       a                      column=cf:c1, timestamp=1472992081375, value=1
       a                      column=cf:c2, timestamp=1472992090434, value=2
       b                      column=cf:c1, timestamp=1472992104339, value=3
       b                      column=cf:c2, timestamp=1472992099611, value=4
       c                      column=cf:c1, timestamp=1472992112657, value=5
       c                      column=cf:c2, timestamp=1472992118964, value=6
      3 row(s) in 0.0540 seconds
  7. スナップショットに基づいてテーブルを作成し、テーブルのデータを表示します。
    1. スナップショットに基づいてテーブルを作成します。
      clone_snapshot 'test_snapshot','test_2'
    2. テーブルのデータを表示します。
      scan 'test_2'
      次の情報が返されます。
      ROW                     COLUMN+CELL
       a                      column=cf:c1, timestamp=1472992081375, value=1
       a                      column=cf:c2, timestamp=1472992090434, value=2
       b                      column=cf:c1, timestamp=1472992104339, value=3
       b                      column=cf:c2, timestamp=1472992099611, value=4
       c                      column=cf:c1, timestamp=1472992112657, value=5
       c                      column=cf:c2, timestamp=1472992118964, value=6
      3 row(s) in 0.0540 seconds