2013-10-25 92 views
3

我試圖通過運行HMASTER類開始HBase的在想法,但我得到這個錯誤:HBase的 - FS關機無法抑制鉤

java.lang.RuntimeException: Failed suppression of fs shutdown hook: Thread[Thread-8,5,main] 
    at org.apache.hadoop.hbase.regionserver.ShutdownHook.suppressHdfsShutdownHook(ShutdownHook.java:196) 
    at org.apache.hadoop.hbase.regionserver.ShutdownHook.install(ShutdownHook.java:83) 
    at org.apache.hadoop.hbase.util.JVMClusterUtil.startup(JVMClusterUtil.java:191) 
    at org.apache.hadoop.hbase.LocalHBaseCluster.startup(LocalHBaseCluster.java:420) 
    at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:149) 
    at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:104) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) 
    at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76) 
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2100) 

FYI/etc/hosts文件僅包含

127.0.0.1 - machine name

這是核心的site.xml

<configuration> 
    <property> 
     <name>fs.default.name</name> 
     <value>hdfs://localhost:8020</value> 
    </property> 

    <property> 
     <name>hadoop.tmp.dir</name> 
     <value>/home/ubuntu/Desktop/hdfs/tmp</value> 
    </property> 
</configuration> 

HBase的-site.xml中

<configuration> 
    <property> 
    <name>hbase.rootdir</name> 
    <value>/usr/lib/hbase</value> 
    </property> 
    <property> 
    <name>hbase.zookeeper.property.dataDir</name> 
    <value>/usr/lib/zookeeper</value> 
    </property> 
    <property> 
    <name>hbase.zookeeper.property.clientPort</name> 
    <value>2181</value> 
    </property> 
    <property> 
    <name>hbase.zookeeper.quorum</name> 
    <value>localhost</value> 
</property> 
</configuration> 

回答

0

我遇到了類似的問題,但在單機模式。這裏是我解決了這個問題:

  1. 檢查"hostname"輸出和「主機名-f」,確保命令「主機名」僅包含主機名的 輸出,而 的「主機名-f 「包含FQDN。如果沒有,請首先解決。
  2. 我用命令運行它作爲根「sudo bin/start-hbase.sh

我仍然不知道這個問題的根本原因,而HBase的實例運行後,我把上面的步驟。希望能幫助到你!

+0

感謝您的回答,但我嘗試從IntelliJ IDEA運行HBase而不使用腳本,因此它不適用於我。 –

0

當針對Hadoop 1編譯的HBase在類路徑中包含Hadoop 2 jar時發生此錯誤。進入這種情況的一種方法是將Hadoop罐轉儲到lib /文件夾中,另一種方法是通過外部工具將這些罐放在系統的類路徑上,這些HBase將拾取這些罐。

這很容易驗證,只需運行bin/hbase classpath,它會打印出來。

在獨立模式下,或者當動物園管理員通過HBase的管理,它也被在日誌的開頭印在像這樣的線:

INFO org.apache.zookeeper.server.ZooKeeperServer: Server environment:java.class.path= 

解決通過去除Hadoop的2罐子。

0

這是一個簡單的錯誤。這很容易驗證,只需運行bin/hbase classpath並將其打印出來。如果存在hadoop2,則它將不能在獨立模式下工作。所以刪除那些或焦油這些文件夾的位置然後嘗試。

-1

在斌/ HBase的0.98爲版本,還有一個標誌 HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP

設置以下的環境變量對我的作品。

export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true