Hbase数据备份案例讲解
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,HBase的数据备份1.1 基于HBase提供的类对表进行备份使用HBase提供的类把HBase中某张表的数据导出到HDFS,之后再导出到测试hbase表中。(1) ==从hbase表导出到HDFS=
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
电商好还是互联网科技好
大唐集团网络技术有限公司
易语言微信支付对接数据库
数据库添加表的定义
数据库中主次文件扩展名
华泰证券软件开发级别
嵌入式软件开发与应用方向
中国量子网络安全
兰州软件开发服务商
互联网科技发展的目的
全球时间服务器
牛电科技是互联网公司吗
网络安全自查工作汇报
软件开发什么税
光启技术网络安全
云服务器网速对比
计算机网络技术基础款T恤推荐
二手服务器到货验收单
app安全软件开发
mc为什么一直定位服务器
电脑听歌软件开发
无法与mdm服务器
全球时间服务器
国家小学生网络安全政策
腾讯阿里巴巴的根服务器在哪里
饥荒创建服务器怎么手动关闭
加强网络安全防范的主题
小学校园网络安全活动系列
网络安全的八大隐患
注册阿里云免费领云服务器