Hbase离线数据迁移

注:当前方法基于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’

猜你喜欢

转载自blog.csdn.net/weixin_42240930/article/details/80930398