Hoe installeer je HBase op Ubuntu: Stapsgewijze handleiding

⚡ Slimme samenvatting

HBase-installatie op Ubuntu Het programma werkt in drie modi: standalone, pseudo-gedistribueerd en volledig gedistribueerd. Hierin wordt uitgelegd hoe je het release-tarball downloadt, hbase-env.sh en hbase-site.xml bewerkt, de daemons start en veelvoorkomende opstartfouten verhelpt.

  • 🧩 Installatiemodi: De standalone-modus draait in één JVM op het lokale bestandssysteem; de gedistribueerde modus slaat gegevens op in Hadoop HDFS.
  • ⬇️ Download link: Download het binaire HBase-tarballbestand van de Apache HBase-website en pak het uit in je thuismap.
  • ⚙️ Configuratie: Stel JAVA_HOME en HBASE_HOME in en definieer vervolgens hbase.rootdir en de ZooKeeper-directory's in hbase-site.xml.
  • ▶ ️ Beginnen: Voer start-hbase.sh uit, bevestig HMaster met jps en open vervolgens de interactieve prompt met hbase shell.
  • 🌐 Pseudo-verdeeld: Wijs hbase.rootdir naar HDFS, schakel hbase.cluster.distributed in en stel het ZooKeeper-quorum en de clientpoort in.
  • 🩹 Probleemoplossen: Los fouten met betrekking tot de regioserver, het ZooKeeper-quorum, de rootdirectory en de sessietimeout op door de bestanden hosts en hbase-site.xml te bewerken.

Hoe installeer je Apache HBase op Ubuntu in standalone-, pseudo-gedistribueerde en volledig gedistribueerde modi

Apache HBase is een gedistribueerd, kolomgeoriënteerde database die draait bovenop het Hadoop Distributed File System (HDFS). Voordat u begint, moet u ervoor zorgen dat u een ondersteunde applicatie hebt. Java De runtime is geïnstalleerd en JAVA_HOME is ingesteld; de pseudo-gedistribueerde en volledig gedistribueerde modi vereisen ook een werkende runtime. Hadoop installatie.

Apache HBase-installatiemodi

Apache HBase kan in drie modi worden geïnstalleerd. De kenmerken van deze modi worden hieronder vermeld.

1) Installatie in stand-alone modus (geen afhankelijkheid van het Hadoop-systeem)

  • Dit is de standaardmodus van HBase.
  • Het wordt uitgevoerd op het lokale bestandssysteem.
  • Het maakt geen gebruik van Hadoop HDFS.
  • Alleen de HMaster-daemon kan actief zijn.
  • Niet aanbevolen voor een productieomgeving.
  • Draait in één enkele JVM.

2) Installatie in pseudo-gedistribueerde modus (Hadoop-systeem met één knooppunt + HBase-installatie)

  • Het draait op Hadoop HDFS.
  • Alle daemons draaien op één enkele node.
  • Aanbevolen voor een productieomgeving.

3) Installatie in volledig gedistribueerde modus (Hadoop-omgeving met meerdere knooppunten + HBase-installatie)

  • Het draait op Hadoop HDFS.
  • Alle daemons draaien op alle knooppunten in het cluster.
  • Een echte aanrader voor een productieomgeving.

Raadpleeg deze informatie voor de installatie van Hadoop. Installatiehandleiding voor Hadoop.

De onderstaande schermafbeeldingen zijn gemaakt met HBase 1.1.2. De huidige stabiele versies zijn de HBase 2.5.x- en 2.6.x-series.Java 8 of 11), maar de installatiestappen en configuratiebestanden blijven in wezen hetzelfde.

Hoe HBase tar-bestand stabiele versie te downloaden

Stap 1) Ga naar de officiële Apache HBase downloadpagina Om HBase te downloaden, wordt de downloadpagina geopend zoals hieronder weergegeven.

Open de Apache HBase-downloadpagina in een browser om het release-tarball-bestand te downloaden.

Stap 2) Selecteer de stabiele versie zoals hieronder weergegeven, HBase 1.1.2.

Selecteer de stabiele HBase 1.1.2-release op de downloadpagina.

Stap 3) Klik op hbase-1.1.2-bin.tar.gz. Het tar-bestand wordt gedownload. Kopieer het tar-bestand naar de installatielocatie.

Klik op de link naar het binaire bestand hbase-1.1.2-bin.tar.gz om het tar-bestand te downloaden.

Hoe HBase te installeren in Ubuntu met standalone-modus

Hieronder vindt u een stapsgewijze handleiding voor de installatie van HBase in standalone-modus. Ubuntu:

Stap 1) Voer het onderstaande commando uit. Plaats hbase-1.1.2-bin.tar.gz in /home/hduser.

Stap 2) Pak het uit door het commando `$tar -xvf hbase-1.1.2-bin.tar.gz` uit te voeren. Hiermee wordt de inhoud uitgepakt en wordt de map `hbase-1.1.2` aangemaakt in de map `/home/hduser`.

Stap 3) Open hbase-env.sh zoals hieronder weergegeven en vermeld het JAVA_HOME-pad in de locatie, zoals hieronder te zien is.

Het bestand hbase-env.sh bewerken om het JAVA_HOME-pad in te stellen voor de standalone-modus.

Stap 4) Open het bestand ~/.bashrc en vermeld het HBASE_HOME-pad zoals hieronder weergegeven.

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

Het bijgewerkte ~/.bashrc-bestand met de HBASE_HOME-vermelding wordt hieronder weergegeven.

Het pad HBASE_HOME toevoegen aan het bashrc-bestand voor de standalone-modus.

Stap 5) Voeg eigenschappen toe aan het bestand. Open hbase-site.xml en plaats de volgende eigenschappen in het bestand.

hduser@ubuntu$ gedit hbase-site.xml (code zoals hieronder)

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

Het bestand hbase-site.xml werd geopend in gedit wordt hieronder getoond.

hbase-site.xml geopend in gedit met de zelfstandige rootdir- en ZooKeeper-eigenschappen

Hier plaatsen we twee eigenschappen:

  • Eén voor de HBase-hoofddirectory, en
  • De tweede is voor de gegevensmap die overeenkomt met Dierentuinmedewerker.

Alle HMaster- en ZooKeeper-activiteiten verwijzen naar dit hbase-site.xml-bestand.

Stap 6) Vermeld de IP-adressen. Open het hosts-bestand in de map /etc. en vermeld de IP-adressen zoals hieronder weergegeven.

Het bestand /etc/hosts bewerken om de IP-adressen van de machines in kaart te brengen.

Stap 7) Voer nu start-hbase.sh uit in de map hbase-1.1.1/bin zoals hieronder weergegeven. U kunt vervolgens met het commando jps controleren of HMaster actief is.

Uitvoer van het jps-commando, waaruit blijkt dat het HMaster-proces in zelfstandige modus draait.

Stap 8) Start de HBase-shell. De HBase-shell kan worden gestart met behulp van de volgende opdracht: hbase-shell Voer het commando in en het systeem zal de interactieve shellmodus starten, zoals te zien is in de onderstaande schermafbeelding. Eenmaal in de shellmodus kunnen we allerlei commando's uitvoeren.

De interactieve HBase-shellprompt is gestart met het commando hbase shell.

Voor de zelfstandige modus zijn geen Hadoop-daemons vereist om te starten. HBase kan onafhankelijk draaien.

HBase pseudo-gedistribueerde installatiemodus

Dit is een andere methode voor het installeren van Apache HBase, bekend als de pseudo-gedistribueerde installatiemodus. Hieronder volgen de stappen om HBase te installeren via de pseudo-gedistribueerde modus.

Stap 1) Plaats hbase-1.1.2-bin.tar.gz in /home/hduser.

Stap 2) Pak het uit door het commando `$tar -xvf hbase-1.1.2-bin.tar.gz` uit te voeren. Hiermee wordt de inhoud uitgepakt en wordt de map `hbase-1.1.2` aangemaakt in de map `/home/hduser`.

Stap 3) Open hbase-env.sh zoals hieronder weergegeven, vermeld het JAVA_HOME-pad en het pad naar de regioservers in de locatie, en exporteer de opdracht zoals hieronder weergegeven.

Het bestand hbase-env.sh bewerken met JAVA_HOME en het pad naar de regioservers voor de pseudo-gedistribueerde modus.

Stap 4) In deze stap openen we het bestand ~/.bashrc en vermelden we het pad HBASE_HOME zoals weergegeven in de onderstaande schermafbeelding.

Het instellen van het HBASE_HOME-pad in het bashrc-bestand voor pseudo-gedistribueerde modus

Stap 5) Open hbase-site.xml en voeg de onderstaande eigenschappen toe aan het bestand (zie onderstaande code).

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

Het hbase-site.xml-bestand met de pseudo-gedistribueerde eigenschappen wordt hieronder weergegeven.

hbase-site.xml met de pseudo-gedistribueerde HDFS- en ZooKeeper-eigenschappen

De resterende ZooKeeper-configuratie wordt hieronder weergegeven.

Vervolg van de hbase-site.xml ZooKeeper-configuratie voor pseudo-gedistribueerde modus

Elke eigenschap in het bestand speelt een specifieke rol:

  • De HBase-hoofddirectory instellen in de eigenschap hbase.rootdir.
  • Voor een gedistribueerde configuratie moet hbase.cluster.distributed op true worden ingesteld.
  • De ZooKeeper-quorumeigenschap moet hier worden ingesteld.
  • Replicatie wordt ingesteld in de eigenschap dfs.replication. Standaard stellen we de replicatie in op 1. In de volledig gedistribueerde modus zijn er meerdere dataknooppunten aanwezig, waardoor u de replicatie kunt verhogen door een waarde groter dan 1 in te stellen in de eigenschap dfs.replication.
  • De clientpoort moet worden vermeld in de eigenschap hbase.zookeeper.property.clientPort.
  • De ZooKeeper-gegevensmap kan worden opgegeven in de eigenschap hbase.zookeeper.property.dataDir.

Stap 6) Start eerst de Hadoop-daemons en start daarna de HBase-daemons zoals hieronder weergegeven. Start eerst de Hadoop-daemons met het commando ./start-all.sh, zoals hieronder weergegeven.

Het commando start-all.sh uitvoeren om de Hadoop-daemons te starten.

Start daarna de HBase-daemons met hbase-start.sh, zoals hieronder weergegeven.

De HBase-daemons starten met het script start-hbase.sh in pseudo-gedistribueerde modus.

Controleer nu de actieve processen met het commando jps, zoals hieronder weergegeven.

Uitvoer van het jps-commando met een lijst van de actieve Hadoop- en HBase-daemons.

HBase volledig gedistribueerde modusinstallatie

De volledig gedistribueerde modus breidt de pseudo-gedistribueerde configuratie uit naar een echt cluster.

  • Deze configuratie werkt in de Hadoop-clustermodus, waarbij meerdere knooppunten binnen het cluster worden aangemaakt en actief zijn.
  • De installatie verloopt op dezelfde manier als in de pseudo-gedistribueerde modus; het enige verschil is dat het over meerdere knooppunten wordt verdeeld.
  • De configuratiebestanden die worden genoemd in hbase-site.xml en hbase-env.sh zijn dezelfde als die in pseudo-modus worden genoemd.

Zorg er in de volledig gedistribueerde modus voor dat de Hadoop-versie op uw cluster overeenkomt met de Hadoop-bibliotheken die bij HBase zijn meegeleverd, zodat de daemons correct met elkaar communiceren.

Problemen met HBase-installatie oplossen

1) Probleemomschrijving: De masterserver wordt geïnitialiseerd, maar de regioservers worden niet geïnitialiseerd.

De communicatie tussen de Master en de regioservers verloopt via hun IP-adressen. De Master luistert naar regioservers die actief zijn of het IP-adres 127.0.0.1 hebben. Het IP-adres 127.0.0.1 is de localhost en verwijst naar de localhost van de Master-server zelf.

Oorzaak:

In de tweeledige communicatie tussen regioservers en de masterserver informeert de regioserver de masterserver continu dat zijn IP-adres 127.0.0.1 is.

Oplossing:

  • Verwijder het naamknooppunt van de masterserver uit de lokale hostvermelding in het hosts-bestand.
  • Locatie van het hosts-bestand: /etc/hosts.

Wat te veranderen:

Open /etc/hosts en ga naar deze locatie.

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

Wijzig de bovenstaande configuratie als volgt (verwijder de naam van de regioserver zoals hierboven gemarkeerd).

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Probleemomschrijving: Mijn adres: XYZ kon niet worden gevonden in de lijst met ZooKeeper-quorumservers.

Oorzaak:

  • De ZooKeeper-server kon niet starten en gaf een foutmelding met bijvoorbeeld .xyz in de servernaam.
  • HBase probeert een ZooKeeper-server op een machine te starten, maar tegelijkertijd kan de machine zichzelf niet vinden in de quorumconfiguratie die is vastgelegd in het bestand hbase.zookeeper.quorum.

Oplossing:

  • Vervang de hostnaam door de hostnaam die in het foutbericht wordt weergegeven.
  • Als u een DNS-server hebt, kunt u de volgende configuraties instellen in hbase-site.xml: hbase.zookeeper.dns.interface en hbase.zookeeper.dns.nameserver.

3) Probleemomschrijving: Een rootdirectory voor HBase aangemaakt via Hadoop DFS.

  • De Master zegt dat je het HBase-migratiescript moet uitvoeren.
  • Bij het uitvoeren daarvan geeft het HBase-migratiescript aan dat er geen bestanden in de hoofdmap aanwezig zijn.

Oorzaak:

  • Er is een nieuwe map voor HBase aangemaakt met behulp van het Hadoop Distributed File System.
  • HBase verwacht hier twee mogelijkheden:

1) De hoofdmap bestaat niet.

2) Er is eerder een actieve HBase-instantie geïnitialiseerd.

Oplossing:

  • Controleer of de hoofdmap van HBase momenteel niet bestaat of is geïnitialiseerd door een eerdere uitvoering van de HBase-instantie.
  • Volg deze stappen als onderdeel van de oplossing.

Stap 1) Gebruik Hadoop dfs om de HBase-hoofddirectory te verwijderen.

Stap 2) HBase maakt de directory zelf aan en initialiseert deze.

4) Probleemomschrijving: Gebeurtenissen met verlopen ZooKeeper-sessies

Oorzaak:

  • De HMaster- of HRegion-servers zijn afgesloten door uitzonderingen te genereren.
  • Als je de logbestanden bekijkt, kun je de daadwerkelijke uitzonderingen achterhalen die zijn opgetreden.

Het volgende toont de uitzondering die is opgetreden als gevolg van een verlopen ZooKeeper-gebeurtenis. De gemarkeerde gebeurtenissen zijn enkele van de uitzonderingen die in het logbestand zijn voorgekomen.

De code van de logbestanden wordt hieronder weergegeven:

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

Oplossing:

  • De standaard RAM-grootte is 1 GB. Voor langdurige importprocessen is het aan te raden meer dan 1 GB RAM te gebruiken.
  • Verhoog de sessietime-out voor ZooKeeper.
  • Om de sessietime-out van ZooKeeper te verlengen, wijzig je de volgende eigenschap in hbase-site.xml, dat zich in de map hbase/conf bevindt.
  • De standaard sessietime-out is 60 seconden. U kunt deze wijzigen naar 120 seconden, zoals hieronder beschreven.
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>

Veelgestelde vragen

HBase heeft een ondersteunde omgeving nodig. Java runtime met JAVA_HOME ingesteld. De pseudo-gedistribueerde en volledig gedistribueerde modi vereisen ook een actieve runtime. Hadoop HDFS cluster. De standalone-modus heeft slechts nodig. Java, omdat het gebruikmaakt van het lokale bestandssysteem en zijn eigen ZooKeeper-pakket bevat.

Niet voor de standalone-modus, die op het lokale bestandssysteem in een enkele JVM draait zonder Hadoop-daemons. De pseudo-gedistribueerde en volledig gedistribueerde modi vereisen wel Hadoop, omdat ze gegevens opslaan in HDFS en afhankelijk zijn van de NameNode en DataNodes.

Bewerk het bestand conf/hbase-env.sh en voeg de regel `export JAVA_HOME=/path/to/your/jdk` toe, die verwijst naar de rootmap van de JDK. HBase leest deze waarde bij het opstarten. Je kunt `export JAVA_HOME` ook toevoegen aan `~/.bashrc`, zodat de shell de JDK-rootmap kan vinden. Java wereldwijd.

Deze handleiding toont HBase 1.1.2, maar de huidige stabiele releases zijn HBase 2.5.x en 2.6.x, met 3.0 in bèta. Nieuwere versies vereisen... Java 8 of 11. De download-, configuratie- en opstartstappen blijven in principe hetzelfde.

Voer de opdracht jps uit en zoek naar het HMaster-proces, plus HRegionServer en HQuorumPeer in gedistribueerde modus. U kunt ook de webinterface van HBase Master openen of de opdracht status uitvoeren in de HBase Master-webinterface. hbase-shell om te bevestigen dat het cluster actief is.

Standaard luistert de HBase Master op poort 16000 met een webinterface op 16010, en elke Region Server gebruikt 16020 met een interface op 16030. ZooKeeper luistert op clientpoort 2181, die is ingesteld via hbase.zookeeper.property.clientPort.

AI-assistenten en machine learning-tools voor loganalyse scannen HBase- en ZooKeeper-logs, groeperen ze en leggen de hoofdoorzaak van fouten bloot, zoals verlopen sessies of quorumfouten. Ze suggereren configuratieverbeteringen, maar een engineer moet elke wijziging bevestigen voordat deze wordt doorgevoerd.

Ja. GitHub-copiloot Genereert concepten voor hbase-site.xml-fragmenten, hbase-env.sh-vermeldingen en opstartshellscripts op basis van een korte opmerking. RevBekijk de suggesties voor correcte eigenschapsnamen, paden en poorten voordat u ze uitvoert, omdat de gegenereerde configuratie naar verouderde standaardwaarden kan verwijzen.

Vat dit bericht samen met: