1. 程式人生 > >Ubuntu上安裝HBase遇到的問題及解決辦法

Ubuntu上安裝HBase遇到的問題及解決辦法

Ubuntu 14.04 + Hbase 1.2.6, 主要有如下兩個問題:

1.  執行bin/start-hbase.sh 時,master/slave上都報 "Error: JAVA_HOME is not set"

slave02: +======================================================================+
slave02: |                    Error: JAVA_HOME is not set                       |
slave02: +----------------------------------------------------------------------+
slave02: | Please download the latest Sun JDK from the Sun Java web site        |
slave02: |     > http://www.oracle.com/technetwork/java/javase/downloads        |
slave02: |                                                                      |
slave02: | HBase requires Java 1.7 or later.                                    |
slave02: +======================================================================+

命令列中echo $JAVA_HOME是指向JAVA的實際安裝目錄的。可能HBase和Hive/Hdaoop或其他安裝包一樣,也需要在自己的配置文將中宣告。

在$HBASE_HOME/conf/hbase-env.sh   中 注掉前面的#, 並設定JAVA_HOME為有效的JDK安裝路徑,如 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131

2. 執行bin/start-hbase.sh 時,報zookeeper: Address already in use
master: starting zookeeper, logging to /home/hadoop/bigdata/hbase/bin/../logs/hbase-hadoop-zookeeper-master.out
master: java.net.BindException: Address already in use


master:     at sun.nio.ch.Net.bind0(Native Method)
master:     at sun.nio.ch.Net.bind(Net.java:433)
master:     at sun.nio.ch.Net.bind(Net.java:425)
master:     at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
master:     at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
master:     at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
master:     at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:95)
master:     at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:130)
master:     at org.apache.hadoop.hbase.zookeeper.HQuorumPeer.runZKServer(HQuorumPeer.java:89)

說明,zookeeper已經在HBase啟動前已經啟動了。有兩個解決辦法:

a. killall zookeeper 所有的zookeeper程序,再啟動Hbase
b. 再$HBASE_HOME/conf/hbase-env.sh  中 export HBASE_MANAGES_ZK=false


再次 bin/start-hbase.sh 啟動HBase, 並jps 能看到HMaster/HRegionServer已經成功啟動。

命令列中執行  hbase shell,可以看到hbase 互動介面,Great !!
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/bigdata/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/bigdata/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017

hbase(main):001:0> status
1 active master, 0 backup masters, 2 servers, 0 dead, 1.0000 average load

hbase(main):002:0>