注:当前方法基于Hbase-1.2.0,对其他版本有一定兼容性,Version默认为1,默认整表迁移。采用Hbase的Export/Import方式,此方式与CopyTable类似,主要是将HBase表数据通过Export转换成Sequence File并dump到HDFS,而后再Import到线上表。因两系统网络不通,所以采用本地文件方式迁移数据。
一、查看原始hbase表
1、进入shell界面
hbase shell
2、查看hbase表列表确认表名(oss_file为当前表)
list
3、查看列族信息并记录列族信息
describe ‘oss_file’
4、查看表行数并记录
count ‘oss_file’
(注:当表过大时此方法不适合使用。
可使用调用mapreduce的方法计算总行数,即执行hbase org.apache.hadoop.hbase.mapreduce.RowCounter ‘oss_file’
或者创建hive和hbase的关联表,运行hive命令行模式count行数)
二、Export部分。
1、准备hdfs目录
hadoop fs -mkdir /user/wangtest
2、执行Export命令(当前hdfs主节点IP端口号为10.1.1.20:8020)
hbase org.apache.hadoop.hbase.mapreduce.Driver export oss_file "hdfs://10.1.1.20:8020/user/wangtest/oss_file"
重进xshell用root账户
3、准备系统目录
mkdir /data/wangzhen
4、导入系统目录(文件在系统目录/data/wangzhen/oss_file文件夹里)
hadoop fs -get /user/wangtest/oss_file /data/wangzhen
注:整个过程结束后删除hdfs下/user/wangtest目录和系统/data/wangzhen目录
三、移动存储设备转移/data/wangzhen/oss_file文件夹到新系统
三、Import部分。
1、准备系统文件
/data/wangzhen/oss_file
2、准备hdfs目录
hadoop fs -mkdir /user/wangtest
3、文件上传到hdfs目录
hdfs dfs -put /usr/wangzhen/oss_file /data/wangtest
4、新建hbase表(create ‘表名’,'列族1','列族2’)
create 'oss_file','content','file','owner'
5、hdfs导入到hbase
hbase org.apache.hadoop.hbase.mapreduce.Driver import oss_file1 "hdfs://192.168.2.148:8020/data/wangtest/oss_file"
6、检查数据完整性(对照前后数据量是否相等)
count ‘oss_file’