MapReduce/Hbae集群(不能直接通信)之间的数据迁移
在腾讯云上创建了两个MapReduce集群,一个测试版一个正式版,现需要将测试版的数据迁移到正式版集群中去,但两个集群不能直接通信。
1. 在测试版MapReduce/Hbae集群创建表test
(1)进入Hbase Shell
cd /usr/local/service/hbase
bin/hbase shell
(2)建立一个新表
create 'test', 'cf'
(3)使用put指令来为您创建的表加入元素:
put 'test', 'row1', 'cf:a', 'value1'
(4)使用scan指令来遍历整个表:
scan 'test'
2. 将测试版MapReduce/Hbae集群中的表test备份到hdfs
hbase org.apache.hadoop.hbase.mapreduce.Export test /usr/hbase_bak/
3. 在hdfs目录下查看备份出来的文件
hadoop dfs -ls /usr
4. 将hdfs目录下的文件复制到本机目录下
hadoop fs -get /usr/test_bak /usr/test_bak
注: hadoop fs –get hdfs目录 主机目录
5. 将备份出来的文件恢复到正式版MapReduce/Hbae集群主机中
scp -r /usr/test_bak root@IP:/
6. 在另一台主机上,将复制过来的文件上传至hdfs目录
hadoop fs -put /test_bak /opt
注:hadoop fs –put 主机目录 hdfs目录
7. 在新的MapReduce/Hbae集群中创建表,列族必须一致
create 'test2', 'cf'
8. 将hdfs中的文件导入MapReduce/Hbae集群中去
hbase org.apache.hadoop.hbase.mapreduce.Import test2 /opt/test_bak/*