关于hbase:Hbase备份与恢复快照技术

40次阅读

共计 936 个字符,预计需要花费 3 分钟才能阅读完成。

什么是快照

快照就是一份元信息的合集,容许管理员复原到表的先前状态。快照不是表的复制而是一个文件名称列表,因此不会复制数据。

快照的作用

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

正文完
 0