HBase 与 Java 8 和 zookeeper 有问题

HBase has issues with Java 8 and zookeeper

我想安装hbase 1.2.4。当我尝试 运行 bin/start-hbase.sh 时,我收到以下警告。

OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0'

hbase shell 命令生成了大量众所周知的 zookeeper 异常...

ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 4 attempts
WARN  [main] zookeeper.ZKUtil: hconnection-0x1a96d94c0x0, quorum=localhost:2181, baseZNode=/hbase Unable to set watcher on znode (/hbase/hbaseid)

org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045)
.....
.....

Hadoop 已经 运行ning。 hbase-site.xml 包含以下内容。

   <property>
      <name>hbase.rootdir</name>
      <value>file:///usr/local/hbase</value>
   </property>
   <property>
      <name>hbase.zookeeper.property.dataDir</name>
      <value>/usr/local/hbase/zookeeper</value>
   </property>
   <property>
       <name>zookeeper.znode.parent</name>
       <value>/hbase</value>
   </property>

可能的解决方案是什么?关于 VM 的 Java 警告真的很重要还是可以忽略?

Configure PermSize 在 Java 8 中不再受支持。hbase-env.sh 状态:

#Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+

hbase 配置包括在 conf/hbase-env.sh 文件中默认设置为 128m 的 PermSize。 找出这两行就可以了。

export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"

删除或评论它们,您就大功告成了。警告和希望 Zookeeper 异常消失。