关于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 ...
随机推荐
- Myatis中的OGNL和bind标签的结合用法
1.MyBatis常用的OGNL e1 or e2 e1 and e2 e1 == e2,e1 eq e2 e1 != e2,e1 neq e2 e1 lt e2:小于 e1 lte e2:小于等于, ...
- 泛型和DataTable的属性
泛型转DataTable public DataTable ToDataTable<TResult>(this IEnumerable<TResult> value) wher ...
- Python的global指令的作用
Python的global指令的作用 学过其他常用编程语言的同学一定清楚,Python是一个语法非常宽容的语言.它是个变量的定义可以省略.直接赋值.根据赋值结果自动确定变量类型的弱类型语言. 但是这样 ...
- idea内存溢出解决方法
在Run/Debug configuration 的vm options里面输入 -server -XX:PermSize=128M -XX:MaxPermSize=256m eclipse: -Xm ...
- react portals 插槽 实现简易弹窗
Portal 提供了一种将子节点渲染到存在于父节点以外的DOM节点的优秀方案: 尽管 portal 可以被放置在 DOM 树中的任何地方,但在任何其他方面,其行为和普通的 React 子节点行为一致. ...
- vue学习(10)-vue-resource
下载:cnpm i vue-resource --save 在main.js导入包:import VueResource from 'vue-resource' 安装:Vue.use(VueResou ...
- 行内块和文字垂直对齐vertical-agign
vertical-align 垂直对齐 (对于块级元素无效,主要用来控制表单或者图片与文字对齐的) 图片和文字默认是基线对齐 属性: baseline 基线 top 顶线 middle 中线 bott ...
- Djnago模板与标签
1.模版系统 基本语法 {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. python基础的基本数据类型可以通 ...
- linux基础1_文件类型、拓展名、目录配置
命令ls -l,显示的第一个属性代表了这个档案的档案类型 [d]:目录 [-]:普通文件 [l]:连接文件 [b]:存储数据以供系统访问的接口设备 [c]:串行接口的端口设备,例如键盘.鼠标 [s]: ...
- Maven 依赖的作用域
Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了 ...