Architettura, componenti, modello di dati e casi d'uso di HBase

Sommario:

Anonim

Meccanismo di memorizzazione in HBase

HBase è un database orientato alle colonne e i dati vengono archiviati in tabelle. Le tabelle sono ordinate per RowId. Come mostrato di seguito, HBase ha RowId, che è la raccolta di diverse famiglie di colonne presenti nella tabella.

Le famiglie di colonne presenti nello schema sono coppie chiave-valore. Se osserviamo in dettaglio ogni famiglia di colonne con più numeri di colonne. I valori della colonna archiviati nella memoria del disco. Ogni cella della tabella ha i propri metadati come timestamp e altre informazioni.

Meccanismo di memorizzazione in HBase

Venendo a HBase, i seguenti sono i termini chiave che rappresentano lo schema della tabella

  • Tabella : raccolta di righe presenti.
  • Riga : raccolta di famiglie di colonne.
  • Famiglia di colonne: raccolta di colonne.
  • Colonna : raccolta di coppie chiave-valore.
  • Namespace : raggruppamento logico di tabelle.
  • Cella : una tupla {riga, colonna, versione} specifica esattamente una definizione di cella in HBase.

In questo tutorial imparerai,

  • Meccanismo di memorizzazione in HBase
  • HBase Data Model
  • Architettura HBase e suoi componenti importanti
  • Spiegazione dei dati di lettura e scrittura HBase
  • Casi d'uso di HBase
  • HBASE contro HDFS

Archivi orientati a colonne vs archivi orientati a righe

Gli archivi orientati a colonne e righe differiscono nel meccanismo di archiviazione. Come tutti sappiamo, i modelli relazionali tradizionali memorizzano i dati in termini di formato basato su righe come in termini di righe di dati. Gli archivi orientati alle colonne memorizzano le tabelle di dati in termini di colonne e famiglie di colonne.

La tabella seguente fornisce alcune differenze chiave tra questi due archivi

Database orientato alle colonne Database orientato alle righe
  • Quando si tratta di elaborare e analizzare i dati, utilizziamo questo approccio. Come l' elaborazione analitica in linea e le sue applicazioni.
  • I processi transazionali in linea come i domini bancari e finanziari utilizzano questo approccio.
  • La quantità di dati che è in grado di memorizzare in questo modello è molto grande in termini di petabyte
  • È progettato per un numero limitato di righe e colonne.

HBase Data Model

HBase Data Model è un insieme di componenti costituito da tabelle, righe, famiglie di colonne, celle, colonne e versioni. Le tabelle HBase contengono famiglie di colonne e righe con elementi definiti come chiavi primarie. Una colonna nella tabella del modello di dati HBase rappresenta gli attributi degli oggetti.

HBase Data Model è costituito dai seguenti elementi,

  • Set di tavoli
  • Ogni tabella con famiglie di colonne e righe
  • Ogni tabella deve avere un elemento definito come chiave primaria.
  • La chiave di riga funge da chiave primaria in HBase.
  • Qualsiasi accesso alle tabelle HBase utilizza questa chiave primaria
  • Ogni colonna presente in HBase denota l'attributo corrispondente all'oggetto

Architettura HBase e suoi componenti importanti

Di seguito è riportato un architrecutre dettagliato di HBase con componenti:

Diagramma dell'architettura HBase

L'architettura HBase è costituita principalmente da quattro componenti

  • HMaster
  • HRegionserver
  • HRegions
  • Zookeeper
  • HDFS

HMaster:

HMaster in HBase è l'implementazione di un server Master in architettura HBase. Funge da agente di monitoraggio per monitorare tutte le istanze di Region Server presenti nel cluster e funge da interfaccia per tutte le modifiche ai metadati. In un ambiente cluster distribuito, Master viene eseguito su NameNode. Master esegue diversi thread in background.

I seguenti sono ruoli importanti svolti da HMaster in HBase.

  • Svolge un ruolo fondamentale in termini di prestazioni e mantenimento dei nodi nel cluster.
  • HMaster fornisce prestazioni di amministrazione e distribuisce servizi a diversi server regionali.
  • HMaster assegna le regioni ai server della regione.
  • HMaster ha funzionalità come il controllo del bilanciamento del carico e il failover per gestire il carico sui nodi presenti nel cluster.
  • Quando un client desidera modificare uno schema e modificare qualsiasi operazione sui metadati, HMaster si assume la responsabilità di queste operazioni.

Alcuni dei metodi esposti da HMaster Interface sono principalmente metodi orientati ai metadati.

  • Tabella (createTable, removeTable, abilita, disabilita)
  • ColumnFamily (aggiungi colonna, modifica colonna)
  • Regione (sposta, assegna)

Il client comunica in modo bidirezionale sia con HMaster che con ZooKeeper. Per le operazioni di lettura e scrittura, contatta direttamente con i server HRegion. HMaster assegna le regioni ai server della regione e, a sua volta, controlla lo stato di integrità dei server della regione.

Nell'intera architettura, abbiamo più server regionali. Hlog presente nei server regionali che memorizzeranno tutti i file di registro.

Server delle regioni HBase:

Quando HBase Region Server riceve richieste di scrittura e lettura dal client, assegna la richiesta a una regione specifica, dove risiede la famiglia di colonne effettiva. Tuttavia, il client può contattare direttamente i server HRegion, non è necessaria l'autorizzazione obbligatoria HMaster per il client per quanto riguarda la comunicazione con i server HRegion. Il client richiede l'aiuto di HMaster quando sono richieste operazioni relative ai metadati e alle modifiche allo schema.

HRegionServer è l'implementazione del server regionale. È responsabile della fornitura e della gestione delle regioni o dei dati presenti in un cluster distribuito. I server della regione vengono eseguiti sui nodi di dati presenti nel cluster Hadoop.

HMaster può entrare in contatto con più server HRegion ed esegue le seguenti funzioni.

  • Ospitare e gestire le regioni
  • Suddivisione automatica delle regioni
  • Gestione delle richieste di lettura e scrittura
  • Comunicare direttamente con il cliente

Regioni HBase:

Le regioni HR sono gli elementi di base della costruzione del cluster HBase che consiste nella distribuzione di tabelle e sono costituite da famiglie di colonne. Contiene più archivi, uno per ogni famiglia di colonne. Si compone principalmente di due componenti, che sono Memstore e Hfile.

ZooKeeper:

HBase Zookeeper è un server di monitoraggio centralizzato che conserva le informazioni di configurazione e fornisce la sincronizzazione distribuita. La sincronizzazione distribuita consiste nell'accesso alle applicazioni distribuite in esecuzione nel cluster con la responsabilità di fornire servizi di coordinamento tra i nodi. Se il client desidera comunicare con le regioni, il client del server deve prima avvicinarsi a ZooKeeper.

È un progetto open source e fornisce tanti servizi importanti.

Servizi forniti da ZooKeeper

  • Mantiene le informazioni di configurazione
  • Fornisce la sincronizzazione distribuita
  • Creazione della comunicazione client con i server regionali
  • Fornisce nodi temporanei per i quali rappresentano server regionali diversi
  • Usabilità dei server master dei nodi temporanei per scoprire i server disponibili nel cluster
  • Per tenere traccia degli errori del server e delle partizioni di rete

I nodi master e slave HBase (server regionali) si sono registrati con ZooKeeper. Il client deve accedere alla configurazione del quorum ZK (zookeeper) per connettersi con i server master e regionali.

Durante un guasto dei nodi presenti nel cluster HBase, ZKquoram attiverà messaggi di errore e inizierà a riparare i nodi guasti.

HDFS:

HDFS è un file system distribuito Hadoop, come suggerisce il nome, fornisce un ambiente distribuito per l'archiviazione ed è un file system progettato in modo da funzionare su hardware comune. Memorizza ogni file in più blocchi e per mantenere la tolleranza agli errori, i blocchi vengono replicati su un cluster Hadoop.

HDFS fornisce un alto grado di tolleranza ai guasti e funziona su hardware economico. Aggiungendo nodi al cluster ed eseguendo l'elaborazione e l'archiviazione utilizzando l'hardware di base economico, darà al cliente risultati migliori rispetto a quello esistente.

Qui, i dati archiviati in ogni blocco si replicano in 3 nodi qualsiasi nel caso in cui qualsiasi nodo si interrompa non ci sarà alcuna perdita di dati, avrà un adeguato meccanismo di ripristino del backup.

HDFS entra in contatto con i componenti HBase e memorizza una grande quantità di dati in modo distribuito.

Spiegazione dei dati di lettura e scrittura HBase

Le operazioni di lettura e scrittura dal client in Hfile possono essere mostrate nel diagramma seguente.

Passaggio 1) Il client desidera scrivere i dati e a sua volta comunica prima con il server Regions e poi con le regioni

Passaggio 2) Regioni che contattano memstore per l'archiviazione associata alla famiglia di colonne

Passaggio 3) I primi dati vengono archiviati in Memstore, dove i dati vengono ordinati e successivamente vengono scaricati in HFile. Il motivo principale per utilizzare Memstore è memorizzare i dati in un file system distribuito basato su Row Key. Memstore verrà inserito nella memoria principale del server regionale mentre i file HF vengono scritti in HDFS.

Passaggio 4) Il cliente desidera leggere i dati dalle regioni

Passaggio 5) A sua volta, il Cliente può avere accesso diretto all'archivio Mem e può richiedere dati.

Passaggio 6) Il client si avvicina a HFiles per ottenere i dati. I dati vengono recuperati e recuperati dal Cliente.

Memstore conserva le modifiche in memoria del negozio. La gerarchia degli oggetti nelle regioni HBase è come mostrato dall'alto verso il basso nella tabella sottostante.

tavolo Tabella HBase presente nel cluster HBase
Regione HRegions per le tabelle presentate
Negozio Memorizza per ColumnFamily per ogni regione per la tabella
Memstore
  • Memstore per ogni negozio per ogni regione per il tavolo
  • Ordina i dati prima di scaricarli in HFiles
  • Le prestazioni di scrittura e lettura aumenteranno a causa dell'ordinamento
StoreFile StoreFiles per ogni negozio per ogni regione per la tabella
Bloccare Blocchi presenti all'interno di StoreFiles

Casi d'uso di HBase

Di seguito sono riportati esempi di casi d'uso di HBase con una spiegazione dettagliata della soluzione che fornisce a vari problemi tecnici

Dichiarazione problema Soluzione
L'industria delle telecomunicazioni deve affrontare le seguenti sfide tecniche
  • Archiviazione di miliardi di record di registro CDR (registrazione dettagliata delle chiamate) generati dal dominio delle telecomunicazioni
  • Fornire accesso in tempo reale ai registri CDR e alle informazioni di fatturazione dei clienti
  • Fornire una soluzione conveniente rispetto ai sistemi di database tradizionali
HBase viene utilizzato per archiviare miliardi di righe di record di chiamate dettagliati. Se 20 TB di dati vengono aggiunti al mese al database RDBMS esistente, le prestazioni si deteriorano. Per gestire una grande quantità di dati in questo caso d'uso, HBase è la soluzione migliore. HBase esegue query veloci e visualizza i record.
Il settore bancario genera milioni di record su base giornaliera. Oltre a ciò, il settore bancario necessita anche di una soluzione di analisi in grado di rilevare le frodi nelle transazioni di denaro Per archiviare, elaborare e aggiornare grandi volumi di dati ed eseguire analisi, una soluzione ideale è: HBase integrato con diversi componenti dell'ecosistema Hadoop.

A parte questo, HBase può essere utilizzato

  • Ogni volta che è necessario scrivere applicazioni pesanti.
  • Esecuzione di analisi dei registri online e generazione di rapporti di conformità.

HBase contro HDFS

HBase funziona su HDFS e Hadoop. Alcune differenze fondamentali tra HDFS e HBase riguardano le operazioni e l'elaborazione dei dati.

HBASE

HDFS

  • Operazioni a bassa latenza
  • Operazioni ad alta latenza
  • Letture e scritture casuali
  • Scrivi una volta Leggi molte volte
  • Accesso tramite comandi shell, API client in Java, REST, Avro o Thrift
  • Accesso principalmente tramite lavori MR (Map Reduce)
  • L'archiviazione e l'elaborazione possono essere eseguite entrambe
  • È solo per le aree di stoccaggio

Alcune tipiche applicazioni industriali IT utilizzano le operazioni HBase insieme a Hadoop. Le applicazioni includono dati di borsa, operazioni di dati bancari in linea e l'elaborazione Hbase è il metodo di soluzione più adatto.

Sommario

Hbase è uno dei database distribuiti NoSql orientato alle colonne disponibile in Apache Foundation. HBase offre maggiori prestazioni per il recupero di meno record anziché Hadoop o Hive. È molto facile cercare un dato valore di input perché supporta l'indicizzazione, le transazioni e l'aggiornamento.

Possiamo eseguire analisi in tempo reale online utilizzando Hbase integrato con l'ecosistema Hadoop. Ha uno sharding automatico e configurabile per set di dati o tabelle e fornisce API riposanti per eseguire i lavori MapReduce.