簡體   English   中英

HBase獨立無法連接(無法創建表)

[英]HBase standalone failed to connect (fail to create table)

我試圖在本文之后以獨立模式部署Hbase: http ://hbase.apache.org/book.html#quickstart。 版本是0.92.1-cdh4.1.2

但是在嘗試創建表時我遇到了這些錯誤:

錯誤信息:

    13/04/01 14:07:10 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
13/04/01 14:07:10 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode /hbase/master
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
    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:1021)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:154)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)
    at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:82)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:580)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:569)

輸出日志:

13/04/01 14:06:39 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
13/04/01 14:06:39 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 10231@localhost
13/04/01 14:06:39 INFO zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
13/04/01 14:06:39 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
13/04/01 14:06:39 WARN zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid

我的配置:

  1. 在hbase-env.sh中添加了JAVA_HOME
  2. hbase_site.xml

     <name>hbase.rootdir</name> <value>file:///home/hadoop/data</value> 

     <name>hbase.zookeeper.property.dataDir</name> <value>file:///home/hadoop/zookeeper</value> 

我試圖修改/ etc / hosts,看起來像這樣(oracle是主機名):

127.0.0.1   localhost oracle

要么

[server ip]   localhost oracle

但這些對我不起作用。

我的確切代碼是:

[usr@oracle bin]$ ./start-hbase.sh 
starting master, logging to /home/hadoop/hbase-0.94.6/bin/../logs/hbase-usr-master-oracle.out
[usr@oracle bin]$ hbase shell
13/04/01 14:57:55 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.92.1-cdh4.1.2, rUnknown, Thu Nov  1 18:02:07 PDT 2012

hbase(main):001:0> create 'test','cf'

提前致謝!

您的配置中似乎缺少hbase.zookeeper.quorum 請查看這個HBase指南章節,它可能有所幫助: http//hbase.apache.org/book/zookeeper.html

另外請檢查zookeeper是否在正確的端口上啟動(更常見的是)正確的IP接口。

我不確定你是不是在Mac上,但我也有這個問題。 事實證明,這是因為.DS_STORE文件位於-ROOT-區域服務器的文件夾中並導致連接異常。 很奇怪!

某些東西可能與您的配置有關。 首先,我下載HBase tar( http://hbase.apache.org/book/quickstart.html )來運行HBase。 我沒有按照鏈接進行任何配置,只需下載,啟動HBase,運行“HBase shell”。 但是在創建表時,它給了我一個像你提到的錯誤。 然后,我在Mac上搜索HBase安裝,因為我使用的是Mac。 我采用“brew install hbase”來安裝HBase( http://chase-seibert.github.io/blog/2013/02/01/getting-starting-with-hbase-and-pig.html )。 安裝完成后,我重新創建表。 成功。

因此,重新考慮您的錯誤,它必須與您的JAVA_HOME或HBase上的其他配置相關聯。 通過這種方式找到答案可能對您有所幫助。

在HBase 1.2.3中,我在獨立模式下得到了幾乎相同的錯誤“ZooKeeper在4次重試后存在失敗”。 它是由運行./start-hbase.sh而沒有連接到端口2181的權限引起的。解決方案結果非常簡單:

sudo ./start-hbase.sh

以防萬一,hbase-site.xml的配置是:

<configuration>
   <property>
      <name>hbase.rootdir</name>
      <value>file:///home/hadoop/HBase/HFiles</value>
   </property>
   <property>
      <name>hbase.zookeeper.property.dataDir</name>
      <value>/home/hadoop/zookeeper</value>
   </property>
</configuration>

通過stop-hbase.sh將hbase停止到您的zookeeper文件夾並清空文件夾的內容。 然后重啟hbase和hbase shell。 這解決了我的問題

我在設置hbase時遇到了這個問題。 幾分鍾后,我想通過運行以下命令忘記啟動hbase:

hbase-1.1.2/bin/start-hbase.sh

運行此命令后,hbase shell工作正常。

似乎hbase-site.xml conf中存在一些錯誤。 根據快速入門文檔 ,獨立的HBase hbase-site.xml應該是這樣的:

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

在Zookeeper配置中沒有file:// 當你無法啟動HBase時要小心,你必須刪除存儲hbase和zookeeper的文件。 根據上面的配置,您必須刪除/home/testuser/hbase/home/testuser/zookeeper下的所有文件。 並嘗試檢查日志錯誤信息。 當我有正確的conf並在hbase-env.sh添加JAVA_HOME變量時,我已修復此錯誤。

編輯/ etc / hosts文件...在第二行更改127.0.1.1到127.0.0.1然后啟動Hbase ...它應該可以正常工作。 如果不能正常工作......請嘗試此鏈接上的步驟http://lets-do-something-big.blogspot.in/2014/01/hbase-installation-on-ubuntu-lubuntu.html

我也有同樣的問題。在兩個文件夾hbase.rootdir和hbase.zookeeper.property.dataDir.Give 755中正確設置所有者和組。

sudo chown -R hadoop_user:hadoop_user_group home/hadoop/data
sudo chmod -R 755 home/hadoop/data

錯誤“ ERROR zookeeper.RecoverableZooKeeper:ZooKeeper在3次重試后存在失敗 ”很可能表示您沒有運行zookeeper - 在啟動HBase shell之前,您可以驗證Zookeeper仲裁是否已啟動,使用:

$ jps

該命令將列出機器上的所有java進程,即可能的輸出必須是 - 對於您嘗試設置的獨立HBase設置(忽略左列中的數字,即pid):

62019 Jps
61098 HMaster        
61233 HRegionServer     
61003 HQuorumPeer

如果您的輸出沒有HQuorumPeer - 表示zookeeper沒有運行。

HBase集群需要Zookeeper - 因為它管理它。


方案

在HBase目錄中,首先停止HBase:

$ ./bin/stop-hbase.sh

如果您正在嘗試計算“獨立HBase”示例 - 請堅持示例中提供的最小配置:

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/adio/workspace/hadoop/hbase/directories/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/adio/workspace/hadoop/hbase/directories/zookeeper</value>
  </property>
</configuration>

即您的conf/hbase-site.xml應具有上述內容。

設置完成后,立即再次啟動HBase:

$ ./bin/start-hbase.sh

PS任何人如果經歷這些步驟仍然沒有解決問題 - 請將您的問題留在評論部分。


幾個相關答案: 1 2 3

問題在於' hbase.zookeeper.property.dataDir '屬性下的' hbase -site.xml'

  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/lib/hbase/zookeeperdata</value>
  </property>

注意:在“ LOCAL ”文件系統中的此屬性設置路徑下。

我們只需要在HBase和ZooKeeper寫入數據的本地文件系統上指定目錄。 例如,在這種情況下,執行1)start-hbase.sh 2)hbase shell命令

導航到路徑(在我的情況下為/ usr / lib / hbase / zookeeperdata),您將在其中看到名為myid的文件。

總結驗證點

1)在執行后執行jps應運行HQuorumPeer ,ResourceManager, HMaster ,NameNode,Main, HRegionServer ,SecondaryNameNode,DataNode,Jps,NodeManager

2)在hbase-site.xml下,對於屬性'hbase.zookeeper.property.dataDir',路徑應設置為本地路徑,即文件夾應在本地存在。

3)執行start-hbase.sh和hbase shell命令后 - >導航到hbase.zookeeper.property.dataDir中指定的路徑(在我的示例中,路徑為/ usr / lib / hbase / zookeeperdata),名為myid的文件應該在場。

(1)只需運行./$HBASE_HOME/bin/start-habse.sh ,下面的異常就會消失。

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)
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:221)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:419)
    at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:65)
    at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:105)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.retrieveClusterId(ConnectionManager.java:905)
    at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:648)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

 - List item

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM