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.

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.
Stap 2) Selecteer de stabiele versie zoals hieronder weergegeven, HBase 1.1.2.
Stap 3) Klik op hbase-1.1.2-bin.tar.gz. Het tar-bestand wordt gedownload. Kopieer het tar-bestand naar de installatielocatie.
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.
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.
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.
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.
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.
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.
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.
Stap 4) In deze stap openen we het bestand ~/.bashrc en vermelden we het pad HBASE_HOME zoals weergegeven in de onderstaande schermafbeelding.
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.
De resterende ZooKeeper-configuratie wordt hieronder weergegeven.
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.
Start daarna de HBase-daemons met hbase-start.sh, zoals hieronder weergegeven.
Controleer nu de actieve processen met het commando jps, zoals hieronder weergegeven.
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>
















