So installieren Sie HBase auf Ubuntu (HBase-Installation)

Apache HBase-Installationsmodi

Apache HBase kann in drei Modi installiert werden. Die Merkmale dieser Modi werden unten aufgeführt.

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

  • Dies ist der Standardmodus von HBase
  • Es läuft gegen das lokale Dateisystem
  • Es nutzt nicht Hadoop HDFS
  • Nur der HMaster-Daemon kann ausgeführt werden
  • Nicht für Produktionsumgebungen empfohlen
  • Läuft in einer einzelnen JVM

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

  • Es läuft weiter Hadoop HDFS
  • Alle Daemons laufen auf einem einzigen Knoten
  • Empfohlen für Produktionsumgebung

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

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

Informationen zur Hadoop-Installation finden Sie unter dieser URL Hier

So laden Sie die stabile Version der HBase-TAR-Datei herunter

Schritt 1) Gehe zum Link hier um HBase herunterzuladen. Es öffnet sich eine Webseite wie unten gezeigt.

Laden Sie die stabile Version von HBase Tar File herunter

Schritt 2) Wählen Sie die stabile Version aus, wie unten gezeigt: Version 1.1.2

Laden Sie die stabile Version von HBase Tar File herunter

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

Laden Sie die stabile Version von HBase Tar File herunter

So installieren Sie HBase in Ubuntu mit Standalone-Modus

Hier ist der Schritt-für-Schritt-Prozess der Installation im HBase-Standalone-Modus Ubuntu:

Schritt 1) ​​Geben Sie den folgenden Befehl ein
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
Öffnen Sie hbase-env.sh wie unten und geben Sie als Speicherort den JAVA_HOME-Pfad an.

Installieren Sie HBase in Ubuntu mit Standalone-Modus

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

exportieren Sie HBASE_HOME=/home/hduser/hbase-1.1.1
widersprochen

Installieren Sie HBase in Ubuntu mit Standalone-Modus

Schritt 5) Fügen Sie der Datei Eigenschaften hinzu
Öffnen Sie hbase-site.xml und fügen Sie die folgenden Eigenschaften in die Datei ein

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

<property>

<name>hbase.rootdir</name>

<value>file:///home/hduser/HBASE/hbase</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/HBASE/zookeeper</value>

</property>

Installieren Sie HBase in Ubuntu mit Standalone-Modus

Hier platzieren wir zwei Immobilien

  • Eines 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) Erwähnen Sie die IPs
Öffnen Sie die in /etc vorhandene Hosts-Datei. Geben Sie den Standort ein und geben Sie die IPs an, wie unten gezeigt.

Installieren Sie HBase in Ubuntu mit Standalone-Modus

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

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

Installieren Sie HBase in Ubuntu mit Standalone-Modus

Schritt 8) Starten Sie die HBase-Shell
Die HBase-Shell kann mit „hbase-Shell” und es 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.

Installieren Sie HBase in Ubuntu mit Standalone-Modus

Im Standalone-Modus müssen keine Hadoop-Daemons gestartet werden. HBase kann unabhängig ausgeführt werden.

Pseudoverteilter HBase-Installationsmodus

Dies ist eine weitere Methode für die Apache HBase-Installation, die als pseudoverteilter Installationsmodus bezeichnet wird.
Im Folgenden finden Sie die Schritte zur Installation von HBase im Pseudo-Distributed-Modus:

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 unten, geben Sie den JAVA_HOME-Pfad und den Pfad der Regionsserver im Speicherort an und exportieren Sie den Befehl wie gezeigt

Pseudoverteilter HBase-Installationsmodus

Schritt 4) In diesem Schritt öffnen wir die Datei ~/.bashrc und geben den HBASE_HOME-Pfad an, wie im Screenshot gezeigt.

HBase Pseudo-Installation im verteilten Modus

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

<property>

<name>hbase.rootdir</name>

<value>hdfs://localhost:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>localhost</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/hbase/zookeeper</value>

</property>

Pseudoverteilter HBase-Installationsmodus

Pseudoverteilter HBase-Installationsmodus

  1. Einrichten des Hbase-Stammverzeichnisses in dieser Eigenschaft
  2. Für eine verteilte Einrichtung müssen wir diese Eigenschaft festlegen
  3. Hier sollte die ZooKeeper-Quorum-Eigenschaft eingerichtet werden
  4. Die Replikationseinrichtung wurde in dieser Eigenschaft durchgeführt. Standardmäßig platzieren wir die Replikation auf 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 der Eigenschaft dfs.replication platzieren
  5. Der Client-Port sollte in dieser Eigenschaft erwähnt werden
  6. In dieser Eigenschaft kann das ZooKeeper-Datenverzeichnis erwähnt werden

Schritt 6) Starten Sie zuerst die Hadoop-Daemons und anschließend die HBase-Daemons, wie unten gezeigt

Hier müssen Sie zunächst Hadoop-Daemons mit starten„./start-all.sh“ Geben Sie den Befehl wie unten gezeigt ein.

Pseudoverteilter HBase-Installationsmodus

Nach dem Starten von Hbase-Daemons durch hbase-start.sh

Pseudoverteilter HBase-Installationsmodus

Überprüfen Sie nun jps

Pseudoverteilter HBase-Installationsmodus

HBase-Installation im vollständig verteilten Modus

  • Diese Konfiguration funktioniert im Hadoop-Clustermodus, in dem mehrere Knoten im gesamten Cluster erstellt und ausgeführt werden.
  • Die Installation ist dieselbe wie im pseudoverteilten Modus. Der einzige Unterschied besteht darin, dass es über mehrere Knoten hinweg erzeugt wird.
  • Die in HBase-site.xml und hbase-env.sh erwähnten 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. Beispielsweise überwacht der Master, ob Regionsserver ausgeführt werden oder die IP-Adresse 127.0.0.1 haben. Die IP-Adresse 127.0.0.1 ist der lokale Host und wird in den lokalen Host des Master-Servers aufgelöst.

Ursache:

Bei der dualen Kommunikation zwischen Regionsservern und Master informiert der Regionsserver den Masterserver kontinuierlich darüber, dass seine IP-Adressen 127.0.0.1 sind.

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 beschrieben (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 in der Liste der Zookeeper-Quorumserver nicht gefunden werden

Ursache:

  • Der ZooKeeper-Server konnte nicht gestartet werden und gibt einen Fehler wie .xyz im Namen des Servers aus.
  • HBase versucht, einen ZooKeeper-Server auf einem Computer zu starten, aber gleichzeitig ist der Computer nicht in der Lage, die Quorum-Konfiguration, d. h. vorhanden, zu finden HBase.zookeeper.quorum Konfigurationsdatei.

Lösung:-

  • Der Hostname muss durch einen Hostnamen ersetzt werden, der in der Fehlermeldung angezeigt wird
  • Angenommen, wir haben einen DNS-Server, dann können wir die folgenden Konfigurationen in HBase-site.xml festlegen.
    • unterstützt
    • unterstützt

3) Problemstellung: Stammverzeichnis für HBase über Hadoop DFS erstellt

  • Der Master sagt, dass Sie das HBase-Migrationsskript ausführen müssen.
  • Als ich das ausgeführt habe, reagiert das HBase-Migrationsskript so, als ob keine Dateien im Stammverzeichnis vorhanden wären.

Ursache:

  • Erstellung eines neuen Verzeichnisses für die Verwendung von HBase Hadoop Verteiltes Dateisystem
  • Hier erwartet HBase zwei Möglichkeiten

1) Stammverzeichnis darf nicht existieren

2) Die zuvor ausgeführte HBase-Instanz wurde zuvor initialisiert

Lösung:

  • Stellen Sie sicher, dass das HBase-Stammverzeichnis derzeit nicht existiert oder durch eine frühere Ausführung der HBase-Instanz initialisiert wurde.
  • Als Teil der Lösung müssen wir Schritte befolgen

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

Schritt 2) HBase erstellt und initialisiert das Verzeichnis selbst

4) Problemstellung: Ereignisse abgelaufener Zookeeper-Sitzung

Ursache:

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

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

Protokolldateicode wie unten angezeigt:

WARN org.apache.zookeeper.ClientCnxn: Exception
closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec

java.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: 5000
INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT
INFO 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 successful
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e

java.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 Sitzungs-Timeout muss erhöht werden Tierpfleger.
  • Um die Sitzungszeit von Zookeeper zu erhöhen, müssen wir die folgende Eigenschaft in „hbase-site.xml“ ändern, die im Ordnerpfad hbase /conf vorhanden ist.
  • Das standardmäßige Sitzungszeitlimit beträgt 60 Sekunden. Wir können es wie unten erwähnt auf 120 Sekunden ändern
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>