HBase数据迁移
一、备份hbase表数据(源hbase集群服务器)
1.在当前hbase集群(数据源),选定要数据表名;
例如表名为:hbdss
2.导出表数据(以下步骤2-5以hadoop用户登录)
按照1、中的表名列表,分别执行如下命令
sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.Export hbdss /hbase/hbdss
3.在服务器建立临时备份数据文件夹,例如
mkdir -p /hbase/hbase-data-bak
4.复制(2、)备份表文件
执行cd /hbase/hbase-data-bak
分别执行如下:
hdfs dfs -copyToLocal /hbase/hbdss .
5.备份文件清理
分别执行以下:
hdfs dfs -rm -r -f /hbase/ hbdss
二、还原hbase表数据(目标hbase集群服务器)
1.将(一、3)中的hbase数据文件到当前hbase集群服务器上,
例如复制到的目录为/hbase/hbase-data-bak(需开放hadoop用户读取权限)
2.复制hbase数据到hbase集群(以下步骤2-5以hadoop用户登录,CDH方式安装使用hdfs用户)
su - hdfs
cd /hbase/hbase-data-bak
hdfs dfs -mkdir /hbase (也可以查看hdf系统有哪些目录,使用已有目录也可以hdfs dfs -ls / )
hdfs dfs -copyFromLocal /hbase/hbase-data-bak/hbdss /hbase/hbdss-export-1
3.创建hbase表,执行
执行hbase shell
执行如下:
create 'hbdss', 'd'
4.还原hbase表数据
sudo -u hdfs hbase org.apache.hadoop.hbase.mapreduce.Import hbdss /hbase/hbdss-export-1
(若提示hdfs不在sudoers文件中。此事将被报告 的信息,使用root用户执行visudo命令在打开的文件中,找到下面这一行:
root ALL=(ALL) ALL
并紧帖其下面,添上
hdfs ALL=(ALL) ALL)
5.备份文件清理
执行以下:
hdfs dfs -rm -r -f /hbase/hbdss-export-1
6.还原数据验证查看
Hbase表数据还原完成后,
执行hbase shell
登录到hbase终端,
运行(hbdss代表表名)
scan 'hbdss', {LIMIT=>10}
抽样查看有无数据;
也可通过执行
count 'hbdss',{CACHE=>10000}
,进行表数据量核对;
转载请注明出处!!