不通讯服务器之间opentsdb数据迁移(hbase2.2.6)

不通讯服务器之间opentsdb数据迁移(hbase2.2.6)


不是增量迁移!!!

opentsdb了解

opentsdb是基于hbase的时序数据库,它在hbase上创建了四张表,tsdb,tsdb-uid,tsdb-tree,tsdb-meta。数据迁移过程中最重要的就是tsdb中的数据。

迁移方式Snapshot

迁移opentsdb中的数据其实就是迁移hbase中的表,hbase数据迁移有四种方式,我是通过Snapshot快照方式对数据进行迁移的。

  1. 在要迁移数据的集群上创建快照:

进入hbase命令:

hbase shell

创建快照,四张表最好都创建:

#命令 <表名>,<快照名>
snapshot 'tsdb','sanpshot_tsdb'

查看快照:

list_snapshots

退出shell,可以在hadoop上查看所有快照路径:

hadoop fs -ls -R / |grep snapshot
#不能直接执行hadoop命令的可以加上hadoop路径

将快照拷贝到本地磁盘:

#命令    <快照路径>  <磁盘路径>
hadoop fs -copyToLocal /hbase/.hbase-snapshot/snapshot_tsdb /bk/
  1. 备份要迁移的数据

查看数据路径

hadoop fs -ls -R / |grep tsdb
#不能直接执行hadoop命令的可以加上hadoop路径

将数据也拷贝到本地磁盘:

#命令    <数据路径>  <磁盘路径>
hadoop fs -copyToLocal /hbase/data/default/tsdb /bk/

可以压缩一下用Xftp传输,压缩/解压命令

tar -czvf 压缩文件名.tar.gz /tsdb/
tar -zxvf 压缩文件名.tar.gz

迁移前先停掉opentsdb

迁移之前如果目标hbase上已经有数据要先删除

#禁用表
disable 'tsdb'
#删除表
drop 'tsdb'

drop没成功可以删除hdfs上的数据

#命令    <数据路径>
hadoop fs -rm -r /hbase/data/default/tsdb

以上都没成功可以删除zookeeper上的数据

#进入zookeeper
zkCli.sh
#删除命令 根据zookeeper上的路径
rmr /hbase/table/tsdb

还没成功可以删除hbase:meta 上的记录

#先查看
scan 'hbase:meta', {STARTROW=>'tsdb', LIMIT=>4}

查出来的内容自动换行了,这里放一张图片容易理解
查出来的内容自动换行了,这里放一张图片容易理解

#删除 根据查出来的信息
deleteall 'hbase:meta','tsdb,,1361433390076.2636b5a2b3d3d08f23d2af9582f29bd8.'   

解压之后将备份好的快照和数据复制到hdfs

#-put和-copyFromLocal都可以
hadoop fs -put tsdb/ /hbase/data/default

进入hbase shell恢复快照

#两种方式,我用的是restore_snapshot,clone_snapshot会卡死
restore_snapshot 'snapshot_tsdb'
clone_snapshot 'snapshot_tsdb','tsdb'

验证

scan 'tsdb'

重启hbase

按顺序执行
stop-habse.sh
#集群
stop-all.sh
start-all.sh
#启动
start-hbase.sh
#最后启动opentsdb

最后

采用快照方式迁移是因为其他三种方式迁移之后要执行恢复表的操作,hbase1.X版本可以直接用命令恢复表,hbase2.X恢复命令被移除了,要下载对应版本的hbck2才能执行恢复命令,亲测没有成功。
如果你是hbase1.X版本可以用CopyTable,Export and Import尝试迁移,迁移之后执行下面命令修复数据。

hbase hbck -fixMeta 根据region目录中的.regioninfo,生成meta表
hbase hbck -fixAssignments 把meta表中记录的region分配给regionserver 
hbase hbck -fixHdfsOrphans 修复.regioninfo文件
hbase hbck -repair  表名
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值