本文介绍如何备份E-MapReduce的HBase集群。
前提条件
已创建两个Hadoop集群,并添加HBase和Zookeeper服务,详情请参见创建集群。
操作步骤
- 通过SSH方式登录集群。详情请参见使用SSH连接主节点。
- 创建Table并添加数据。
- 打开HBase Shell。
hbase shell
- 创建表。
create 'test','cf'
- 添加数据。
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 Shell。
exit
- 打开HBase Shell。
- 创建并查看快照。
- 创建快照。
hbase snapshot create -n test_snapshot -t test
- 打开HBase Shell。
hbase shell
- 查看快照。
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"]
- 退出HBase Shell。
exit
- 创建快照。
- 导出数据至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使用内网Endpoint。 - 通过SSH方式登录另一个集群。详情请参见使用SSH连接主节点。
- 导出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/
- 从快照恢复数据并新建表。
- 打开HBase Shell。
hbase shell
- 从快照恢复数据。
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
- 打开HBase Shell。
- 从快照创建新表并查看数据。
- 从指定的快照生成新表。
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
- 从指定的快照生成新表。