赞
踩
由于需要将一个CDH平台A中Hbase的数据转移到另一个CDH平台B,数据量不大,故利用hbase导入导出工具Import,Export
1.首先将表中数据导出到hdfs,需要找到A-CDH下的/bin/目录,利用/bin/hbase将表数据导出
[root@masternode3 ~]# cd /opt/cloudera/parcels/CDH-5.11.2-1.cdh5.11.2.p0.4/bin/
[root@masternode3 bin]# ./hbase org.apache.hadoop.hbase.mapreduce.Export test_hbase /xuyi/test_hbase
注意:test_hbase是我们需要导出的表名,/xuyi/test_hbase是hdfs上的文件夹地址,需要保证之前该地址不存在
命令行结束后执行MapReduce程序
我们将导出的数据下载并上传到B-CDH的hdfs上
A-CDH
[root@masternode3 bin]# hdfs dfs -get /xuyi/test_hbase /home/xuyi
需要在B的本地节点新建一个目标文件夹,sftp才能将文件传输
B-CDH
[root@master01 bin]# mkdir /home/xuyi/test_hbase
sftp> put -r /Users/xuyi123/Desktop/2/test_hbase /home/xuyi/
将数据上传到hdfs
B-CDH
[root@master01 bin]# hdfs dfs -put /home/xuyi/test_hbase /xuyi
然后利用导入工具,将数据导入到Hbase表中,注意,这里需要新建对应的表
hbase shell
hbase(main):004:0> create 'test_hbase','cf'
0 row(s) in 1.3300 seconds
=> Hbase::Table - test_hbase
然后利用B-CDH/bin/hbase 下 Import工具
[root@master01 bin]# ./hbase org.apache.hadoop.hbase.mapreduce.Import test_hbase /xuyi/test_hbase/*
注意:test_hbase这个表一定要在B-CDH中先创建,/xuyi/test_hbase/*是我们从A-CDH导出的数据
命令行结束后,执行MapReduce程序
最后,我们检查A与B的CDH平台的该表数据是一致的
参考文档:https://www.cnblogs.com/darange/p/9444003.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。