HBase-Installation unter Ubuntu

Inhaltsverzeichnis:

Anonim

In diesem Tutorial lernen Sie:

  • Apache HBase-Installationsmodi
  • Herunterladen der stabilen Version der Hbase-TAR-Datei
  • Hbase - Installation im Standalone-Modus
  • Hbase - Pseudo-verteilter Installationsmodus
  • Hbase - Vollständig verteilte Installation
  • Fehlerbehebung bei der HBase-Installation

Apache HBase-Installationsmodi

Apache HBase kann in drei Modi installiert werden. Die Funktionen dieser Modi werden unten erwähnt.

1) Installation im Standalone-Modus (Keine Abhängigkeit vom Hadoop-System)

  • Dies ist der Standardmodus von HBase
  • Es läuft gegen lokales Dateisystem
  • Hadoop HDFS wird nicht verwendet
  • Nur der HMaster-Daemon kann ausgeführt werden
  • Nicht für die Produktionsumgebung empfohlen
  • Läuft in einer einzelnen JVM

2) Installation im Pseudo-Distributed-Modus (Einzelknoten-Hadoop-System + HBase-Installation)

  • Es läuft auf Hadoop HDFS
  • Alle Daemons werden in einem einzigen Knoten ausgeführt
  • Empfohlen für die Produktionsumgebung

3) Installation im vollständig verteilten Modus (MultinodeHadoop-Umgebung + HBase-Installation)

  • Es läuft auf Hadoop HDFS
  • Alle Daemons werden auf allen im Cluster vorhandenen Knoten ausgeführt
  • Sehr empfehlenswert für die Produktionsumgebung

Informationen zur Hadoop-Installation finden Sie unter dieser URL hier

Herunterladen der stabilen Version der Hbase-TAR-Datei

Schritt 1) Gehen Sie zum Link hier, um HBase herunterzuladen. Es wird eine Webseite wie unten gezeigt geöffnet.

Schritt 2) Wählen Sie eine stabile Version wie unten gezeigt. 1.1.2 Version

Schritt 3) Klicken Sie auf hbase-1.1.2-bin.tar.gz. Es wird die TAR-Datei heruntergeladen. Kopieren Sie die TAR-Datei an einen Installationsort.

Hbase - Installation im Standalone-Modus:

Die Installation wird unter Ubuntu durchgeführt, wobei Hadoop bereits installiert ist.

Schritt 1) Platzieren Sie hbase-1.1.2-bin.tar.gz in / home / hduser

Schritt 2) Entpacken Sie es, indem Sie den Befehl $ tar -xvf hbase-1.1.2-bin.tar.gz ausführen . Der Inhalt wird entpackt und hbase-1.1.2 am Speicherort / home / hduser erstellt

Schritt 3) Öffnen Sie hbase-env.sh wie folgt und geben Sie den Pfad JAVA_HOME an der Stelle an.

Schritt 4) Öffnen Sie die Datei ~ / .bashrc und geben Sie den Pfad HBASE_HOME an, wie unten gezeigt

export HBASE_HOME = / home / hduser / hbase-1.1.1 export PATH = $ PATH: $ HBASE_HOME / bin

Schritt 5) Öffnen Sie hbase-site.xml und platzieren Sie die folgenden Eigenschaften in der Datei

hduser @ ubuntu $ gedit hbase-site.xml (Code wie unten)

hbase.rootdirfile:///home/hduser/HBASE/hbase
hbase.zookeeper.property.dataDir/home/hduser/HBASE/zookeeper

Hier platzieren wir zwei Eigenschaften

  • Eine für das HBase-Stammverzeichnis und
  • Das zweite für das Datenverzeichnis entspricht ZooKeeper.

Alle HMaster- und ZooKeeper-Aktivitäten verweisen auf diese hbase-site.xml.

Schritt 6) Öffnen Sie die Hosts-Datei in / etc. Ort und erwähnen Sie die IPs wie unten gezeigt.

Schritt 7) Führen Sie nun Start-hbase.sh in der Position hbase-1.1.1 / bin aus, wie unten gezeigt.

Und wir können mit dem Befehl jps überprüfen, ob HMaster ausgeführt wird oder nicht.

Schritt 8) Die HBase-Shell kann mit der "hbase-Shell" beginnen und wechselt in den interaktiven Shell-Modus, wie im folgenden Screenshot gezeigt. Sobald es in den Shell-Modus wechselt, können wir alle Arten von Befehlen ausführen.

Für den Standalone-Modus müssen keine Hadoop-Dämonen gestartet werden. HBase kann unabhängig ausgeführt werden.

Hbase - Pseudo Distributed-Installationsmodus:

Dies ist eine weitere Methode für die Apache Hbase-Installation, die als pseudoverteilter Installationsmodus bezeichnet wird. Im Folgenden finden Sie die Schritte zum Installieren von HBase mit dieser Methode.

Schritt 1) Platzieren Sie hbase-1.1.2-bin.tar.gz in / home / hduser

Schritt 2) Entpacken Sie es, indem Sie den Befehl $ tar -xvf hbase-1.1.2-bin.tar.gz ausführen . Der Inhalt wird entpackt und hbase-1.1.2 am Speicherort / home / hduser erstellt

Schritt 3) Öffnen Sie hbase-env.sh wie folgt und erwähnen Sie den Pfad des JAVA_HOME-Pfads und des Regionsservers am Speicherort und exportieren Sie den Befehl wie gezeigt

Schritt 4) In diesem Schritt öffnen wir die Datei ~ / .bashrc und erwähnen den Pfad HBASE_HOME, wie in der Abbildung gezeigt.

Schritt 5) Öffnen Sie HBase-site.xml und erwähnen Sie die folgenden Eigenschaften in der Datei (Code wie unten).

hbase.rootdirhdfs://localhost:9000/hbase
hbase.cluster.distributedtrue
hbase.zookeeper.quorumlocalhost
dfs.replication1
hbase.zookeeper.property.clientPort2181
hbase.zookeeper.property.dataDir/home/hduser/hbase/zookeeper
  1. Einrichten des Hbase-Stammverzeichnisses in dieser Eigenschaft
  2. Für die verteilte Einrichtung müssen wir diese Eigenschaft festlegen
  3. Hier sollte die ZooKeeper-Quorum-Eigenschaft eingerichtet werden
  4. Die Replikation wurde in dieser Eigenschaft eingerichtet. Standardmäßig platzieren wir die Replikation als 1.

    Im vollständig verteilten Modus sind mehrere Datenknoten vorhanden, sodass wir die Replikation erhöhen können, indem wir mehr als einen Wert in die Eigenschaft dfs.replication einfügen

  5. Der Client-Port sollte in dieser Eigenschaft erwähnt werden
  6. Das ZooKeeper-Datenverzeichnis kann in dieser Eigenschaft erwähnt werden

Schritt 6) Starten Sie zuerst die Hadoop-Dämonen und danach die HBase-Dämonen wie unten gezeigt

Hier müssen Sie zuerst Hadoop-Dämonen mit dem Befehl "./start-all.sh" starten, wie unten gezeigt.

Nach dem Start von Hbase Daemons von hbase-start.sh

Überprüfen Sie nun jps

Hbase - Installation im vollständig verteilten Modus: -

  • Diese Einrichtung funktioniert im Hadoop-Cluster-Modus, in dem mehrere Knoten im Cluster erscheinen und ausgeführt werden.
  • Die Installation entspricht dem Pseudo-Distributed-Modus. Der einzige Unterschied besteht darin, dass es über mehrere Knoten hinweg erzeugt wird.
  • Die in HBase-site.xml und hbase-env.sh genannten Konfigurationsdateien sind dieselben wie im Pseudomodus.

Fehlerbehebung bei der HBase-Installation

1) Problemstellung: Der Master-Server wird initialisiert, die Regionsserver jedoch nicht

Die Kommunikation zwischen Master- und Regionsservern über ihre IP-Adressen. So wie der Master abhört, dass Regionsserver ausgeführt werden oder die IP-Adresse 127.0.0.1 haben. Die IP-Adresse 127.0.0.1, die der lokale Host ist und in den lokalen Host des Master-Servers aufgelöst wird.

Ursache:

Bei der doppelten Kommunikation zwischen Regionsservern und Master informiert der Regionsserver den Masterserver kontinuierlich über die IP-Adressen 127.0.0.1.

Lösung:

  • Der Master-Server-Namensknoten muss vom lokalen Host entfernt werden, der in der Hosts-Datei vorhanden ist
  • Speicherort der Hostdatei / etc / hosts

Was zu ändern ist:

Öffnen Sie /etc./hosts und gehen Sie zu diesem Speicherort

127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost: : 1 localhost3.localdomain3 localdomain3

Ändern Sie die obige Konfiguration wie unten (entfernen Sie den Namen des Regionsservers wie oben hervorgehoben).

127.0.0.1 localhost.localdomainlocalhost: : 1 localhost3.localdomain3 localdomain3

2) Problemstellung: Meine Adresse: XYZ konnte nicht in der Liste der Zookeeper-Quorum-Server gefunden werden

Ursache:

  • Der ZooKeeper-Server konnte nicht gestartet werden und es wird ein Fehler wie .xyz im Namen des Servers ausgegeben.
  • HBase versucht, einen ZooKeeper-Server auf einem Computer zu starten, gleichzeitig kann der Computer jedoch nicht die Quorum-Konfiguration finden, die in der Konfigurationsdatei HBase.zookeeper.quorum vorhanden ist .

Lösung:-

  • Müssen Sie den Hostnamen durch einen Hostnamen ersetzen, der in der Fehlermeldung angezeigt wird
  • Angenommen, wir haben einen DNS-Server, dann können wir die folgenden Konfigurationen in HBase-site.xml festlegen.
    • HBase.zookeeper.dns.interface
    • HBase.zookeeper.dns.nameserver

3) Problemstellung: Root-Verzeichnis für HBase über Hadoop DFS erstellt

  • Der Master sagt, dass Sie das HBase-Migrationsskript ausführen müssen.
  • Beim Ausführen reagiert das HBase-Migrationsskript wie keine Dateien im Stammverzeichnis .

Ursache:

  • Erstellung eines neuen Verzeichnisses für HBase mit dem verteilten Hadoop-Dateisystem
  • Hier erwartet HBase zwei Möglichkeiten

1) Stammverzeichnis soll nicht existieren

2) Vorherige HBase-Vorinstanz, die zuvor initialisiert wurde

Lösung:

  • Konformität herstellen Das HBase-Stammverzeichnis ist derzeit nicht vorhanden oder wurde von einer vorherigen Ausführung der HBase-Instanz initialisiert.
  • Als Teil der Lösung müssen wir die folgenden Schritte ausführen

Schritt 1) Verwenden von Hadoop dfs zum Löschen des HBase-Stammverzeichnisses

Schritt 2) HBase erstellt und initialisiert das Verzeichnis selbst

4) Problemstellung: Ereignisse in der Zookeeper-Sitzung sind abgelaufen

Ursache:

  • HMaster- oder HRegion-Server werden durch Auslösen von Ausnahmen heruntergefahren
  • Wenn wir Protokolle beobachten, können wir die tatsächlichen Ausnahmen herausfinden, die ausgelöst wurden

Das Folgende zeigt die Ausnahme, die aufgrund des abgelaufenen Zookeeper-Ereignisses ausgelöst wurde. Die hervorgehobenen Ereignisse sind einige der Ausnahmen, die in der Protokolldatei aufgetreten sind

Protokollieren Sie den Dateicode wie folgt:

WARN org.apache.zookeeper.ClientCnxn: Exceptionclosing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ecjava.io.IOException: TIMED OUT at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906)WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORTINFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT]INFO org.apache.zookeeper.ClientCnxn: Server connection successfulWARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65ejava.io.IOException: Session Expired at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589)at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709)at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945)ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired

Lösung:

  • Die Standard-RAM-Größe beträgt 1 GB. Für lang laufende Importe haben wir eine RAM-Kapazität von mehr als 1 GB beibehalten.
  • Das Sitzungszeitlimit für Zookeeper muss erhöht werden.
  • Um die Sitzungszeit außerhalb von Zookeeper zu verlängern, müssen wir die folgende Eigenschaft in "hbase-site.xml" ändern, die im Ordnerpfad hbase / conf vorhanden ist.
  • Das Standard-Sitzungszeitlimit beträgt 60 Sekunden. Wir können es wie unten erwähnt auf 120 Sekunden ändern
 zookeeper.session.timeout 1200000
 hbase.zookeeper.property.tickTime 6000