2016-06-04 21 views
5

Sono un po 'nuovo per Apache Hadoop. Ho visto le domande this e this su Hadoop, HBase, Pig, Hive e HDFS. Entrambi descrivono il confronto tra le tecnologie di cui sopra.Rapporto tra HDFS, HBase, Pig, Hive e Azkaban?

Ma, ho visto che, in genere un ambiente Hadoop contiene tutte queste componenti (HDFS, HBase, Maiale, Hive, Azkaban).

Qualcuno può spiegare la relazione di tali componenti/tecnologie con le proprie responsabilità all'interno di un ambiente Hadoop, in un modo di flusso architettonico? preferibilmente con un esempio?

risposta

6

Panoramica generale:

HDFS è Distributed File System di Hadoop. Intuitivamente puoi pensare a questo come a un filesystem che si estende su molti server.

HBASE è un archivio dati orientato a colonna. È modellato sul Big Table di Google, ma se non è qualcosa che sapevate, pensatelo come un database non relazionale che fornisce accesso in tempo reale in lettura/scrittura ai dati. È integrato in Hadoop.

Pig e Hive sono modi di interrogare i dati nell'ecosistema Hadoop. La differenza principale è che Hive somiglia più a SQL che a Pig. Il maiale usa quello che si chiama Pig Latin.

Azkaban è una prigione, intendo programma di pianificazione del flusso di lavoro batch. Quindi in pratica è simile a Oozie in quanto è possibile eseguire map/reduce, maiale, hive, bash, ecc. Come un singolo lavoro.

Al livello più alto possibile, è possibile pensare a HDFS come al proprio filesystem con HBASE come datastore. Pig e Hive sarebbero i tuoi mezzi per interrogare dal tuo datastore. Allora Azkaban sarebbe il tuo modo di pianificare i lavori.

Stretched Esempio:

Se si ha familiarità con Linux ext3 o ext4 per un filesystem, MySQL/PostgreSQL/MariaDB/etc per un database, SQL per accedere ai dati, e cron per pianificare i processi. (È possibile scambiare ext3/ext4 per NTFS e cron per Task Scheduler su Windows)

HDFS prende il posto di ext3 o ext4 (ed è distribuito), HBASE assume il ruolo di database (ed è non relazionale!), Pig/Hive è un modo per accedere ai dati e Azkaban è un modo per pianificare i lavori.

NOTA: Questo non è un confronto tra mele e mele. È solo per dimostrare che i componenti Hadoop sono un'astrazione pensata per darti un flusso di lavoro che probabilmente già conosci.

Vi incoraggio vivamente a esaminare ulteriormente i componenti, poiché avrete una buona dose di divertimento. Hadoop ha così tanti componenti intercambiabili (Yarn, Kafka, Oozie, Ambari, ZooKeeper, Sqoop, Spark, ecc.) Che ti farai questa domanda molto.

MODIFICA: i collegamenti che hai postato sono andati più in dettaglio su HBase e Hive/Pig, quindi ho cercato di dare un'immagine intuitiva di come si combinavano tutti.

+0

Sono corretti come ho capito? 1) Hive/Pig entrambi sono per lo stesso scopo (accesso ai dati anche se diverso in uso), se si va con un altro è opzionale. 2) HBase è costruito su HDFS. –

+0

Sì, puoi guardarlo così. In superficie, Hive e Pig forniscono entrambi un mezzo per fare la stessa cosa. Sono stati sviluppati inizialmente da 2 gruppi diversi, quindi la filosofia e il caso d'uso per entrambi sono leggermente diversi. Poiché Hive è più simile a SQL (HiveQL), dovrebbe funzionare bene con i dati strutturati. Il maiale è piuttosto buono per semi-strutturato, immagino. Noterò che non sono un esperto, quindi questo è solo un pensiero/opinione da ciò che ho imparato. –

+0

Per quanto riguarda HBase, in realtà non ho esperienza con esso, quindi non posso dirtelo, ma ho trovato questo link che potrebbe aiutare: http://thenewstack.io/a-look-at-hbase/ –

1

L'ambiente Hadoop contiene tutti questi componenti (HDFS, HBase, Pig, Hive, Azkaban). Una breve descrizione di questi può essere: -

HDFS -storia in quadro hadoop.

HBase - Si tratta di un database colonnare. dove si memorizzano i dati sotto forma di colonna per un accesso più rapido. sì, usa hdf come memoria.

Pig - linguaggio del flusso di dati, la sua comunità ha fornito funzioni integrate per caricare ed elaborare dati semi strutturati come json e xml insieme a dati strutturati.

Hive - Interrogare il linguaggio per eseguire query su tabelle, il montaggio su tavola è necessario qui per giocare con i dati HDFS.

Azkaban - Se si dispone di una pipeline di lavori hadoop, è possibile programmarli per l'esecuzione a orari specifici e dopo o prima di una dipendenza.

+0

Se le chiedo in questo modo, può indicare il flusso di lavoro dei componenti di cui sopra? Ho intenzione di sviluppare un insieme di dati-recuperare le apis usando Java. Ogni api chiama Hbase per ottenere dati che forniscono un row_key. Puoi indicare il flusso di lavoro/interconnessione dei componenti di cui sopra in caso di, da "chiamare l'HBase usando un row_key" e "ottenere l'insieme di dati"? –

Problemi correlati