In deze tutorial leer je,
- Apache HBase-installatiemodi
- Hoe de stabiele versie van het Hbase tar-bestand te downloaden
- Hbase - Installatie in zelfstandige modus
- Hbase - Pseudo-gedistribueerde installatiemodus
- Hbase - Installatie in volledig gedistribueerde modus
- HBase-installatieproblemen oplossen
Apache HBase-installatiemodi
Apache HBase kan in drie modi worden geïnstalleerd. De kenmerken van deze modi worden hieronder vermeld.
1) Installatie in zelfstandige modus (geen afhankelijkheid van Hadoop-systeem)
- Dit is de standaardmodus van HBase
- Het werkt tegen het lokale bestandssysteem
- Het maakt geen gebruik van Hadoop HDFS
- Alleen de HMaster-daemon kan worden uitgevoerd
- Niet aanbevolen voor productieomgeving
- Draait in enkele JVM
2) Installatie in pseudo-gedistribueerde modus (Hadoop-systeem met één knooppunt + HBase-installatie)
- Het draait op Hadoop HDFS
- Alle Daemons draaien in één knooppunt
- Aanbevelen voor productieomgeving
3) Installatie in volledig gedistribueerde modus (MultinodeHadoop-omgeving + HBase-installatie)
- Het draait op Hadoop HDFS
- Alle daemons gaan over alle knooppunten in het cluster lopen
- Sterk aanbevolen voor productieomgeving
Voor Hadoop-installatie Verwijs deze URL hier
Hoe de stabiele versie van het Hbase tar-bestand te downloaden
Stap 1) Ga naar de link hier om HBase te downloaden. Er wordt een webpagina geopend zoals hieronder weergegeven.
Stap 2) Selecteer een stabiele versie zoals hieronder wordt weergegeven 1.1.2-versie
Stap 3) Klik op hbase-1.1.2-bin.tar.gz. Het zal tar-bestand downloaden. Kopieer het tar-bestand naar een installatielocatie.
Hbase - Installatie in zelfstandige modus:
De installatie wordt uitgevoerd op Ubuntu terwijl Hadoop al is geïnstalleerd.
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 . Het zal de inhoud uitpakken, en het zal hbase-1.1.2 aanmaken op de locatie / home / hduser
Stap 3) Open hbase-env.sh zoals hieronder en vermeld het JAVA_HOME-pad op de locatie.
Stap 4) Open het ~ / .bashrc-bestand en vermeld het HBASE_HOME-pad zoals hieronder weergegeven
exporteer HBASE_HOME = / home / hduser / hbase-1.1.1 exporteer PATH = $ PATH: $ HBASE_HOME / bin |
Stap 5) Open hbase-site.xml en plaats de volgende eigenschappen in het bestand
hduser @ ubuntu $ gedit hbase-site.xml (code zoals hieronder)
hbase.rootdir file:///home/hduser/HBASE/hbase hbase.zookeeper.property.dataDir /home/hduser/HBASE/zookeeper
Hier plaatsen we twee eigendommen
- Een voor HBase-hoofdmap en
- De tweede voor de gegevensdirectory komt overeen met ZooKeeper.
Alle HMaster- en ZooKeeper-activiteiten verwijzen naar deze hbase-site.xml.
Stap 6) Open het hosts-bestand dat aanwezig is in / etc. locatie en vermeld de IP's zoals hieronder weergegeven.
Stap 7) Voer nu Start-hbase.sh uit op de locatie hbase-1.1.1 / bin, zoals hieronder wordt weergegeven.
En we kunnen met het jps-commando controleren of HMaster actief is of niet.
Stap 8 ) De HBase-shell kan starten door "hbase-shell" te gebruiken en het zal in interactieve shell-modus gaan zoals weergegeven in de onderstaande schermafbeelding. Zodra het in de shell-modus komt, kunnen we alle soorten opdrachten uitvoeren.
De stand-alone modus vereist geen Hadoop-daemons om te starten. HBase kan onafhankelijk worden uitgevoerd.
Hbase - Pseudo-gedistribueerde installatiemodus:
Dit is een andere methode voor Apache Hbase-installatie, bekend als de pseudo-gedistribueerde installatiemodus. Hieronder staan de stappen om HBase via deze methode te installeren.
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 . Het zal de inhoud uitpakken, en het zal hbase-1.1.2 aanmaken op de locatie / home / hduser
Stap 3) Open hbase-env.sh zoals hieronder en vermeld het JAVA_HOME-pad en het pad van de regioservers op de locatie en exporteer de opdracht zoals weergegeven
Stap 4) In deze stap gaan we het ~ / .bashrc-bestand openen en het HBASE_HOME-pad vermelden zoals weergegeven in de schermafbeelding.
Stap 5) Open HBase-site.xml en vermeld de onderstaande eigenschappen in het bestand. (Code zoals hieronder)
hbase.rootdir hdfs://localhost:9000/hbase hbase.cluster.distributed true hbase.zookeeper.quorum localhost dfs.replication 1 hbase.zookeeper.property.clientPort 2181 hbase.zookeeper.property.dataDir /home/hduser/hbase/zookeeper
- Hbase-hoofdmap instellen in deze eigenschap
- Voor een gedistribueerde opstelling moeten we deze eigenschap instellen
- De eigenschap ZooKeeper-quorum moet hier worden ingesteld
- Replicatie ingesteld in deze eigenschap. Standaard plaatsen we replicatie als 1.
In de volledig gedistribueerde modus zijn er meerdere gegevensknooppunten aanwezig, zodat we de replicatie kunnen verhogen door meer dan 1 waarde in de eigenschap dfs.replication te plaatsen
- De clientpoort moet in deze eigenschap worden vermeld
- De gegevensdirectory van ZooKeeper kan in deze eigenschap worden vermeld
Stap 6) Start eerst Hadoop-daemons en start daarna HBase-daemons zoals hieronder weergegeven
Hier moet u eerst Hadoop-daemons starten met de opdracht "./start-all.sh", zoals hieronder wordt weergegeven.
Na het starten van Hbase-daemons door hbase-start.sh
Controleer nu jps
Hbase - Installatie in volledig gedistribueerde modus: -
- Deze opstelling werkt in de Hadoop-clustermodus, waar meerdere knooppunten over het cluster spawnen en actief zijn.
- De installatie is hetzelfde als de pseudo-gedistribueerde modus; het enige verschil is dat het over meerdere knooppunten zal spawnen.
- De configuratiebestanden die worden genoemd in HBase-site.xml en hbase-env.sh zijn dezelfde als vermeld in de pseudomodus.
HBase-installatieproblemen oplossen
1) Probleemstelling: de masterserver wordt geïnitialiseerd, maar regioservers worden niet geïnitialiseerd
De communicatie tussen master- en regioservers via hun IP-adressen. Zoals de manier waarop Master gaat luisteren dat regioservers draaien of het IP-adres 127.0.0.1 hebben. Het IP-adres 127.0.0.1 dat de lokale host is en wordt omgezet naar de eigen lokale host van de masterserver.
Oorzaak:
Bij dubbele communicatie tussen regioservers en master, informeert de regioserver de masterserver continu over hun IP-adressen 127.0.0.1.
Oplossing:
- Moet het knooppunt van de hoofdservernaam verwijderen van de lokale host die aanwezig is in het hosts-bestand
- Locatie van hostbestand / 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 zoals hieronder (verwijder de naam van de regioserver zoals hierboven aangegeven)
127.0.0.1 localhost.localdomainlocalhost: : 1 localhost3.localdomain3 localdomain3
2) Probleemstelling: Ik kon mijn adres: XYZ niet vinden in de lijst met Zookeeper-quorumservers
Oorzaak:
- ZooKeeper-server kon niet starten en het genereert een fout zoals .xyz in de naam van de server.
- HBase probeert een ZooKeeper-server op een computer te starten, maar tegelijkertijd kan de machine niet de quorumconfiguratie vinden, dwz aanwezig in het HBase.zookeeper.quorum- configuratiebestand.
Oplossing:-
- Moet de hostnaam vervangen door een hostnaam die in het foutbericht wordt weergegeven
- Stel dat we een DNS-server hebben, dan kunnen we de onderstaande configuraties instellen in HBase-site.xml.
- HBase.zookeeper.dns.interface
- HBase.zookeeper.dns.nameserver
3) Probleemstelling: Root Directory gemaakt voor HBase via Hadoop DFS
- Master zegt dat u het HBase-migratiescript moet uitvoeren.
- Als u dat uitvoert , reageert het HBase-migratiescript als geen bestanden in de hoofdmap .
Oorzaak:
- Creëren van een nieuwe map voor HBase met behulp van het Hadoop Distributed-bestandssysteem
- Hier verwacht HBase twee mogelijkheden
1) Root-directory bestaat niet
2) HBase vorige actieve instantie die eerder is geïnitialiseerd
Oplossing:
- Zorg ervoor dat de HBase-hoofdmap momenteel niet bestaat of is geïnitialiseerd door een eerdere uitvoering van HBase-instantie.
- Als onderdeel van de oplossing moeten we stappen volgen
Stap 1) Hadoop dfs gebruiken om de HBase-hoofdmap te verwijderen
Stap 2) HBase maakt en initialiseert de directory zelf
4) Probleemstelling: evenementen van de Zookeeper-sessie verlopen
Oorzaak:
- HMaster- of HRegion-servers worden afgesloten door uitzonderingen te genereren
- Als we logboeken observeren, kunnen we de feitelijke uitzonderingen achterhalen die zijn opgetreden
Het volgende toont de uitzondering die wordt gegenereerd vanwege de verlopen gebeurtenis van Zookeeper. De gemarkeerde gebeurtenissen zijn enkele van de uitzonderingen die in het logboekbestand zijn opgetreden
Logboekbestanden code zoals hieronder weergegeven:
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
Oplossing:
- De standaard RAM-grootte is 1 GB. Voor het uitvoeren van langdurige importen hebben we de RAM-capaciteit van meer dan 1 GB behouden.
- Moet de sessietime-out voor Zookeeper verlengen.
- Om de sessietime-out van Zookeeper te verlengen, moeten we de volgende eigenschap in "hbase-site.xml" wijzigen die aanwezig is in het hbase / conf-mappad.
- De standaard sessietime-out is 60 seconden. We kunnen het wijzigen in 120 seconden zoals hieronder vermeld
zookeeper.session.timeout 1200000 hbase.zookeeper.property.tickTime 6000