Hbase跨集群数据迁移脚本

1.创建快照文件,移动快照文件
获取Hbase tables list 输出一个文件
执行脚本for i in `cat tb`;do sh restore_tb.sh $i;done
#数据迁移源机器,hbase master机器上执行,脚本后街参数namespace:table_name,例如 sh backup_table.sh $namespace:$tablename
set -ex
ns_table_name=$1
snapshot_name=`echo $ns_table_name|cut -d ':' -f2`
namespace=`echo $ns_table_name|cut -d ':' -f1`

echo "Step 2 Execute {delete_snapshot '$snapshot_name'   snapshot '$namespace:$snapshot_name','$snapshot_name'}"
hbase shell << EOF
delete_snapshot "$snapshot_name"
snapshot "$ns_table_name","$snapshot_name"
exit
EOF

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -Dsnapshot.export.skip.tmp=true -Dmapreduce.map.memory.mb=2048 -snapshot $snapshot_name -copy-from hdfs://192.168.4.7:8020/apps/hbase/data/ -copy-to hdfs://192.168.4.15:8020/apps/hbase/data/  -overwrite

echo "End !!!"

2.生成快照文件
创建table_list文件
执行脚本for i in `cat tb`;do sh restore_tb.sh $i;done
#数据迁移目标机器,hbase master机器上执行,脚本后街参数namespace:table_name,例如 sh restore_table.sh $namespace:$tablename
set -ex
ns_table_name=$1
snapshot_name=`echo $ns_table_name|cut -d ':' -f2`
namespace=`echo $ns_table_name|cut -d ':' -f1`
table_name=$snapshot_name

hbase shell << EOF
disable "$namespace:$table_name"
restore_snapshot "$snapshot_name"
enable "$namespace:$table_name"
major_compact "$ns_table_name"
exit
EOF

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值