8

我尝试在伪分布式模式下运行 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

4 回答 4

4

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

Hadoop:

  • 名称节点
  • 数据节点
  • 工作追踪器
  • 任务跟踪器

动物园管理员:

  • HQuorumPeer

HBase:

  • 大师
  • 区域服务器

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

于 2011-01-24T16:23:41.997 回答
2

这是因为 HBase 文档让您将 HDFS 设置设置为指向端口 8020,但 Hadoop 说明将 HDFS 配置为端口 9000。

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

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://localhost:9000/hbase</value>
  <description>The directory shared by RegionServers.
  </description>
</property>
于 2011-09-30T20:05:05.357 回答
1

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

sudo start-hbase.sh

解决了这个问题。

于 2012-06-02T06:41:30.713 回答
1

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

more conf/hbase-site.xml

给我:hbase.rootdir file:///somepath/hbase/testuser/hbase hbase.zookeeper.property.dataDir /somepath/hbase/testuser/zookeeper

然后删除旧数据:

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
于 2016-03-17T10:26:20.503 回答