Hbase数据备份案例讲解
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,HBase的数据备份1.1 基于HBase提供的类对表进行备份使用HBase提供的类把HBase中某张表的数据导出到HDFS,之后再导出到测试hbase表中。(1) ==从hbase表导出到HDFS=
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
三级网络技术未来教育百度云
网络安全作文300字四年级
服务器钝化
服务器不能复制粘贴
成都电脑软件开发哪家实惠
电子商务中的网络安全现状
集群与数据库的区别
莱宝织唛软件开发公司
设备网络安全防护等级华为
侦查系统正版软件开发公司
小学生网络安全专题知识竞赛
我的世界服务器172
cs服务器http
防诈骗网络安全论文
网络安全 事关
邢台云图网络技术服务
mysql 笑话数据库
数据库查询几几年以后出生的员工
嵌入式软件开发饱和了吗
崇明区企业数据库反馈
怎么画网络安全的漫画
崇明区通用网络技术销售价格
福建语音网络技术推广
电脑网络技术分析皮肤
北京中行软件开发
使命召唤16怎么连不上服务器了
关系数据库中选择操作和连接操作
真正的互联网科技公司
互联网科技对健康的影响
上海网络安全事业单位