当前位置: 首页 > news >正文

HBase全量+增量迁移import/export方式

本文是用自带的hbase import/export方法,由于原端不开放hdfs数据,并且因为底层存储不能打快照,目标端也不开放,所以只能通过这种方式。(这种方式比较耗性能)

建议从主库,搞一个备份库,再用这种导出备份库的数据

前提准备:

1.原端hbase集群,并且能够操作机访问

2.目标端hbase集群,并且能够操作机访问

3.操作机,一台ecs

模拟原端数据

create_namespace 'test'
//创建一个名称为clark:test,列族名为cf的表
create 'test:user', 'cf'
// 插入数据。put 命名空间:表名,行键rowkey,列簇:字段名,值
put 'test:user','001','cf:name','clark'
put 'test:user','001','cf:age','28'
put 'test:user','002','cf:name','alice'
put 'test:user','002','cf:name','25'
//看一下数据
scan 'test:user'

全量迁移

1.看原表,表结构

./hbase shell
list
#查看有哪些表
describe 'test:user'

2.目标端建表

./hbase shell
#先创建命名空间
create_namespace 'test'
#创建表,不要有换行,如果有多行压缩成一行,或者末尾加\
create 'test:user',{NAME => 'cf', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false',NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE=> 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS =>'0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW',CACHE_INDEX_ON_WRITE => 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE =>'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE =>'true', BLOCKSIZE => '65536', METADATA => {'STORAGE_POLICY' => 'DEFAULT','DFS_REPLICATION' => '2', 'CHS_PROMOTE_ON_MAJOR' => 'true'}} 

3.原端导出数据

./hbase org.apache.hadoop.hbase.mapreduce.Export test:user /tmp/hbase-export/test
ll /tmp/hbase-export/test

date +%s%3N

记录导出当前时间戳:1759118035736

4.目标端导入数据

./hbase org.apache.hadoop.hbase.mapreduce.Import test:user /tmp/hbase-export/test/

增量迁移

1. 在原端插入多条数据

put 'test:user','003','cf:name','abc'
put 'test:user','001','cf:age','29'

2. 原端导出数据

先scan,查看原端的时间格式,发现是时间戳。

./hbase -Dmapreduce.job.maps=10 org.apache.hadoop.hbase.mapreduce.Export test:user /tmp/incremental-export 1 1759118035736 1759131808806

这4个分别代表,命名空间:表名 导出最近版本(1代表的是最新的版本)开始时间戳 结束时间戳(这个可以通过scan看到数据上的时间戳)

3. 目标端导入数据

目标端导入

./hbase org.apache.hadoop.hbase.mapreduce.Import test:user /tmp/incremental-export

数据校验

先count对比行数,再抽样比对(由于版本不同并且没有开放hdfs数据,所以不能用md5sum)

# 小表直接计数(注意:大表耗时较长)
count 'namespace:table_name'# 大表推荐用MapReduce(效率更高)
hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'namespace:table_name'

http://www.dtcms.com/a/424511.html

相关文章:

  • 精准交易:如何利用期权对冲你的头寸
  • 金华网站建设哪个公司好点烟台互联网公司有哪些
  • wordpress安装好了怎么登陆网站推广思路及执行方案
  • 宁波做网站皆选蓉胜网络北京网站建设推荐安徽秒搜科技
  • 注册一个个人网站工地模板图片大全
  • 知识表示与处理4
  • 网站的搜索引擎方案wordpress实例站
  • 【AI4S】大语言模型与化学的未来,以及整合外部工具和聊天机器人的潜力
  • 网站视频转码软件wordpress 图片本地化
  • 优秀的 API 接口设计规范
  • 营销网站占用多少m空间深圳 电子政务网站建设方案
  • 品牌网站建设服务商济南百度网站开发
  • 用 Python 实现一个简化但可运行的 单点登录(SSO)系统
  • 水果成篮-越短越合法
  • 外国人做的购物网站做网站开发要具备哪些素质
  • 印尼雅加达综合指数(JCI)数据对接实战指南
  • 福州网站开发公司哪些网站可以做平面设计
  • 临安规划建设局网站wordpress 评论按钮
  • 定向广播扬声器:高速公路预警新利器 为安全“喊话”
  • 做网站送优化如何做授权网站
  • 产品展示类网站网站用户体验度
  • 网站管理问题建站点的步骤
  • 安阳网站哪家做的好网站开发需要什么基础知识
  • 新乡定制网站建设公司网站建设属于
  • 网站建设技术和销售工资用手机建网站
  • 网站集群建设方案中国移动积分兑换商城官方网站
  • 怎么选择镇江网站建设WordPress影视cms
  • 网站建设的一般流程排序为湖南城乡建设部网站
  • 大数据数据质量校验实战指南:从0.3%差异率到滴水不漏的核对体系
  • 阜阳哪里做网站的多购物网站开发技术