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
- 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.
- HDFS ha basato sul file system GFS. Ma HBase è distribuito - utilizza HDFS per archiviazione, colonna - Orientato, multidimensionale (versioni) e sistema di archiviazione
- 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.
- 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
- hadoop dfs -cat /foodir/myfile.txt
- hadoop dfs -rm /foodir/myfile.txt
Ma d'altra parte Hbase ha una propria interfaccia sotto forma di Hbase Shell come ad esempio: -
- hbase (principale): 003: 0> crea 'test', 'cf'
0 righe in 1, 2200 secondi
- hbase (main): 004: 0> inserisci 'test', 'row1', 'cf: a', 'value1'
0 righe in 0, 0560 secondi
- hbase (main): 005: 0> inserisci 'test', 'row2', 'cf: b', 'value2'
0 righe in 0, 0370 secondi
- hbase (principale): 006: 0> inserisci 'test', 'row3', 'cf: c', 'value3'
0 righe in 0, 0450 secondi
- 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 confronto | HDFS | HBase |
Perché ne abbiamo bisogno | È necessario elaborare enormi set di dati su grandi cluster di computer | HBase è un archivio dati distribuito orientato alla colonna basato su HDFS |
I nodi falliscono ogni giorno | a) È 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 modello | Aggiungi solo | Scrittura casuale, incrementale in blocco |
Leggi il modello | Scansione completa della tabella, scansione della tabella delle partizioni | Lettura casuale, scansione a piccolo intervallo o scansione della tabella |
Modello W / R | HDFS è ideale per i casi d'uso write-once e read-many times | HBase è ideale per la scrittura e la lettura casuali di dati archiviati in HDFS. |
Hive (SQL) Performance | Relativamente molto buono | 4-5 volte più lento |
Archiviazione strutturata | Fai da te o TSV o file di sequenza | Modello di dati della famiglia di colonne sparse |
Dimensione massima dei dati | In genere può archiviare circa 30 PB circa | Circa 1 PB circa |
Cambiamenti dinamici | HDFS 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 dati | I 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 dati | Tutti 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 dati | In HDFS usiamo la tecnica Map Reduce che divide i file nelle coppie chiave - valore | HBase si basa sul modello Bigtable di Google che utilizza anche coppie chiave-valore |
operazioni | Ha operazioni ad alta latenza | Ha 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:
- HBase vs Cassandra - Quale è meglio (infografica)
- Scopri le 7 migliori differenze tra Hadoop e HBase
- I 12 migliori confronti tra Apache Hive e Apache HBase (infografica)