HBase之—— Snapshot(快照)

转载请注明出处:https://blog.csdn.net/l1028386804/article/details/80793798

HBase在0.94之后提供了Snapshot功能,一个snapshot其实就是一组metadata信息的集合,它可以将表恢复到以前的一个状态。snapshot并不是一份拷贝,它只是一个文件名的列表,并不拷贝数据。一个全的snapshot可以回滚到原来的表schema和创建snapshot之前的数据。在0.95之后默认开启snapshot功能,之前版本的需要手动开启对snapshot的支持,修改hbas-site.xml文件添加

<property>    
    <name>hbase.snapshot.enabled</name>    
    <value>true</value>
</property>
主要提供了以下几个操作(对单个表进行这样的操作):
#为tableName表生成快照snapshotName
hbase> snapshot 'tableName', 'snapshotName'
 
#列出所有快照
hbase> list_snapshots 

#删除快照snapshotName
hbase> delete_snapshot 'snapshotName'
 
#克隆(复制)快照
hbase> clone_snapshot 'src_snapshot','dest_snapshot'
 
#restore snapshot, 将tableName还原到快照snapshotName的状态,首先必须将表disable掉
hbase> disable 'tableName'
hbase> restore_snapshot 'snapshotName'
hbase> enable 'tableName'

问题

针对hbase-0.94版本,开启了snapshot功能,有以下几个问题:

  • 元数据存在不一致状态时,一般的hbase一做split的时候就会出现暂态的元数据不一致
  • 需要做restore的时候它会先对表的当前状态做一下snapshot,成功之后才会去restore,这个有点没必要,有时候我们正是因为元数据不一致才会去做restore,这样就会没办法去做
  • 生成snapshot的时候只能是一张表一张表去做。
相关文章
相关标签/搜索