关于hbase的数据迁移

场景:
一套自己编译的Hbase集群 A
一套自己通过cloudera平台搭建的Hbase集群 B
注意:( 我的两套集群是同一个网段的)
方式1:通过快照方式进行数据迁移(不需要提前建表)
1):首先现在老集群A上进行快照制作(hbase命令行)
hbase> snapshot '要快照的表名tableA' , '快照名称snapA'
查看快照:list_snapshots
删除快照:delete_snapshot '快照名称snapA'
2):开始快照迁移(将集群A的快照迁移到集群B上)
bin/hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 快照名称snapA -copy-to hdfs://newCluster:8082/hbase
3):登录新集群的hbase命令行,然后执行
restore_snapshot 'snapA'
但是执行第3)步时候报错:
Caused by: java.lang.IllegalArgumentException: A clone should not have regions to restore
发现其实自己编译的快照和cloudera平台的Hbase不兼容。so,这种方式不合适
方式2:在老集群A上通过bulkload写入新集群B上(需要提前建表,别忘记预分区)
1):在新集群B 提前将表创建好,例如:
create 'renter_info',{NAME =>'MM', COMPRESSION => 'SNAPPY'}, SPLITS => ['', '', '4ccccccb', '' , '7ffffffd' , '' , 'b333332f' , 'ccccccc8' , 'e6666661']
2):在老集群A 执行bulkload命令语句:
bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles -Dcreate.table=no -DHbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily= hdfs://newCluster:8020/hbase/data/default/order_info
依然执行不过去!
因此上面的方式1、方式2其实是很依赖是否集群版本兼容问题
方式3:hadoop distcp 方式
1):通过hadoop distcp将集群A中要迁移的表数据 通过分布式copy方式,copy到集群B
hadoop distcp hdfs://oldcluster:8020/hbase/data/default/order_info hdfs://newCluster:8020/hbase/data/default/order_info
2):修复元数据
/opt/cloudera/parcels/CDH/lib/hbase/bin/hbase hbck -fixMeta
3):重启Hbase
解决!
关于hbase的数据迁移的更多相关文章
- 一种HBase表数据迁移方法的优化
1.背景调研: 目前存在的hbase数据迁移主要分如下几类: 根据上图,可以看出: 其实主要分为两种方式:(1)hadoop层:因为hbase底层是基于hdfs存储的,所以可以通过把hdfs上的数据拷 ...
- 2.11-2.12 HBase的数据迁移常见方式
一.importtsv 把hdfs中数据抽取到HBase表中: 1.准备数据 ##student.tsv [root@hadoop-senior datas]# cat student.tsv 100 ...
- HBase的数据迁移(含HDFS的数据迁移)
1.启动两个HDFS集群 hadoop0,hadoop1,都是伪分布式的集群 2.启动hadoop3的zookeeper与hbase 注意点:需要开启yarn服务,因为distcp需要yarn. 3. ...
- 084 HBase的数据迁移(含HDFS的数据迁移)
1.查找命令 bin/hadoop 2.启动两个HDFS集群 hadoop0,hadoop1,都是伪分布式的集群 3.启动hadoop3的zookeeper与hbase 注意点:需要开启yarn服务, ...
- Hbase snapshot数据迁移
# 在源集群中创建快照(linux shell) hbase snapshot -t <table_name> -n <snapshot_name> 或(hbase shell ...
- HBase跨版本数据迁移总结
某客户大数据测试场景为:Solr类似画像的数据查出用户标签--通过这些标签在HBase查询详细信息.以上测试功能以及性能. 其中HBase的数据量为500G,Solr约5T.数据均需要从对方的集群人工 ...
- HBase数据迁移到Kafka实战
1.概述 在实际的应用场景中,数据存储在HBase集群中,但是由于一些特殊的原因,需要将数据从HBase迁移到Kafka.正常情况下,一般都是源数据到Kafka,再有消费者处理数据,将数据写入HBas ...
- Hbase 整合 Hadoop 的数据迁移
上篇文章说了 Hbase 的基础架构,都是比较理论的知识,最近我也一直在搞 Hbase 的数据迁移, 今天就来一篇实战型的,把最近一段时间的 Hbase 整合 Hadoop 的基础知识在梳理一遍,毕竟 ...
- ambari之hbase数据迁移
一.hbase原理剖析 Base是一个构建在HDFS上的分布式列存储系统:HBase是基于Google BigTable模型开发的,典型的key/value系统:HBase是Apache Hadoop ...
随机推荐
- List和Dictionary互转
// 声明Dictionary并初始化 Dictionary<string, string> dic = new Dictionary<string, string>() { ...
- 轻松搭建CAS 5.x系列(1)-使用cas overlay搭建SSO SERVER服务端
概要说明 cas的服务端搭建有两种常用的方式: 1. 基于源码的基础上构建出来的 2. 使用WAR overlay的方式来安装 官方推荐使用第二种,配置管理方便,以后升级也容易.本文就是使用第 ...
- Java 使用流读文本数据时乱码 解决方法
一.问题描述 当我使用FileReader读取文本文件里的汉字时,读出来的是乱码.但为什么字符是正常的呢??? 二.原因探究 其根本原因在于编码标准不同.汉字采用gbk,而idea使用UTF-8.gb ...
- 微信小程序登录获取手机号
一,发送请求携带 code 到后台换取 openid var that = this; wx.login({ success(res) { console.log(res); var code = r ...
- Redis和MemCache静态Map做缓存区别
本地缓存和分布式缓存 本地缓存:使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不 ...
- 【Struts2】进阶
一.Action处理请求参数 1.1 属性驱动 1.2 模型驱动 1.3 扩展 将数据封装到List集合 将数据封装到Map集合 二.类型转换 2.1 自定义类型转换器: 1.创建一个自定义类型转换器 ...
- 【python+selenium】截取某个元素
一. selenium截图1.selenium提供了几个截取全屏的方法- get_screenshot_as_file(self, filename) --这个方法是获取当前window的截图,出现I ...
- 三、DQL语言
目录 一.基础查询 (一)语法 (二)特点 (三)示例 二.条件查询 (一)语法 (二)筛选条件的分类 三.排序查询 (一)语法 (二)特点 四.常见函数 (一)介绍 (二)分类 五.单行函数 (一) ...
- 十一届河南省赛-checkpoints(个人解法)-能AC代码
大致题意: zznuoj,大致题意:从A点出发达到B点去解救人质,再从B点返回到A点,经历第二遍的点只计算一次即可,AB两点不计数!求完成任务最少需要经过的点数. 大致思路:暴力!从起点到终点,和从终 ...
- PHP 提取数组中奇数或偶数的元素array_filter
//提取奇数 $filter = array_filter($ql,function($var){ return($var & 1); },ARRAY_FILTER_USE_KEY); pri ...