Differenza tra HDFS e HBase

HDFS (Hadoop Distributed File System) HDFS consente di archiviare enormi quantità di dati in modo distribuito e ridondante, che gira su hardware di largo consumo. HBase (database di Hadoop) è un database NoSQL che viene eseguito sul cluster Hadoop

Diamo un'occhiata rispettivamente ai componenti e all'architettura di HDFS e HBase:

Componenti di HDFS

  • NameNode
  • DataNode

NameNode: NameNode può essere considerato un master del sistema. Mantiene l'albero dei file system e i metadati per tutti i file e le directory presenti nel sistema. Due file "Immagine spazio dei nomi" e "modifica registro" vengono utilizzati per memorizzare le informazioni sui metadati. Namenode è a conoscenza di tutti i nodi di dati contenenti blocchi di dati per un determinato file, tuttavia non memorizza in modo persistente le posizioni dei blocchi. Queste informazioni vengono ricostruite ogni volta dai nodi di dati all'avvio del sistema.

DataNode: DataNodes sono slave che risiedono su ogni macchina in un cluster e forniscono l'archiviazione effettiva. È responsabile di servire, leggere e scrivere richieste per i clienti.

Architettura HDFS: -

Componenti di HBase: -

  • Hbase master
  • Server regionale
  • Regione
  • Zookeeper

HMaster : è il server master nell'architettura HBase. È l'agente di monitoraggio per monitorare tutti i Region Server ed è inoltre responsabilità di HMaster essere l'interfaccia per tutte le modifiche ai metadati. Funziona su NameNode.

Server delle regioni: quando il server delle regioni riceve scritture e legge richieste dal client, assegna la richiesta a una regione specifica, dove risiede la famiglia di colonne effettiva. Tuttavia, il client può contattare direttamente i server Region, non è necessaria l'autorizzazione obbligatoria di HMaster per il client in merito alla comunicazione con i server Region. Il client richiede l'aiuto di HMaster quando sono necessarie operazioni relative a metadati e modifiche dello schema.

Regioni: le regioni sono gli elementi costruttivi di base del cluster HBase che consiste nella distribuzione di tabelle e sono costituite da famiglie di colonne. Contiene più negozi, uno per ogni famiglia di colonne. Consiste principalmente di due componenti, che sono Memstore e Hfile.

ZooKeeper: In Hbase, Zookeeper è un server di monitoraggio centralizzato che mantiene le informazioni di configurazione e fornisce la sincronizzazione distribuita. La sincronizzazione distribuita consiste nell'accedere 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.

Architettura di HBase: - HBase fa parte dell'ecosistema di Hadoop.

Modello approfondito: -

Confronto testa a testa tra HDFS vs HBase (infografica)

Di seguito è riportato il confronto tra i primi 14 tra HDFS e HBase

Differenze chiave tra HDFS e HBase

Di seguito è riportata la differenza tra HDFS e HBase

  1. HDFS è un file system distribuito adatto per la memorizzazione di file di grandi dimensioni. HBase, d'altra parte, è basato su HDFS e fornisce ricerche (e aggiornamenti) record veloci per tabelle di grandi dimensioni.
  2. HDFS ha basato sul file system GFS. Ma HBase è distribuito - utilizza HDFS per archiviazione, colonna - Orientato, multidimensionale (versioni) e sistema di archiviazione
  3. HDFS utilizza HIVE come uno dei suoi componenti per il linguaggio quire che è HIVE Query Language (HQL), ma Hbase NON è un database SQL che significa: - Nessun join, nessun motore di query, nessun tipo di dati, nessun (dannazione) SQL, nessun schema e nessun DBA necessario.
  4. Poiché HDFS è un'unità di archiviazione distribuita, non ha quindi un linguaggio specifico diverso dai comandi utilizzati come il sapore UNIX come ad esempio: - Hadoop dfs -mkdir / foodir
  5. hadoop dfs -cat /foodir/myfile.txt
  6. hadoop dfs -rm /foodir/myfile.txt

Ma d'altra parte Hbase ha una propria interfaccia sotto forma di Hbase Shell come ad esempio: -

  1. hbase (principale): 003: 0> crea 'test', 'cf'

0 righe in 1, 2200 secondi

  1. hbase (main): 004: 0> inserisci 'test', 'row1', 'cf: a', 'value1'

0 righe in 0, 0560 secondi

  1. hbase (main): 005: 0> inserisci 'test', 'row2', 'cf: b', 'value2'

0 righe in 0, 0370 secondi

  1. hbase (principale): 006: 0> inserisci 'test', 'row3', 'cf: c', 'value3'

0 righe in 0, 0450 secondi

  1. hbase (principale): 007: 0> scansione 'test'

COLONNA DI FILA + CELLA

riga1 colonna = cf: a, data / ora = 1288380727188, valore = valore1

riga2 colonna = cf: b, data / ora = 1288380738440, valore = valore2

riga3 colonna = cf: c, data / ora = 1288380747365, valore = valore3

3 righe in 0, 0590 secondi

Tabella di confronto tra HDFS e HBase

Base per il confrontoHDFSHBase
Perché ne abbiamo bisognoÈ necessario elaborare enormi set di dati su grandi cluster di computerHBase è un archivio dati distribuito orientato alla colonna basato su HDFS
I nodi falliscono ogni giornoa) È previsto un fallimento, piuttosto che eccezionale
b) Il numero di nodi in un cluster non è costante
HBase è un progetto open source Apache il cui obiettivo è quello di fornire spazio di archiviazione per l'Hadoop Distributed Computing
Scrivi modelloAggiungi soloScrittura casuale, incrementale in blocco
Leggi il modelloScansione completa della tabella, scansione della tabella delle partizioniLettura casuale, scansione a piccolo intervallo o scansione della tabella
Modello W / RHDFS è ideale per i casi d'uso write-once e read-many timesHBase è ideale per la scrittura e la lettura casuali di dati archiviati in HDFS.
Hive (SQL) PerformanceRelativamente molto buono4-5 volte più lento
Archiviazione strutturataFai da te o TSV o file di sequenzaModello di dati della famiglia di colonne sparse
Dimensione massima dei datiIn genere può archiviare circa 30 PB circaCirca 1 PB circa
Cambiamenti dinamiciHDFS ha un'architettura rigida che non consente modifiche. Non facilita l'archiviazione dinamica.HBase consente modifiche dinamiche e può essere utilizzato per applicazioni autonome.
Distribuzione dei datiI dati vengono archiviati in modo distribuito tra i nodi in un cluster. I dati vengono divisi in blocchi e quindi archiviati su nodi presenti nel cluster HDFS.Le tabelle sono distribuite sul cluster tramite le regioni e le aree vengono automaticamente suddivise e ridistribuite man mano che i dati crescono
Archivio datiTutti i dati sono archiviati sotto forma di piccoli file e tutti i file hanno una dimensione tipica di 64 MB (che è 128 MB nella versione più recente)Tutti i dati vengono archiviati sotto forma di tabelle, righe e colonne
Modellazione dei datiIn HDFS usiamo la tecnica Map Reduce che divide i file nelle coppie chiave - valoreHBase si basa sul modello Bigtable di Google che utilizza anche coppie chiave-valore
operazioniHa operazioni ad alta latenzaHa operazioni a bassa latenza
AccessibilitàSi accede principalmente attraverso i lavori MR (Riduzione mappa)È possibile accedervi tramite comandi shell, API client in Java, REST, Avro o Thrift

Conclusione - HDFS vs HBase

In conclusione, sia HDFS che HBase hanno tecnologie meravigliose. Entrambi HDFS e HBase sono stati creati per archiviare i Big Data e per facilitarne l'accesso e l'elaborazione. Entrambi HDFS e HBase vanno fianco a fianco mentre un HDFS memorizza i dati mentre l'altro HBase inserisce uno schema sui dati su come archiviarlo e recuperarlo in seguito per l'utilizzo del client.

Hbase è uno dei database distribuiti orientati alle colonne NoSql disponibili in apache foundation. HBase offre maggiori prestazioni per il recupero di meno record invece di Hadoop o Hive. È molto semplice cercare qualsiasi valore di input dato che supporta l'indicizzazione, le transazioni e l'aggiornamento.

Siamo in grado di eseguire analisi online in tempo reale 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.

Articolo raccomandato

Questa è stata una guida a HDFS vs HBase, al loro significato, confronto testa a testa, differenze chiave, tabella di confronto e conclusioni. questo articolo ha tutte le differenze utili tra HDFS e HBase. Per ulteriori informazioni, puoi consultare i seguenti articoli:

  1. HBase vs Cassandra - Quale è meglio (infografica)
  2. Scopri le 7 migliori differenze tra Hadoop e HBase
  3. I 12 migliori confronti tra Apache Hive e Apache HBase (infografica)

Categoria: