关于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 ...
随机推荐
- 怎样创建一个独立于当前文档的新的Document对象
使用: document.implementation. 如下所示, 新创建的Document对象可以正常使用相关属性和方法, 然后将它的根节点与当前文档的根节点做一个替换. var doc = do ...
- Centos7 部署.net core2.1 详细步骤
安装dotnet sdk(添加产品秘钥与yum源) 添加yum源:sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages ...
- T4模板生成文件要点记录
可以使用 $(variableName) 语法引用 Visual Studio 或 MSBuild 变量(如 $(SolutionDir)),以及使用 %VariableName% 来引用环境变量.介 ...
- [NOIP2018模拟赛10.19]只会暴力报告
闲扯 今天又是暴力满满(并不)的一天呢 昨天老师说了分数要正态分布,今天看起来...不过暴力分很多,虽然我人太傻逼又没打满 T1 woc?不是说送分的吗,看起来又是个树形DP神题,暴力告辞,链上的搞一 ...
- LeetCode 腾讯精选50题--2的幂
在二进制中,2的幂的数字用二进制表示时只会有一位表示为1,其余都为0,基于这个前提,可以有两种方案: 1. 做位移操作 2. 与数值取反并与原数值做与操作,判断是否与原来的数值相同 对于方案1,我的想 ...
- 一些常见css样式加选择器
先来个下拉框: 例: select是下拉框标签 multiple:指多选项 size :显示的选项数量 selected="selected":默认选中 —————————分割线— ...
- java代码实现mock数据
废话不多说,直接上代码. /** * 发get请求,获取文本 * * @param getUrl * @return 网页context */ public static String sendGet ...
- C++ STL 之 multimap案例之员工分组
#include <iostream> #include <vector> #include <map> #include <string> #incl ...
- ADF为EO的ITEM添加默认值
Literal:设置为缺省的静态值.Expression:使用 Groovy 表达式设置缺省值.下面是一个表达式,用于将数据库序列(EMPLOYEES_SEQ)作为主键的缺省值:(new oracle ...
- android项目笔记整理(3)
61.AlphabetIndexer字母索引辅助类 实现对链表类型的数据进行快速索引. 应用于类似联系人列表右侧的导航栏 注意: 1.链表里的元素必须是Object类型,并实现 ...