首页 > 大数据 > > Hbase备份讲解与案列

~~~shell [hadoop@node01 shells]$ hbase org.apache.hadoop.hbase.mapreduce.Export myuser /hbase_data/myuser_bak
~~~
hbase shell中创建备份目标表
ruby create 'myuser_bak','f1','f2'
~~~shell hbase org.apache.hadoop.hbase.mapreduce.Driver import myuser_bak /hbase_data/myuser_bak/* ~~~
以上都是对数据进行了全量备份,后期也可以实现表的增量数据备份,增量备份跟全量备份操作差不多,只不过要在后面加上时间戳。
例如: HBase数据导出到HDFS
~~~ hbase org.apache.hadoop.hbase.mapreduce.Export test /hbase_data/test_bak_increment 开始时间戳 结束时间戳 ~~~

snapshot 'tableName', 'snapshotName'~~~ list_snapshots
~~~
查找以test开头的snapshot
list_snapshots 'test.*' ps:这里需要对表进行disable操作,先把表置为不可用状态,然后在进行进行restore_snapshot的操作
disable 'tableName'
restore_snapshot 'snapshotName'
enable 'tableName'~~~ delete_snapshot 'snapshotName' ~~~
~~~ hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \ -snapshot snapshotName \ -copy-from hdfs://src-hbase-root-dir/hbase \ -copy-to hdfs://dst-hbase-root-dir/hbase \ -mappers 1 \ -bandwidth 1024
例如: hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \ -snapshot test \ -copy-from hdfs://node01:8020/hbase \ -copy-to hdfs://node01:8020/hbase1 \ -mappers 1 \ -bandwidth 1024 ~~~
注意:这种方式用于将快照表迁移到另外一个集群的时候使用,使用MR进行数据的拷贝,速度很快,使用的时候记得设置好bandwidth参数,以免由于网络打满导致的线上业务故障。
~~~ hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles \ hdfs://dst-hbase-root-dir/hbase/archive/datapath/tablename/filename \ tablename
例如: 创建一个新表 create 'newTest','f1','f2' hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles hdfs://node1:9000/hbase1/archive/data/default/test/6325fabb429bf45c5dcbbe672225f1fb newTest ~~~
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3146630/ ,如需转载,请注明出处,否则将追究法律责任。