公司测试环境使用三台机器搭建了一个简单的集群,内存小,网速慢而且还是虚机.但是测试的时候还是保存了大量的数据.但是由于一些其他原因,造成数据只能在测试环境生成,不能在线上直接生成数据.所以就需要把数据从测试环境把数据导入到线上的HBase环境
刚开始使用了HBase的Export与Import 的方式来做导出.
好吧,虚机几百万的数据,总是失败..一直都是在报错误,找了好久都没找到原因.没办法只有想别的方法.
折腾了两天搞定了导出的方式.
1. 关闭HBase集群.
2. Hadoop上找到要导出的HBase表路径 如: 我的路径为: /hbase/data/default/test
3. 从Hadoop把项目导入到本地环境
4. 然后通过硬盘或者其他把数据发送到另一套环境的hadoop HBase文件目录下. hbase/dta/default/test/ (HBase环境同样需要关闭,)
5. 如果另一套也存在该表..(那我就不知道了,我当时是把那套环境的数据导出的.)
6. 打开Hbase,现在就就可以在HBase shell命令下看到该表了.
7. 执行
hbase hbck -fixMeta
8. 如果依然无法操作表.那么就执行
hbase hbck -fixAssignments(重新分区)
大功告成 !