snapshot功能
hbase提供snapshot功能用最小的性能影响代价进行一份表(元数据和data数据)的备份数据。snapshot记录表当前时间表元信息和hfiles的集合。snapshot 后的数据可以通过clone的方式进行一份新表的创建,也可以通过restore的方式进行表数据的恢复。在clone和restore的过程中,用户不必担心数据的copy,因为这两种操作都是不会更改hfiles的。相似的导入一份快照到另一个集群的操作对当前的集群的影响也是比较小的。
操作
1、hbase-site.xml 中配置snapshot开启
<property>
<name>hbase.snapshot.enabled</name>
<value>true</name>
</property>
2、执行快照操作
hbase shell
hbase> snapshot "myTable", "myTable-snapshot-xxxx"
// 执行操作的时候有两种选择,可以选择将当前memstore中的数据也做到快照里,也可以选择不对memstore中的数据进行快照({SKIP_FLUSH => true})。 这里建议将memstore中的数据也做到快照里。
3、查看snapshot
hbase> list_snapshots
4、clone snapshot到另一张表
hbase> clone_snapshot "myTable-snapshot-xxxx" "myTable-bak"
// 跳过内存中的数据,只对已经hfiles中的数据进行快照
hb