Panoramica dell'architettura di archiviazione HBase



L'architettura HBase Storage comprende numerosi componenti. Diamo un'occhiata alle funzioni di questi componenti e sappiamo come vengono scritti i dati.

Apache HBase è un database open source, distribuito e non relazionale modellato sul Bigtable di Google e scritto in Java. Fornisce funzionalità simili a Bigtable su Hadoop e HDFS (Hadoop Distributed Filesystem), ovvero fornisce un modo a tolleranza d'errore per archiviare grandi quantità di dati sparsi, che sono comuni in molti casi d'uso di big data. HBase viene utilizzato per l'accesso in lettura / scrittura in tempo reale ai Big Data.





L'architettura HBase Storage comprende numerosi componenti. Diamo un'occhiata alle funzioni di questi componenti e sappiamo come vengono scritti i dati.

algoritmi e strutture dati in java

HFiles:



HFiles costituisce il basso livello dell'architettura di HBase. I file H sono file di archiviazione creati per archiviare i dati di HBase in modo rapido ed efficiente.

HMaster:

L'HMaster è responsabile di assegnare le regioni a ciascun HRegionServer all'avvio di HBase. È responsabile della gestione di tutto ciò che riguarda le righe, le tabelle e le loro attività di coordinamento. L'Hmaster ha anche i dettagli dei metadati.



Componenti di HBase:

HBase ha i seguenti componenti:

  • Tabella - Comprende le regioni
  • Regione: intervallo di righe memorizzate insieme
  • Server regionali: serve una o più regioni
  • Master Server - Daemon è responsabile della gestione del cluster HBase

L'HBase archivia i dati direttamente nell'HDFS e fa grande affidamento sull'elevata disponibilità e sulla tolleranza ai guasti di HDFS.

Architettura di archiviazione HBase:

Architettura di archiviazione HBase

Il flusso generale è che un client contatta prima lo Zookeeper per trovare una particolare chiave di riga. Lo fa recuperando il nome del server da Zookeeper. Con queste informazioni può ora interrogare quel server per ottenere il server che contiene il metatable. Entrambi questi dettagli vengono memorizzati nella cache e cercati solo una volta. Infine, può interrogare il metaserver e recuperare il server che ha la riga che il client sta cercando.

Una volta che sa in quale regione risiede la riga, memorizza nella cache anche queste informazioni e contatta direttamente HRegionServer. Quindi, nel tempo, il Cliente ha informazioni complete su dove ottenere le righe senza dover interrogare nuovamente il metaserver. Quando viene aperto HRegion, imposta un'istanza Store per ogni HColumnFamily per ogni tabella. I dati vengono scritti quando il client invia una richiesta a HRegionServer che fornisce i dettagli all'istanza HRegion corrispondente. Il primo passo è che dobbiamo decidere se i dati devono essere scritti prima nel 'Write-Ahead-Log' (WAL) rappresentato dalla classe HLog. La decisione si basa sul flag impostato dal client.
Una volta che i dati vengono scritti nel WAL, vengono inseriti nel MemStore. Allo stesso tempo, il Memstore viene verificato se è pieno e in tal caso viene richiesto un flush to disk. Quindi i dati vengono scritti nell'HFile.

Hai domande per noi? Menzionateli nella sezione commenti e vi risponderemo.

Post correlati

Approfondimenti sull'architettura HBase