E-MapReduce で作成された HBase クラスターでは、HBase に統合されたスナップショット機能を使用して HBase テーブルのバックアップを取り、そのバックアップを OSS にエクスポートできます。
コーディング例 :
- HBase クラスターの作成
詳細は、「クラスターの作成 (Create clusters)」をご参照ください。
- テーブルの作成
>create 'test','cf'
- Add data
> 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
- スナップショットの作成
hbase snapshot create -n test_snapshot -t test
スナップショットの一覧表示>list_snapshots SNAPSHOT TABLE + CREATION TIME test_snapshot test (Sun Sep 04 20:31:00 +0800 2016) 1 row(s) in 0.2080 seconds
- スナップショットを 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 にアクセス - 別の HBase クラスターを作成
- 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/
- スナップショットからデータを復元
>restore _snapshot 'test_snapshot'
>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
- スナップショットから新しいテーブルを作成
>clone_snapshot 'test_snapshot','test_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