it-swarm.com.de

HBase-Standalone konnte keine Verbindung herstellen (Tabelle konnte nicht erstellt werden)

Ich versuche, Hbase nach diesem Artikel im eigenständigen Modus bereitzustellen: http://hbase.Apache.org/book.html#quickstart . Die Version ist 0.92.1-cdh4.1.2

Ich erhalte jedoch diese Fehler, wenn Sie versuchen, eine Tabelle zu erstellen:

Fehlermeldung:

    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)

Ausgabeprotokoll:

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 [email protected]
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

Meine Konfigurationen:

  1. Java_HOME in hbase-env.sh hinzugefügt
  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>
    

Ich habe versucht,/etc/hosts zu ändern, was so aussieht (Oracle ist der Hostname):

127.0.0.1   localhost Oracle

oder 

[server ip]   localhost Oracle

Diese funktionieren aber nicht für mich.

Meine genauen Codes sind:

[[email protected] bin]$ ./start-hbase.sh 
starting master, logging to /home/hadoop/hbase-0.94.6/bin/../logs/hbase-usr-master-Oracle.out
[[email protected] 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'

Danke im Voraus!

20
Hypnos

Anscheinend fehlt Ihnen hbase.zookeeper.quorum in Ihrer Konfiguration. Bitte überprüfen Sie dieses HBase-Kapitel, es kann helfen: http://hbase.Apache.org/book/zookeeper.html

Bitte überprüfen Sie auch, ob der zookeeper am richtigen Port und (was häufiger passiert) die richtigen IP-Schnittstellen gestartet wird.

7

Ich bin nicht sicher, ob Sie einen Mac verwenden, aber dieses Problem hatte ich auch. Es stellte sich heraus, dass dies der Fall war, weil sich eine .DS_STORE-Datei in einem Ordner des -ROOT-Regionsservers befand und eine Verbindungsausnahme verursachte. Sehr eigenartig!

3
John61590

Möglicherweise hängt etwas mit Ihrer Konfiguration zusammen. Zuerst lade ich HBase-tar ( http://hbase.Apache.org/book/quickstart.html ) herunter, um HBase auszuführen. Ich folgte dem Link nicht, um eine Konfiguration vorzunehmen, einfach herunterladen, HBase starten, "HBase Shell" ausführen. Aber beim Erstellen einer Tabelle gab es einen Fehler, den Sie erwähnt haben. Und dann suche ich die HBase-Installation auf dem Mac, da ich den Mac benutze. Ich verwende die Verwendung von "brew install hbase" zur Installation von HBase ( http://chase-seibert.github.io/blog/2013/02/01/getting-startingwithwithhbase-and-pig.html ). Nach der Installation erstelle ich die Tabelle neu. Erfolg.

Überprüfen Sie Ihren Fehler erneut. Er muss mit Ihrem Java_HOME oder anderen Konfigurationen in HBase verknüpft sein. Die Antwort auf diese Weise zu finden, kann Ihnen helfen.

2
Haimei

In HBase 1.2.3 habe ich fast den gleichen Fehler "ZooKeeper existiert nach 4 Wiederholungsversuchen" im Standalone-Modus. Dies wurde durch die Ausführung von ./start-hbase.sh verursacht, ohne dass Berechtigungen zum Herstellen einer Verbindung zum Port 2181 vorhanden waren. Die Lösung stellte sich als sehr einfach heraus:

Sudo ./start-hbase.sh

Für den Fall ist die Konfiguration von hbase-site.xml wie folgt:

<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>
2
APW

stoppen Sie die hbase, indem Sie stop-hbase.sh in Ihren zookeeper-Ordner finden und den Inhalt des Ordners leeren. Starten Sie dann die hbase und die hbase-Shell erneut. was das Problem für mich gelöst hat

1
Roshan V Jose

Anscheinend gibt es einen Fehler in hbase-site.xml conf. Gemäß dem Schnellstart document sollte Standalone-HBase hbase-site.xml Folgendes gefallen:

<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>

In der Zookeeper-Konfiguration gibt es keinen file://. Seien Sie vorsichtig, wenn Sie HBase nicht gestartet haben. Sie müssen die Dateien löschen, in denen Sie hbase und zookeeper gespeichert haben. Entsprechend der obigen Konfiguration müssen Sie alle Dateien unter /home/testuser/hbase und /home/testuser/zookeeper löschen. Und versuchen Sie, die Protokollfehlerinformationen zu überprüfen. Ich habe diesen Fehler behoben, wenn ich das richtige conf habe und Java_HOME variable in hbase-env.sh hinzufüge.

1
einverne

Ich bin auch auf dieses Problem gestoßen, als ich hbase aufbaute. Ein paar Minuten später stellte ich fest, dass ich vergessen hatte, hbase mit dem folgenden Befehl zu starten:

hbase-1.1.2/bin/start-hbase.sh

Nachdem Sie diesen Befehl ausgeführt haben, hat hbase Shell einwandfrei funktioniert.

1
texens

Ich hatte auch das gleiche Problem. Setzen Sie den Besitzer und die Gruppe ordnungsgemäß in beiden Ordnern hbase.rootdir und hbase.zookeeper.property.dataDir.Give 755 auf beide Ordner.

Sudo chown -R hadoop_user:hadoop_user_group home/hadoop/data
Sudo chmod -R 755 home/hadoop/data
0
Saurabh

Der Fehler "ERROR zookeeper.RecoverableZooKeeper: ZooKeeper ist nach 3 Wiederholungsversuchen fehlgeschlagen" weist höchstwahrscheinlich darauf hin, dass Sie zookeeper nicht ausgeführt haben.

$ jps

der Befehl listet alle Java-Prozesse auf der Maschine auf, d. h. die wahrscheinliche Ausgabe muss sein - für das eigenständige HBase-Setup, das Sie einrichten möchten (ignorieren Sie die Zahlen in der linken Spalte, d. h. pid):

62019 Jps
61098 HMaster        
61233 HRegionServer     
61003 HQuorumPeer

Wenn Ihre Ausgabe nicht über die Variable HQuorumPeer verfügt, bedeutet dies, dass der Zookeeper nicht läuft. 

Zookeeper ist für den HBase-Cluster erforderlich, da dieser verwaltet wird.


Lösung:

Stoppen Sie in Ihrem HBase-Verzeichnis zuerst die HBase:

$ ./bin/stop-hbase.sh

Wenn Sie versuchen, das 'Standalone-HBase'-Beispiel herauszufinden, halten Sie sich an das im Beispiel angegebene Mindest-Conf:

<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>

ihr conf/hbase-site.xml sollte den oben genannten Inhalt haben.

Nach dem Einstellen starten Sie die HBase jetzt erneut:

$ ./bin/start-hbase.sh

P.S. Für alle, die diese Schritte durchlaufen haben, ist das Problem immer noch nicht gelöst. Lassen Sie das Problem im Kommentarbereich.


Einige relevante Antworten: 123

0
Nabeel Ahmed

Das Problem liegt in 'hbase-site.xml' unter der Eigenschaft ' hbase.zookeeper.property.dataDir '

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

Hinweis: Legen Sie unter dieser Eigenschaft den Pfad im Dateisystem 'LOCAL' fest.

Wir müssen nur das Verzeichnis auf dem lokalen Dateisystem angeben, in das HBase und ZooKeeper Daten schreiben . In diesem Fall zum Beispiel, nachdem Sie 1) start-hbase.sh 2) hbase Shell-Befehl ausgeführt haben

Navigieren Sie zu dem Pfad (In meinem Fall/usr/lib/hbase/zookeeperdata), wo Sie eine Datei mit dem Namen myid sehen.

Zusammenfassung der Validierungspunkte

1) Beim Ausführen von jps sollten folgende Prozesse ausgeführt werden HQuorumPeer , ResourceManager, HMaster , NameNode, Main, HRegionServer , SecondaryNameNode, DataNode, Jps, NodeManager

2) Unter hbase-site.xml sollte für die Eigenschaft 'hbase.zookeeper.property.dataDir' der Pfad auf lokalen Pfad gesetzt werden, d. H. Der Ordner sollte lokal vorhanden sein.

3) Nachdem Sie den Befehl start-hbase.sh und hbase Shell ausgeführt haben -> Navigieren Sie zu dem in hbase.zookeeper.property.dataDir angegebenen Pfad (in meinem Beispiel lautet der Pfad/usr/lib/hbase/zookeeperdata), einer Datei namens myid sollte vorhanden sein.

0
KP Fingh

Bearbeiten Sie die Datei/etc/hosts ... Ändern Sie in der zweiten Zeile 127.0.1.1 in 127.0.0.1. Starten Sie dann Hbase ... es sollte einwandfrei funktionieren. . http://lets-do-something-big.blogspot.in/2014/01/hbase-installation-on-ubuntu-lubuntu.html

0
Harry