HBase - Architettura

In HBase, le tabelle sono suddivise in regioni e sono servite dai server regionali. Le regioni sono divise verticalmente per famiglie di colonne in "Stores". Gli archivi vengono salvati come file in HDFS. Di seguito è mostrata l'architettura di HBase.

Note: Il termine "negozio" viene utilizzato per le regioni per spiegare la struttura di archiviazione.

HBase ha tre componenti principali: la libreria client, un server master e server regionali. I server regionali possono essere aggiunti o rimossi secondo i requisiti.

MasterServer

Il server principale -

  • Assegna le regioni ai server della regione e utilizza Apache ZooKeeper per questa attività.

  • Gestisce il bilanciamento del carico delle regioni tra i server della regione. Scarica i server occupati e sposta le regioni su server meno occupati.

  • Mantiene lo stato del cluster negoziando il bilanciamento del carico.

  • È responsabile delle modifiche allo schema e di altre operazioni sui metadati come la creazione di tabelle e famiglie di colonne.

Regioni

Le regioni non sono altro che tabelle suddivise e distribuite nei server regionali.

Server regionale

I server regionali hanno regioni che:

  • Comunica con il cliente e gestisci le operazioni relative ai dati.
  • Gestisci le richieste di lettura e scrittura per tutte le regioni sottostanti.
  • Decidi la dimensione della regione seguendo le soglie delle dimensioni della regione.

Quando diamo uno sguardo più approfondito al server della regione, contiene regioni e archivi come mostrato di seguito:

L'archivio contiene archivio di memoria e HFiles. Memstore è proprio come una memoria cache. Tutto ciò che è inserito nell'HBase viene inizialmente memorizzato qui. Successivamente, i dati vengono trasferiti e salvati in Hfile come blocchi e il memstore viene svuotato.

Zookeeper

  • Zookeeper è un progetto open source che fornisce servizi come il mantenimento delle informazioni di configurazione, la denominazione, la sincronizzazione distribuita, ecc.

  • Zookeeper ha nodi temporanei che rappresentano diversi server regionali. I server principali utilizzano questi nodi per rilevare i server disponibili.

  • Oltre alla disponibilità, i nodi vengono utilizzati anche per tenere traccia degli errori del server o delle partizioni di rete.

  • I client comunicano con i server regionali tramite guardiano dello zoo.

  • In modalità pseudo e standalone, HBase stesso si prenderà cura del guardiano dello zoo.