2016-05-05 10 views
1

Ich versuche HBase in einer cloudera VM (5.5) Aber immer die folgende Ausnahme abfragen:Cloudera HBase ConnectTimeoutException

Error connecting HBase: org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: org.apache.hadoop.net.ConnectTimeoutException: 20000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=quickstart.cloudera/192.168.1.117:60000] 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$StubMaker.makeStub(HConnectionManager.java:1592) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(HConnectionManager.java:1618) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getKeepAliveMasterService(HConnectionManager.java:1826) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.isMasterRunning(HConnectionManager.java:848) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:2359) 

leider nicht möglich, herauszufinden, was das Problem sein könnte. Irgendwelche Ideen?

+0

Hallo meine Antwort war nützlich? Können Sie das beheben? –

Antwort

0

Sie können netstat -ntpl | ausführen grep 60000 auf Maschine 192.168.1.117 um zu bestätigen, dass der Port mit einem Prozess verbunden ist.

Ausführen ps -elf | grep ** ProcessIDGotFromAbove, um zu prüfen, ob der HBase-Master den Prozess ausführt.

Wenn HBase Meister läuft und Port hört auch auf 60000, dann können Sie den Linux-Befehl lsof -i ausführen: 60000 -r 2 dann die Abfrage aus. Wenn die Verbindung zu 60000 erfolgreich ist, wird der Verbindungsstatus im Terminal von Listening to Established geändert.

Sicherstellen, dass die Firewall deaktiviert ist & Master läuft.

2

Sie können die folgenden Methoden ausprobieren.

Methode 1: einfache Art und Weise ist

von Browser zu überprüfen

http://masterhost:60010.

Methode 2:

Wenn Sie von Java-Programm dann allgemeine Überprüfung abfragen, bevor sie eine Abfrage ausgeführt werden könnten, die unten Methoden von Ihrem Client aufrufen.

public static void checkWhetherHbaseIsRunning() throws MasterNotRunningException, ZooKeeperConnectionException { 
     // Create the required configuration. 
     Configuration conf = HBaseConfiguration.create(); 
     // Check if Hbase is running 
     try{ 
     HBaseAdmin.checkHBaseAvailable(conf); 
     }catch(Exception e){ 
      System.err.println("Exception at " + e); 
      System.exit(1); 
     } 
    } 

Methode 3: von Sandkasten wird, welcher Port hbase sagen Master

ps -aef | grep hmaster 

Methode läuft 4: Ich denke, Sie es auch von Cloudera Manager überprüfen, da Sie sind mit CDH5.5