分享

hadoop 2.5.0 + hbase 0.98.5,提示ERROR HBaseClient: The znode f...

sstutu 发表于 2014-9-10 15:12:40
roant 发表于 2014-9-10 13:55
关闭了hbase和zookeeper服务,按照你给的方法,在zookeeper的zoo.cg中改动为本机ip后,又改动hbase-site. ...
zookeeper进程都在吗?
jps看看进程是否存在。先确保zookeeper没有问题。
然后你的是都怎么换的。
要按照这个配置三个,而不是一个。
如果确实是这样配置的话,首先确保hbase、zookeeper没有问题。
然后再去找找opentsdb的问题。
回复

使用道具 举报

roant 发表于 2014-9-11 08:51:51
sstutu 发表于 2014-9-10 15:12
zookeeper进程都在吗?
jps看看进程是否存在。先确保zookeeper没有问题。
然后你的是都怎么换的。

1. 大神,是按照你说的配置三个的,用的是不同的端口作为伪结点,还是一样的错~
2. 索性用虚拟机搭了三个结点,一个master,两个slave,“hbase.zookeeper.quorum”的值为:  ”Master, Slave1, Slave2“保证为奇数,然后按照顺序开启各项服务,jps master和slave1,2中的进程,都正常,slave上面hbase shell建立的表和插入的数据在三个结点上都能“hadoop fs -ls /”看得到相关的信息。可是最后一步,集成opentsdb的时候,又出现了
  1. ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist!
复制代码
这种错误,所以,zookeeper,hbase配置上面我真是找不出有什么做错的地方了。
3. 刚看到大神发的opentsdb普及帖,我想问问,hadoop2.5.0+hbase0.98.5  能和opentsdb2.0.0完美集成吗?大神之前有做过吗?你集成opentsdb后,可以正常使用的时候,用的hadoop 和 hbase 分别是哪两个版本和相关信息?希望大神告知,我去试试你所可以用的可以全部集成成功的三个版本。谢谢~


回复

使用道具 举报

roant 发表于 2014-9-11 08:53:50
lzw 发表于 2014-9-10 14:38
使用下面命令,看看root表的情况

在hadoop2.5.0中已经没有了“—ROOT—”表,“.META.”表也变成了“hbase:meta”
回复

使用道具 举报

sstutu 发表于 2014-9-11 14:21:07
roant 发表于 2014-9-11 08:53
在hadoop2.5.0中已经没有了“—ROOT—”表,“.META.”表也变成了“hbase:meta”
你应该说的是hbase0.98.5没有这个ROOT表了吧,这个我就不太清楚了,但是下面错误是不是跟你说的,就已经吻合了那。
znode是需要ROOT信息的,但是你没有了,自然就报这个错误了

ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist!

还有你说的没有这个root,你是从哪里获取这个信息的。
回复

使用道具 举报

roant 发表于 2014-9-12 09:41:42
sstutu 发表于 2014-9-11 14:21
你应该说的是hbase0.98.5没有这个ROOT表了吧,这个我就不太清楚了,但是下面错误是不是跟你说的,就已经吻 ...

这个链接是官方文档:
  1. http://hbase.apache.org/book.html#arch.catalog.root
复制代码

1. 里面有介绍到,新一点的版本中去除了 “—ROOT—”表,并把 “ .META. ”表改成了 “hbase:meta”。 这个我在hbase shell里面是可以 “scan ‘hbase:meta’ ”的,而无法 “ scan ‘—ROOT—’ ”或者“scan 'hbase:root' ”,说明meta表还是存在,而root表没有。

2. 要是版本里面移除了root表,他应该会将其将其信息放到其他地方吧,否则他这个分布式master结点管理的信息还不乱套了,但是我查了下资料,也没看到说新版本的hbase里面把root放到哪儿去了~~

3. 想请问下,你装好opentsdb的时候,hadoop 和 hbase 用的是哪两个版本,我用你成功的版本试试,谢谢回复~!

回复

使用道具 举报

roant 发表于 2014-9-12 09:45:26
sstutu 发表于 2014-9-11 14:21
你应该说的是hbase0.98.5没有这个ROOT表了吧,这个我就不太清楚了,但是下面错误是不是跟你说的,就已经吻 ...

这个网址:  http://hbase.apache.org/book.html#arch.catalog.root
回复

使用道具 举报

roant 发表于 2014-9-12 10:49:32
sstutu 发表于 2014-9-11 14:21
你应该说的是hbase0.98.5没有这个ROOT表了吧,这个我就不太清楚了,但是下面错误是不是跟你说的,就已经吻 ...

这个网址: http://hbase.apache.org/book.html#arch.catalog.root
请问opentsdb配置可用时,,hadoop + hbase的对应版本是多少?

回复

使用道具 举报

roant 发表于 2014-9-12 16:49:33
本帖最后由 pig2 于 2014-9-12 17:31 编辑
sstutu 发表于 2014-9-11 14:21
你应该说的是hbase0.98.5没有这个ROOT表了吧,这个我就不太清楚了,但是下面错误是不是跟你说的,就已经吻 ...

刚查了些资料,觉得可能是我的zookeeper配置有些问题。说在 zkCli.sh, zookeeper客户端模式下, ls 可以看到 zookeeper.znode.rootserver的注册信息。
我在hbase-site.xml中设置了
<property>
          <name>zookeeper.znode.parent</name>
          <value>/hbase</value>
          <description>Root ZNode for HBase in ZooKeeper. All of HBase's ZooKeeper  
      files that are configured with a relative path will go under this node.  
      By default, all of HBase's ZooKeeper file path are configured with a  
      relative path, so they will all go under this directory unless changed.  
          </description>
    </property>
    <property>  
             <name>zookeeper.znode.rootserver</name>  
             <value>root-region-server</value>  
             <description>Path to ZNode holding root region location. This is written by  
      the master and read by clients and region servers. If a relative path is  
      given, the parent folder will be ${zookeeper.znode.parent}. By default,  
      this means the root location is stored at /hbase/root-region-server.  
             </description>  
    </property>  




如上所示,开启zookeeper进程jps没有问题,然后打开zookeeper客户端, " ls /hbase "察看目录结构,结果里面只有一个表"meta-region-server"(内容为空),却没有我们所配置的root-region-server,网上的资料显示应该是有后者的(包含root region的注册信息),请问这是什么情况?



回复

使用道具 举报

pig2 发表于 2014-9-12 18:00:22
roant 发表于 2014-9-12 16:49
刚查了些资料,觉得可能是我的zookeeper配置有些问题。说在 zkCli.sh, zookeeper客户端模式下, ls 可以 ...

可能你的zookeeper版本用错了 zookeeper.png

The hbase:meta table (previously called .META.) keeps a list of all regions in the system. The location of hbase:meta was previously tracked within the -ROOT- table, but is now stored in Zookeeper.
现在 hbase:meta的信息不存在root了,已经存储在在Zookeeper了,首先你的配置需要修改,不能再有root信息了,而且要选择合适的版本。





回复

使用道具 举报

roant 发表于 2014-9-13 08:54:46
pig2 发表于 2014-9-12 18:00
可能你的zookeeper版本用错了

现在 hbase:meta的信息不存在root了,已经存储在在Zookeepe ...

之前所用的完全是第一列所示的三个版本,目前还没有用hive。
后来我在hbase-site.xml中修改如下配置,将root改为了meta:
  1.   <property>  
  2.              <name><font color="Red">zookeeper.znode.rootserver</font></name>  
  3.              <value><font color="Red">meta</font>-region-server</value>  
  4.              <description>Path to ZNode holding root region location. This is written by  
  5.       the master and read by clients and region servers. If a relative path is  
  6.       given, the parent folder will be ${zookeeper.znode.parent}. By default,  
  7.       this means the root location is stored at /hbase/root-region-server.  
  8.              </description>  
  9.     </property>  
复制代码
重新开启各项服务,结果之前所说的没有任何内容的meta-region-server这个文件,其内容还是为空,开启opentsdb服务还是报错
  1. ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist!
复制代码
我在zookeeper中只是修改了下简单的配置,"zoo.cfg"文件中:
  1. clientPort=2181
  2. server.1=localhost:2888:3888
  3. dataDir=/home/roant-hit/DATA/zookeeper
  4. dataLogDir=/usr/local/zookeeper-3.4.6/logs
复制代码
除了以上四项,其他文件都没改动。关键是zookeeper的logs文件是打不开的,所以没办法察看可能出错的地方。关于新版本的zookeeper的配置相关,大神有重点的项可以给我提个省儿。谢谢,祝好~!




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条