什么是快照
快照就是一份元信息的合集,容许管理员复原到表的先前状态。快照不是表的复制而是一个文件名称列表,因此不会复制数据。
快照的作用
HBase中存在的备份或克隆表的办法就是应用复制/导出表或者在敞开表之后拷贝HDFS中的所有HFile。
复制或导出是通过一系列工具调用MapReduce来扫描并复制表,这样会对RegionServer有间接的影响。敞开表会进行所有的读写操作,理论环境中往往无奈承受。
相比之下HBase快照容许管理员不拷贝数据,而间接克隆一张表,这对域服务器产生的影响最小。将快照导出至其余集群不会间接影响到任何服务器;导出只是带有一些额定逻辑的群间数据同步。
齐全快照复原是指复原到之前的“表构造”以及过后的数据,快照之后产生的数据不会复原。
快照劣势
导出快照与复制/导出表除了更好地放弃一致性外,次要的不同在于导出快照是在HDFS的层面操作的。 这意味着HMaster和域服务器与操作无关。因而不须要为不必要的数据创立缓存空间,也不会有扫描过程。因为大量对象创立引起的GC暂停,对于HBase 来说次要性能影响就是DataNode额定的网络和磁盘负载。
应用快照备份数据
1.配置文件配置能够应用快照性能
<property> <name>hbase.snapshot.enabled</name> <value>true</value></property>
2.新建一个快照
> snapshot 'www','www001'
3.查看所有的快照
> list_snapshots
4.应用快照克隆一个表
> clone_snapshot 'www001','wwww'
5.复原数据到快照
> disable 'www'> restore_snapshot 'www001'
6.删除快照
> delete_snapshot 'www001'
7.应用ExportSnapshot将以后快照导出至其余集群,导出工具不会影响到域服务器的负载,只是在HDFS层面,所以须要指定HDFS门路(其它集群的hbase根目录)
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshotName -copy-to hdfs://server1:8082/hbase