HBase NoServerForRegionException?

时间:2011-01-17 13:52:43

标签: hadoop hbase

有一段时间我没有与HBase沟通时,我得到了这个例外:

org.apache.hadoop.hbase.client.NoServerForRegionException:尝试查找根区域超时,原因是:连接被拒绝

这是与会话到期有关的事情,如果是这样,我怎样才能延长会话寿命?

4 个答案:

答案 0 :(得分:1)

查询bin/hbase hbck并找到正在运行的机器根Regionserver。

你应该在hbck上获得-ROOT- is okay。确保你所有的 Regionserver已启动并正在运行。

使用start regionserver启动regionserver

答案 1 :(得分:0)

我不认为这与会话生命周期有任何关系。

检查您的群集以确保它已启动且工作正常且所有区域服务器都处于活动状态。然后检查日志以确保它们没有报告某些错误状态。

HBase是一个复杂的软件 - 如果没有更详细的信息,很难诊断出正在发生的事情。通常,您可以通过收集更详细的信息来发现问题。

答案 2 :(得分:0)

此错误表明客户端无法与Region服务器通信。 检查与其尝试连接的区域关联的区域服务器并检查它。

要识别与该地区相关联的区域服务器,请浏览http://hbase.apache.org/0.94/book/regions.arch.html#regions.arch.assignment

答案 3 :(得分:0)

有些因素在这里发挥了作用。

请注意当您尝试从客户端连接到Hbase时出现的以下步骤

  1. Hbase连接到Zookeeper以获取托管ROOT表的regionservers的IP。
  2. 客户端缓存有关IP的信息,以便它不必再与Zookeeper联系。
  3. 您的问题是,您的客户端正在尝试连接到zookeeper以获取IP。下面的事情之一可能会出错,

    1. 您的客户端无法连接到zookeeper。
    2. 关于ZooKeeper中Znode内部包含的ROOT的信息是错误的。
    3. 可能的修复。

      1. 检查您的zookeeper是否正常工作。

      2. 在Zookeeper中删除Hode的Znode并重新启动群集。别担心,这不会删除您的数据。

      3. 一旦实现这一目标?客户端可以获取ROOT信息,然后查询META表,没有任何问题。

相关问题