Installazione di HBase su Ubuntu

Sommario:

Anonim

In questo tutorial imparerai,

  • Modalità di installazione di Apache HBase
  • Come scaricare la versione stabile del file tar Hbase
  • Hbase - Installazione in modalità standalone
  • Hbase - Modalità di installazione pseudo distribuita
  • Hbase - Installazione in modalità completamente distribuita
  • Risoluzione dei problemi di installazione di HBase

Modalità di installazione di Apache HBase

Apache HBase può essere installato in tre modalità. Le caratteristiche di queste modalità sono menzionate di seguito.

1) Installazione in modalità standalone (nessuna dipendenza dal sistema Hadoop)

  • Questa è la modalità predefinita di HBase
  • Funziona contro il file system locale
  • Non usa Hadoop HDFS
  • Solo il daemon HMaster può essere eseguito
  • Non consigliato per l'ambiente di produzione
  • Funziona in una singola JVM

2) Installazione in modalità pseudo-distribuita (sistema Hadoop a nodo singolo + installazione HBase)

  • Funziona su Hadoop HDFS
  • Tutti i demoni vengono eseguiti in un singolo nodo
  • Consiglia per ambiente di produzione

3) Installazione in modalità completamente distribuita (ambiente MultinodeHadoop + installazione HBase)

  • Funziona su Hadoop HDFS
  • Tutti i daemon verranno eseguiti su tutti i nodi presenti nel cluster
  • Altamente raccomandato per l'ambiente di produzione

Per l'installazione di Hadoop, fare riferimento a questo URL qui

Come scaricare la versione stabile del file tar Hbase

Passaggio 1) Vai al collegamento qui per scaricare HBase. Si aprirà una pagina web come mostrato di seguito.

Passaggio 2) Selezionare la versione stabile come mostrato di seguito versione 1.1.2

Passaggio 3) Fare clic su hbase-1.1.2-bin.tar.gz. Scaricherà il file tar. Copia il file tar in una posizione di installazione.

Hbase - Installazione in modalità standalone:

L'installazione viene eseguita su Ubuntu con Hadoop già installato.

Passaggio 1) Posiziona hbase-1.1.2-bin.tar.gz in / home / hduser

Passaggio 2) Decomprimilo eseguendo il comando $ tar -xvf hbase-1.1.2-bin.tar.gz . Decomprimerà il contenuto e creerà hbase-1.1.2 nella posizione / home / hduser

Passaggio 3) Apri hbase-env.sh come sotto e menziona il percorso JAVA_HOME nella posizione.

Passaggio 4) Apri il file ~ / .bashrc e menziona il percorso HBASE_HOME come mostrato di seguito

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

Passaggio 5) Apri hbase-site.xml e inserisci le seguenti proprietà all'interno del file

hduser @ ubuntu $ gedit hbase-site.xml (codice come sotto)

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

Qui stiamo posizionando due proprietà

  • Uno per la directory radice HBase e
  • Il secondo per la directory dei dati corrisponde a ZooKeeper.

Tutte le attività di HMaster e ZooKeeper fanno riferimento a questo hbase-site.xml.

Passaggio 6) Apri il file hosts presente in / etc. posizione e menzionare gli IP come mostrato di seguito.

Passaggio 7) Ora esegui Start-hbase.sh nella posizione hbase-1.1.1 / bin come mostrato di seguito.

E possiamo controllare con il comando jps per vedere che HMaster è in esecuzione o meno.

Step8) La shell HBase può iniziare usando "hbase shell" e entrerà in modalità shell interattiva come mostrato nell'immagine sottostante. Una volta entrato in modalità shell, possiamo eseguire tutti i tipi di comandi.

La modalità standalone non richiede l'avvio dei daemon Hadoop. HBase può essere eseguito in modo indipendente.

Hbase - Modalità di installazione pseudo distribuita:

Questo è un altro metodo per l'installazione di Apache Hbase, noto come modalità di installazione pseudo distribuita. Di seguito sono riportati i passaggi per installare HBase tramite questo metodo.

Passaggio 1) Posiziona hbase-1.1.2-bin.tar.gz in / home / hduser

Passaggio 2) Decomprimilo eseguendo il comando $ tar -xvf hbase-1.1.2-bin.tar.gz . Decomprimerà il contenuto e creerà hbase-1.1.2 nella posizione / home / hduser

Passaggio 3) Apri hbase-env.sh come segue e menziona il percorso JAVA_HOME e il percorso dei server regionali nella posizione ed esporta il comando come mostrato

Passaggio 4) In questo passaggio, apriremo il file ~ / .bashrc e menzioneremo il percorso HBASE_HOME come mostrato nella schermata.

Passaggio 5) Apri HBase-site.xml e menziona le proprietà seguenti nel file (codice come sotto)

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. Impostazione della directory root Hbase in questa proprietà
  2. Per la configurazione distribuita dobbiamo impostare questa proprietà
  3. La proprietà del quorum di ZooKeeper dovrebbe essere impostata qui
  4. Configurazione della replica eseguita in questa proprietà. Per impostazione predefinita, stiamo posizionando la replica come 1.

    Nella modalità completamente distribuita, sono presenti più nodi di dati in modo da poter aumentare la replica inserendo più di 1 valore nella proprietà dfs.replication

  5. La porta del client dovrebbe essere menzionata in questa proprietà
  6. La directory dei dati di ZooKeeper può essere menzionata in questa proprietà

Passaggio 6) Avvia prima i daemon Hadoop e successivamente i daemon HBase come mostrato di seguito

Qui prima devi avviare i demoni Hadoop usando il comando "./start-all.sh" come mostrato di seguito.

Dopo aver avviato i daemon Hbase da hbase-start.sh

Ora controlla jps

Hbase - Installazione in modalità completamente distribuita: -

  • Questa configurazione funzionerà in modalità cluster Hadoop in cui più nodi si generano nel cluster e sono in esecuzione.
  • L'installazione è la stessa della modalità pseudo distribuita; l'unica differenza è che verrà generato su più nodi.
  • I file di configurazione menzionati in HBase-site.xml e hbase-env.sh sono gli stessi menzionati in modalità pseudo.

Risoluzione dei problemi di installazione di HBase

1) Dichiarazione del problema: il server principale viene inizializzato ma i server regionali non vengono inizializzati

La comunicazione tra server master e regionali tramite i loro indirizzi IP. Come il modo in cui Master ascolterà che i server della regione sono in esecuzione o che hanno l'indirizzo IP 127.0.0.1. L'indirizzo IP 127.0.0.1 che è l'host locale e si risolve nell'host locale del server master.

Causa:

Nella doppia comunicazione tra server regionali e master, il server regionale informa continuamente il server master sui loro indirizzi IP 127.0.0.1.

Soluzione:

  • È necessario rimuovere il nodo del nome del server master dall'host locale presente nel file hosts
  • Posizione file host / etc / hosts

Cosa cambiare:

Apri /etc./hosts e vai in questa posizione

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

Modifica la configurazione di cui sopra come sotto (rimuovi il nome del server della regione come evidenziato sopra)

127.0.0.1 localhost.localdomainlocalhost: : 1 localhost3.localdomain3 localdomain3

2) Dichiarazione del problema: Impossibile trovare il mio indirizzo: XYZ nell'elenco dei server del quorum di Zookeeper

Causa:

  • Il server ZooKeeper non è stato in grado di avviarsi e genererà un errore come .xyz nel nome del server.
  • HBase tenta di avviare un server ZooKeeper su qualche macchina ma allo stesso tempo la macchina non è in grado di trovare da sola la configurazione quorum cioè presente nel file di configurazione HBase.zookeeper.quorum .

Soluzione:-

  • È necessario sostituire il nome host con un nome host presentato nel messaggio di errore
  • Supponiamo di avere un server DNS, quindi possiamo impostare le seguenti configurazioni in HBase-site.xml.
    • HBase.zookeeper.dns.interface
    • HBase.zookeeper.dns.nameserver

3) Dichiarazione del problema: creazione della directory principale per HBase tramite Hadoop DFS

  • Il maestro dice che è necessario eseguire lo script delle migrazioni HBase.
  • Dopo averlo eseguito , lo script di migrazione HBase risponde come nessun file nella directory principale .

Causa:

  • Creazione di una nuova directory per HBase utilizzando il file system distribuito Hadoop
  • Qui HBase si aspetta due possibilità

1) Directory principale inesistente

2) HBase precedente istanza in esecuzione inizializzata prima

Soluzione:

  • Rendi conforme la directory radice HBase attualmente non esiste o è stata inizializzata da una precedente esecuzione dell'istanza HBase.
  • Come parte della soluzione, dobbiamo seguire i passaggi

Passaggio 1) Utilizzo di Hadoop dfs per eliminare la directory principale HBase

Passaggio 2) HBase crea e inizializza la directory da solo

4) Dichiarazione del problema: eventi scaduti della sessione Zookeeper

Causa:

  • I server HMaster o HRegion si chiudono generando eccezioni
  • Se osserviamo i log, possiamo scoprire le eccezioni effettive che hanno generato

Di seguito viene mostrata l'eccezione generata a causa dell'evento scaduto di Zookeeper. Gli eventi evidenziati sono alcune delle eccezioni verificatesi nel file di registro

Codice dei file di registro come mostrato di seguito:

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

Soluzione:

  • La dimensione predefinita della RAM è 1 GB. Per eseguire importazioni di lunga durata, abbiamo mantenuto la capacità della RAM superiore a 1 GB.
  • Devo aumentare il timeout della sessione per Zookeeper.
  • Per aumentare il tempo di sessione fuori da Zookeeper, dobbiamo modificare la seguente proprietà in "hbase-site.xml" presente nel percorso della cartella hbase / conf.
  • Il timeout predefinito della sessione è di 60 secondi. Possiamo cambiarlo a 120 secondi come indicato di seguito
 zookeeper.session.timeout 1200000
 hbase.zookeeper.property.tickTime 6000