Ich versuche, HBase in einem Pseudo-Distributed-Modus auszuführen. Aber es funktioniert nicht, nachdem ich hbase-site.xml gesetzt habe.
Jedes Mal, wenn ich versuche, einen Befehl in der hbase-Shell auszuführen, erhalte ich folgende Fehlermeldung:
FEHLER: org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.hadoop.hbase.ZooKeeperConnectionException: org.apache.zookeeper.KeeperException $ ConnectionLossException: KeeperErrorCode = connectionLoss für / hbase
Ich habe ssh eingerichtet und stelle sicher, dass alle Ports korrekt sind.
Außerdem kann ich hbase nicht stoppen, obwohl ./bin/stop-hbase.sh
. Ich bekomme nur die folgende Ausgabe.
Pseudoverteilt bedeutet, dass Sie alle Prozesse auf einer Maschine ausführen. Sie müssen überprüfen, ob alle erforderlichen Prozesse ausgeführt werden:
Hadoop:
Zookeeper:
HBase:
Sie müssen auch sicherstellen, dass Ihre hbase-site.xml die korrekten Einträge für zookeeper enthält, die den Hostnamen und den Port definieren. Die HBase FAQ und Wiki sind wirklich ziemlich gut. Was vermisst du da?
Es liegt daran, dass Sie in der HBase-Dokumentation Ihre HDFS-Einstellungen so eingerichtet haben, dass sie auf Port 8020 zeigen, aber die Hadoop-Anweisungen konfigurieren HDFS für Port 9000.
Ändern Sie die Einstellungen von hbase-site.xml, die HBase stattdessen auf Port 9000 verweist:
%Vor%Ich habe gerade das Problem behoben, indem ich die Ordner hbase.rootdir und hbase.zookeeper.property.dataDir lösche. zum Beispiel:
%Vor%gibt mir: hbase.rootdir file: /// somepath / hbase / testuser / hbase hbase.zookeeper.property.dataDir / somepath / hbase / testuser / zookeyer
dann entfernen Sie die alten Daten:
%Vor%dann um es zu starten:
%Vor%und schließlich konnte ich mich mit der lokalen Instanz verbinden:
%Vor%