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