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