首页 > 代码库 > HBase集群变更zookeeper问题

HBase集群变更zookeeper问题

      在用华为的hindex-0.94.8时,出现HMaster启动后很短时间内自动关闭的情况,网上查询说是zookeeper的原因,在万般整修无果舍弃了其内部自带的zookeeper集群,自己安装了zookeeper-3.4.6重启后可以正常使用集群。但是出现一个问题,之前的HBase数据库中的表可以显示但是其中的数据在客户端查询的时候出现org.apache.hadoop.hbase.NotServingRegionException:的错误,网上查询资料得知HBase访问流程如下:

  • 客户端client 首先连接到ZooKeeper 这是就要先查找-ROOT-的位置。
  • 然后client通过-ROOT- 获取所请求行所在范围 所属的.META.region的位置。
  • client接着查找.META.region来获取user-space region 所在的节点和位置。
  • 接着client 就可以直接和管理者那个region的RegionServer 进行交互。

所以说zookeeper中有HBase集群数据库中关于表的相关信息。于是尝试了两种方法恢复原来表的配置信息:(1)将hbase的zookeeper目录下的文件全都删除掉,然后再重启hbase服务。(2)将原来zookeeper集群下的内容除myid文件外均复制到现有的zookeeper-3.4.6-data下对应的文件夹中。重新启动zookeeper集群,启动hbase集群,均以失败结束!!!

总之zookeeper集群改变后找不到原来的配置信息,故原来的数据不能再用。

参考资料:http://www.51studyit.com/html/notes/20140618/784.html

              http://www.aboutyun.com/blog-61-152.html

              http://houyongjiao.gotoip4.com/thread-10942-1-1.html

HBase集群变更zookeeper问题