HBase连接异常

时间:2011-01-22 02:46:21

标签: hadoop hbase

我尝试以伪分布式模式运行HBase。但是在设置hbase-site.xml之后它不起作用。

每次我尝试在hbase shell中运行命令时都会收到此错误:

  

错误:   org.apache.hadoop.hbase.ZooKeeperConnectionException:   org.apache.hadoop.hbase.ZooKeeperConnectionException:   org.apache.zookeeper.KeeperException $ ConnectionLossException:   KeeperErrorCode = connectionLoss for   / HBase的

我设置了ssh并确保所有端口都正确。

此外,我无法阻止hbase ./bin/stop-hbase.sh。我只得到以下输出。

stopping hbase........................................................

4 个答案:

答案 0 :(得分:4)

伪分布意味着您在一台计算机上运行所有进程。您需要检查所有必需的进程是否正在运行:

Hadoop的:

  • NameNode
  • DataNode
  • 的JobTracker
  • 的TaskTracker

动物园管理员:

  • HQuorumPeer

HBase的:

  • HMASTER
  • RegionServer的

您还需要确保您的hbase-site.xml包含定义主机名和端口的zookeeper的正确条目。 HBase FAQ和Wiki非常好。你在那里缺少什么?

答案 1 :(得分:2)

这是因为HBase文档中您已将HDFS设置设置为指向端口8020,但Hadoop指令为端口9000配置HDFS。

更改HBase建议指向端口9000的hbase-site.xml设置:

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://localhost:9000/hbase</value>
  <description>The directory shared by RegionServers.
  </description>
</property>

答案 2 :(得分:1)

我有类似的问题,并得到与上面相同的错误消息。在我的情况下,HMaster没有运行。使用

sudo start-hbase.sh

解决了这个问题。

答案 3 :(得分:1)

我刚刚通过删除hbase.rootdir和hbase.zookeeper.property.dataDir文件夹来解决问题。例如:

more conf/hbase-site.xml

给了我:                     hbase.rootdir         文件:/// somepath / HBase的/ testuser的/ HBase的                       hbase.zookeeper.property.dataDir         / somepath / HBase的/ TESTUSER /动物园管理员            

然后删除旧数据:

rm -fr /somepath/hbase/testuser/hbase
mkdir -p /somepath/hbase/testuser/hbase
rm -fr /somepath/hbase/testuser/zookeeper
mkdir -p /somepath/hbase/testuser/zookeeper
然后开始吧:

bin/start-hbase.sh    

最后我可以连接到本地实例:

./bin/hbase shell