hbase的高级特性之快照功能
关于snapshot的快照总共有这么多命令:
clone_snapshot:这个命令的意思是通过克隆的内容创建一个新表,在创建表的时候不会产生数据副本也不会影响原来的快照数据,仅仅是通过快照重新创建了一个新表,并且包含了快照时的数据
使用方法:
(1)clone_snapshot ‘snapshotName’, ‘tableName’
使用快照在默认表空间中创建一个新表
(2)clone_snapshot ‘snapshotName’, ‘namespace:tableName’
使用快照创建一个namespace表空间,并且表的名称为tablename
clone_snapshot 'snapshot_testtable1_20200419','clone_testtable1'
delete_all_snapshot:删除所有快照
delete_snapshot:删除指定快照
delete_table_snapshots:删除符合正则表达式的快照
list_snapshots:列出所有的快照
list_table_snapshots:列出否正则表达式的快照
restore_snapshot:恢复快照
snapshot:创建一个快照
Take a snapshot of specified table. Examples:
hbase> snapshot ‘sourceTable’, ‘snapshotName’
hbase> snapshot ‘namespace:sourceTable’, ‘snapshotName’, {SKIP_FLUSH => true}
这些命令都是在hbase shell命令行下的快照操作,我们也可以直接使用hbase的命令直接操作快照
snapshot 的子命令有create 、info、export
create: 就是创建一个快照
info :就是查看快照的一些信息
export:把快照导出,下面就是关于export的一些用法
通过一些可选项对快照进行一些操作,
示例:
Examples:
hbase snapshot export \
--snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \
--chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16
//把当前主机的hbase中的快照复制到另一端服务器的hbase中
hbase snapshot export \
--snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \
--copy-to hdfs://srv1:50070/hbase
//从远端的服务器导入到当前端的hbase中
我就测试一个从当前端导入远端的hbase中的命令,我的当前端是一个伪分布,远端是一个全分布
hbase snapshot export --snapshot snapshot_202004192300 --copy-to hdfs://bigdata112:9000/hbase
我在导入的时候因为不小心所以报错了好几回,
(1)一开始因为在bigdata112上copy到bigdata112所以快照找不见
(2)第二次是因为–snapshot 参数没带
(3)第三次是因为–snapshot写成了–snapshort
所以就小心一点最终是导入成功了
我们在bigdata112的命令行模式下查看一下是否导入成功
没有问题,我们再恢复一下
(1)先确认我们bigdata112这个全分布环境中没有这个表
(2)使用restore_snapshot命令来恢复快照
(3)再查看一下是否已经有了这个表
现在我们使用快照功能可以正常操作