hbase集群间数据迁移
2019独角兽企业重金招聘Python工程师标准>>>
HBase迁移数据方案一(集群互联)
一、需要在hbase集群停掉的情况下迁移
步骤:
(1)执行Hadoop distcp -f filelist "hdfs://new cluster ip:9000/hbasetest"
(2)在new cluster执行./hbase org.jruby.Main add_table.rb /hbase/table20111222,将拷贝来的表加入到.MEAT.中(会出现region的数目不一致的问题,这个需要重启hase才能解决)
说明:(1)filelist为hdfs上的列表文件,内容如下:
/hbase/table20111222
/hbase/table20120131
(2)如果两个集群的hadoop版本不一致,需要在new cluster上执行hadoop distcp,否则会出现读写异常;
二、在集群运行的时候进行数据迁移
1、Replication:
这个是动态的备份(可以理解为实时备份)
步骤:
(1)在old cluster将需要迁移的表属性进行修改:
disable 'your_table'
alter 'your_table', {NAME => 'family_name', REPLICATION_SCOPE => '1'}
enable 'your_table'
(2)打开new cluster集群的replication,修改hbase-site.xml
<property>
<name>hbase.replication</name>
<value>true</value>
</property>
(3)添加peer,在new cluster的hbase shell中执行:add_peer '1','old cluster ip:2181:/hbase',启动replication,执行start_replication
说明:需要两个集群的hadoop版本一致,否则出现读写错误
2、CopyTable:
可以在本集群中拷贝一张表,也可以将表拷贝到其他的集群中。
命令:./hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=new cluster ip:2181:/hbase zy_test
说明:(1)拷贝完成,不需要重启机器,在new cluster中就可以看到该表;
(2)稳定性还需要考虑,测试过程中遇到一个问题,拷贝过程中始终都停留在这里Lookedup root region location, 查看日志没有什么错误和相关的信息。
3、Export and Import
步骤:
(1)在old cluster上执行:./hbase org.apache.hadoop.hbase.mapreduce.Export test hdfs://new cluster ip:9000/zhuangyang/test
(2)在new cluster上执行:./hbase org.apache.hadoop.hbase.mapreduce.Import test hdfs://new cluster ip:9000/zhuangyang/test
说明:
(1)一定要写全路径,不能写相对路劲;
(2)在import前,需要将表事先在new cluster中创建好.
以上都是在old cluster和new cluster网络相通的情况下实现数据迁移的办法。
HBase迁移数据方案二(两个集群不能通信)
两个可以直接通信的集群之间很容易拷贝数据从而迁移HBase数据。
但是如果两个集群在不同的网络,没法通信呢?
今天测试了一个方案:
把某个表(table1)从集群1迁移到集群2(两个集群互相看不见),步骤如下
1、拷贝集群1的表文件到本地磁盘 :
/app/cloud/Hadoop/bin/hadoop fs -copyToLocal /hbase/table1 /data0/hbase-backup/table1
2、对于文件操作,很简单吧,随便你怎么去拷贝来拷贝去
3、如果集群2中也有对应的表文件,那么删除掉,然后拷贝
/app/cloud/hadoop/bin/hadoop fs -rmr /hbase/table1
/app/cloud/hadoop/bin/hadoop fs -copyFromLocal /data0/hbase-backup/table1 /hbase/table1
4、重置该表在.META.表中的分区信息
bin/hbase org.jruby.Main bin/add_table.rb /hbase/table1
另外:
1、如果表的数据量过大呢? 那么按照该表在HDFS中的文件夹数据,分批拷贝。
2、如果两个集群可以互相通信呢?采用第一种方案即可
转载于:https://my.oschina.net/u/2000675/blog/661891
hbase集群间数据迁移相关推荐
- hbase集群之间数据迁移_hbase数据迁移到另一集群上
通常我们都会有将hbase表数据迁到另一个hbase表中业务需要,这种不要着急,我选择一种最适合的方式,因为每种方式处理的数据量.对集群的压力都是有差异的 总的划分可以分为命令行和API两种方式,本人 ...
- hbase集群之间数据迁移_HBase不同集群间数据迁移
前提 两个集群相同vpc和安全组 操作步骤 一.查看源端集群HDFS NameNode IP和port 1. 查看NameNode IP,获取对应的name转换成IP hdfs getconf -na ...
- hadoop 集群间数据迁移
hadoop集群之间有时候需要将数据进行迁移,如将一些保存的过期文档放置在一个小集群中进行保存. 使用的是社区提供的功能,distcp.用法非常简单: hadoop distcp hdfs://nn1 ...
- hbase集群 数据写入_HBase神器 | BDSHBase集群之间数据迁移同步的利器
BDS定位 BDS针对开源HBase目前存在的同步迁移痛点,自主研发的一套数据迁移的平台,用于HBase集群的无缝迁移.主备容灾.异地多活.在线离线业务分离.HBase数据归档.对接RDS实时增量数据 ...
- HBase不同版本集群之间数据迁移
本文摘自:https://www.dazhuanlan.com/2019/10/20/5dac43ffeb75a/ 由于HBase CDH4和CDH5数据格式不兼容,所以不能用"CopyTa ...
- 【大数据之Hadoop】三十一、HDFS集群迁移之Apache和Apache集群间数据拷贝
数据迁移场景: 冷热集群数据分类存储:集群数据整体迁移:数据的准实时同步,目的在于数据的双备份可用. 数据迁移需要考虑的因素: 带宽.性能.增量同步(原始数据文件进行了追加写.被删除或重命名) ...
- 设置Backup-masters Hbase中只有一个HMaster ,hmaster挂掉了,客户端还能连接hbase集群进行数据读写吗
设置 Backup-masters (候补节点) 为了保证HBase集群的高可靠性,HBase支持多Backup Master 设置.当Active Master挂掉后,Backup Master ...
- redis 3.0 集群__数据迁移和伸缩容
添加节点 1,启动2个新的redis-sever, 参照 ( redis 3.0 集群____安装 ),端口号为 7007 和 7008 2,使用命令 redis-trib.rb add-node 命 ...
- 云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据
摘要: 使用过开源HBase的人都知道,运维HBase是多么复杂的事情,集群大的时候,读写压力大,配置稍微不合理一点,就可能会出现集群状态不一致的情况,糟糕一点的直接导致入库.查询某个业务表不可用, ...
最新文章
- android广告平台刷量,数据显示:Android平台广告营收首超iOS
- 启用邮箱提示访问特权不够
- 禅道 bug状态 open_小工具大帮手,利用 @open-node/antman 实现 node.js 进程线上调试,无须重启...
- 如何使用links方式安装Eclipse插件
- 基于Netty的RPC简易实现
- unity多边形uv地图
- Spark算子:RDD基本转换操作(2)–coalesce、repartition
- iphone html复制粘贴,如何在iPhone上复制内容快速粘贴到iPad上?
- 面对“职业规划”问题,程序员应该如何回答?
- 通过终端命令查看到目的IP所经过的路由
- redis进阶之bigkey和hotkey
- 2021-10-28 集训第三天 神奇的Tom猫
- MT8516处理器简介—MT8516芯片技术资料解析
- c语言中文件rw,bootloader和RO,RW,ZI在ARMC语言中
- 前端必备 PS三种切图方法 Cutterman最好用的切图工具
- 群晖DS Video支持DTS音轨(最新解决方案)
- 学会这4招,帮你解决棋牌游戏玩家流失问题
- 通过压力测试提升服务器并发性能实例
- 非递归,不用栈实现二叉树中序遍历
- 关于如何实现外网访问本地主机IP地址(natapp)。(如何实现将外网可访问的域名与本地主机IP地址绑定)