【问题标题】:Can not run hbase standalone in my mac无法在我的 Mac 中独立运行 hbase
【发布时间】:2014-01-31 18:57:29
【问题描述】:

我按照此快速入门的说明进行操作,但无法在我的电脑上独立运行 hbase。有人可以帮忙吗?谢谢

http://hbase.apache.org/book/quickstart.html

这里是日志:

2014-01-13 13:15:01,667 WARN  [main] zookeeper.ZKUtil: clean znode for master, quorum=localhost:2181, baseZNode=/hbase Unable to get data of znode /hbase/master
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /hbase/master
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:127)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1151)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.getData(RecoverableZooKeeper.java:337)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.getDataNoWatch(ZKUtil.java:777)
    at org.apache.hadoop.hbase.zookeeper.MasterAddressTracker.deleteIfEquals(MasterAddressTracker.java:170)
    at org.apache.hadoop.hbase.ZNodeClearer.clear(ZNodeClearer.java:160)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:138)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2779)
2014-01-13 13:15:01,669 ERROR [main] zookeeper.ZooKeeperWatcher: clean znode for master, quorum=localhost:2181, baseZNode=/hbase Received unexpected KeeperException, re-throwing exception
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /hbase/master
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:127)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1151)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.getData(RecoverableZooKeeper.java:337)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.getDataNoWatch(ZKUtil.java:777)
    at org.apache.hadoop.hbase.zookeeper.MasterAddressTracker.deleteIfEquals(MasterAddressTracker.java:170)
    at org.apache.hadoop.hbase.ZNodeClearer.clear(ZNodeClearer.java:160)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:138)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2779)
2014-01-13 13:15:01,669 WARN  [main] zookeeper.ZooKeeperNodeTracker: Can't get or delete the master znode
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /hbase/master
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:127)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1151)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.getData(RecoverableZooKeeper.java:337)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.getDataNoWatch(ZKUtil.java:777)
    at org.apache.hadoop.hbase.zookeeper.MasterAddressTracker.deleteIfEquals(MasterAddressTracker.java:170)
    at org.apache.hadoop.hbase.ZNodeClearer.clear(ZNodeClearer.java:160)
    at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:138)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2779)

hbase-site.xml

<configuration>
<property>
    <name>hbase.rootdir</name>
    <value>file:///var/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/var/zookeeper</value>
  </property>

 <property>
      <name>hbase.zookeeper.property.clientPort</name>
      <value>2181</value>
  </property>

 <property>
    <name>hbase.zookeeper.quorum</name>
    <value>127.0.0.1</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>

</configuration>

hbase-env.sh

export HBASE_OPTS="-XX:+UseConcMarkSweepGC"

【问题讨论】:

  • 您是否尝试通过命令行运行,如果是,则需要添加以下 export HADOOP_CLASSPATH=`/usr/bin/hbase classpath` 。这是我需要在 linux 中输入的内容,我不知道关于 mac
  • 它不适合我
  • quorum=localhost:2181..这是错误的。您需要将仲裁指定为机器的主机名。您的集群无法连接到 zookeeper
  • @Jijo,这是独立模式,所以 localhost 应该没问题
  • 我认为hbase应该在独立模式下启动自己的zookeeper。

标签: hbase


【解决方案1】:

在命令行上尝试 jps 命令以确定您的服务是否正在运行 你应该在那里看到 Zookeeper、HBMaster 和 HBRegionServer

然后我会摆脱

<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/var/zookeeper</value>
  </property>

如果您没有它,则默认为安全值,并且您的 ZK 可能会与此路径混淆。特别是您不清楚是否使用PC的MAC,您都提到了。物理路径在 PC 上使用 C:\xxx\ 符号,但在 mac 和 linux 上使用 file:///xxxxx/。

【讨论】:

    【解决方案2】:

    我也收到了这个错误。我发现即使shell启动了并不代表你有服务器在运行,你仍然需要手动运行start-hbase.sh来启动服务器。

    【讨论】:

      【解决方案3】:

      HBase 独立启动它自己的 zookeeper(如果你运行 `start-hbase.sh),但如果它无法启动或继续运行,其他需要的 hbase 守护程序将无法工作。

      确保在hbase-site.xml 文件中明确设置接口lo0 的属性:

      <property>
        <name>hbase.zookeeper.dns.interface</name>
        <value>lo0</value>
      </property>
      
      <property>
        <name>hbase.regionserver.dns.interface</name>
        <value>lo0</value>
      </property>
      
      <property>
        <name>hbase.master.dns.interface</name>
        <value>lo0</value>
      </property>
      

      我发现,特别是当我的 wifi 开启时,如果这些条目丢失,zookeeper 会申请启动。

      【讨论】:

        猜你喜欢
        • 2015-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-07
        • 1970-01-01
        • 2014-06-05
        • 2021-12-24
        • 1970-01-01
        相关资源
        最近更新 更多