Hbase数据备份案例讲解
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,HBase的数据备份1.1 基于HBase提供的类对表进行备份使用HBase提供的类把HBase中某张表的数据导出到HDFS,之后再导出到测试hbase表中。(1) ==从hbase表导出到HDFS=
千家信息网最后更新 2025年01月22日Hbase数据备份案例讲解
HBase的数据备份
1.1 基于HBase提供的类对表进行备份
使用HBase提供的类把HBase中某张表的数据导出到HDFS,之后再导出到测试hbase表中。
(1) ==从hbase表导出到HDFS==
[hadoop@node01 shells]$ hbase org.apache.hadoop.hbase.mapreduce.Export myuser /hbase_data/myuser_bak
(2) ==文件导入hbase表==
hbase shell中创建备份目标表
create 'myuser_bak','f1','f2'
将HDFS上的数据导入到备份目标表中
hbase org.apache.hadoop.hbase.mapreduce.Driver import myuser_bak /hbase_data/myuser_bak/*
补充说明
以上都是对数据进行了全量备份,后期也可以实现表的增量数据备份,增量备份跟全量备份操作差不多,只不过要在后面加上时间戳。
例如:
HBase数据导出到HDFShbase org.apache.hadoop.hbase.mapreduce.Export test /hbase_data/test_bak_increment 开始时间戳 结束时间戳
1.2 基于snapshot快照对表进行备份
通过snapshot快照的方式实现HBase数据的迁移和拷贝。这种方式比较常用,效率高,也是最为推荐的数据迁移方式。
HBase的snapshot其实就是一组==metadata==信息的集合(文件列表),通过这些metadata信息的集合,就能将表的数据回滚到snapshot那个时刻的数据。
- 首先我们要了解一下所谓的HBase的LSM类型的系统结构,我们知道在HBase中,数据是先写入到Memstore中,当Memstore中的数据达到一定条件,就会flush到HDFS中,形成HFile,后面就不允许原地修改或者删除了。
- 如果要更新或者删除的话,只能追加写入新文件。既然数据写入以后就不会在发生原地修改或者删除,这就是snapshot做文章的地方。做snapshot的时候,只需要给快照表对应的所有文件创建好指针(元数据集合),恢复的时候只需要根据这些指针找到对应的文件进行恢复就Ok。这是原理的最简单的描述,下图是描述快照时候的简单流程:
1.3 快照实战
- 1、创建表的snapshot
snapshot 'tableName', 'snapshotName'
2、查看snapshot
list_snapshots
查找以test开头的snapshot
list_snapshots 'test.*'
- 3、恢复snapshot
ps:这里需要对表进行disable操作,先把表置为不可用状态,然后在进行进行restore_snapshot的操作
disable 'tableName'restore_snapshot 'snapshotName'enable 'tableName'
4、删除snapshot
delete_snapshot 'snapshotName'
5、迁移 snapshot
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参数,以免由于网络打满导致的线上业务故障。
6、将snapshot使用bulkload的方式导入
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
dIncrementalHFiles hdfs://node1:9000/hbase1/archive/data/default/test/6325fabb429bf45c5dcbbe672225f1fb newTest
##
数据
备份
快照
文件
方式
时候
时间
数据备份
信息
原地
增量
就是
拷贝
指针
目标
差不多
下图
业务
原理
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库和数据库完整性测试
app需要多大的服务器
派出所网络安全周宣传
软件开发+兼职+收费标准
ibm服务器硬盘300g
阳泉展厅互动软件开发
网络技术服务承诺守信
数据库70限定使用方法
三级网络技术教材 百度网盘
金华mes软件开发
软件开发资质证书有用吗
网络安全测评工作怎么样
关于网络安全意识的实训心得
食药监局网络安全应急预案
君正t31软件开发
信用社网络安全工作领导小组
网络技术 学情分析
中职计算机网络技术专业申请
济南衣邦人互联网科技有限公司
数据软件开发课程试卷
哈里奥软件开发公司金菁
网络安全主要是学什么
dayz服务器进不去
衢州桌面软件开发费用
网络技术发达的好处
八方网络安全
网络安全四进宣传
之前的云服务器不可用怎么办
江苏昆山模具制造管理软件开发
沭阳环保网络技术哪家好