Quando usare Hadoop, HBase, Hive e Pig?


185

Quali sono i vantaggi dell'utilizzo di Hadoop o HBase o Hive ?

Da quanto ho capito, HBase evita di usare map-reduce e ha una memoria orientata alla colonna in cima a HDFS. Hive è un'interfaccia di tipo sql per Hadoop e HBase .

Vorrei anche sapere come Hive si confronta con Pig .


Hadoop : file system distribuito Hadoop + modello di elaborazione computazionale MapReduce. HBase : archiviazione di valori-chiave, ottima per leggere e scrivere in tempo quasi reale. Hive : utilizzato per l'estrazione dei dati dall'HDFS utilizzando una sintassi simile a SQL. Maiale : è un linguaggio di flusso di dati per la creazione di ETL.
dbustosp,

Risposte:


348

MapReduce è solo un framework informatico . HBase non ha nulla a che fare con questo. Detto questo, è possibile inserire o recuperare in modo efficiente dati da / a HBase scrivendo lavori MapReduce. In alternativa è possibile scrivere programmi sequenziali utilizzando altre API HBase, come Java, per inserire o recuperare i dati. Ma usiamo Hadoop, HBase ecc. Per gestire enormi quantità di dati, quindi non ha molto senso. L'uso dei normali programmi sequenziali sarebbe altamente inefficiente quando i tuoi dati sono troppo grandi.

Tornando alla prima parte della tua domanda, Hadoop è fondamentalmente 2 cose: un file system distribuito (HDFS) + un framework di elaborazione o elaborazione (MapReduce) . Come tutti gli altri FS, anche HDFS ci fornisce memoria, ma in modo tollerante ai guasti con un throughput elevato e un minor rischio di perdita di dati (a causa della replica). Ma essendo un FS, HDFS non ha accesso casuale in lettura e scrittura . Questo è dove HBase viene in scena. È un archivio di grandi quantità di dati distribuito, scalabile , modellato sulla BigTable di Google. Memorizza i dati come coppie chiave / valore.

Venendo a Hive. Ci fornisce servizi di data warehousing su un cluster Hadoop esistente. Oltre a ciò fornisce un'interfaccia simile a SQL che semplifica il tuo lavoro, nel caso tu provenga da uno sfondo SQL. È possibile creare tabelle in Hive e archiviare i dati lì. Insieme a questo puoi persino mappare le tue tabelle HBase esistenti su Hive e operare su di esse.

Mentre Pig è fondamentalmente un linguaggio di flusso di dati che ci consente di elaborare enormi quantità di dati in modo molto semplice e rapido. Maiale ha fondamentalmente 2 parti: l' interprete di maiale e la lingua, PigLatin . Scrivi lo script Pig in PigLatin e utilizzali come interprete Pig per elaborarli. Maiale ci semplifica la vita, altrimenti scrivere MapReduce non è sempre facile. In effetti in alcuni casi può davvero diventare un dolore.

Qualche tempo fa avevo scritto un articolo su un breve confronto di diversi strumenti dell'ecosistema Hadoop . Non è un confronto approfondito, ma una breve introduzione a ciascuno di questi strumenti che può aiutarti a iniziare. (Solo per aggiungere alla mia risposta. Nessuna auto promozione prevista)

Le query Hive e Pig vengono convertite in processi MapReduce sotto il cofano.

HTH


Dimentichi di parlare yarndell'ecosistema Hadoop :(.
Kenry Sanchez,

53

Di recente ho implementato una piattaforma Hive Data nella mia azienda e posso parlarne in prima persona da quando ero un team unico.

Obbiettivo

  1. Per avere i file di registro web giornalieri raccolti da oltre 350 server quotidianamente interrogabili attraverso un linguaggio simile a SQL
  2. Per sostituire i dati di aggregazione giornaliera generati tramite MySQL con Hive
  3. Crea report personalizzati tramite query in Hive

Opzioni di architettura

Ho confrontato le seguenti opzioni:

  1. Hive + HDFS
  2. Hive + HBase : le query erano troppo lente, quindi ho scaricato questa opzione

Design

  1. I file di registro giornalieri sono stati trasportati su HDFS
  2. I lavori MR hanno analizzato questi file di registro e i file di output in HDFS
  3. Crea tabelle Hive con partizioni e posizioni che puntano a posizioni HDFS
  4. Crea script di query Hive (chiamalo HQL se ti piace diff da SQL ) che a sua volta ha eseguito processi MR in background e generato dati di aggregazione
  5. Inserisci tutti questi passaggi in un flusso di lavoro Oozie , pianificato con il coordinatore Oozie giornaliero

Sommario

HBase è come una mappa. Se conosci la chiave, puoi ottenere immediatamente il valore. Ma se vuoi sapere quante chiavi intere in Hbase sono comprese tra 1000000 e 2000000, ciò non è adatto solo per Hbase .

Se hai dati che devono essere aggregati, raggruppati, analizzati su più righe, considera Hive .

Speriamo che questo aiuti.

L'alveare in realtà è rock ... lo so, l'ho vissuto per 12 mesi ... Anche HBase ...


1
HBase è un database NonSQL che archivia i dati in HDFS. Viene utilizzato quando è necessario un accesso casuale e in tempo reale in lettura / scrittura ai big data.
Root Loop

28

Hadoop è un framework che consente l'elaborazione distribuita di grandi set di dati tra cluster di computer utilizzando semplici modelli di programmazione.

Ci sono quattro moduli principali in Hadoop.

  1. Hadoop Common : le utility comuni che supportano gli altri moduli Hadoop.

  2. Hadoop Distributed File System ( HDFS ™ ): un file system distribuito che fornisce un accesso ad alta velocità ai dati dell'applicazione.

  3. Hadoop YARN : un framework per la pianificazione dei lavori e la gestione delle risorse del cluster.

  4. Hadoop MapReduce : un sistema basato su YARN per l'elaborazione parallela di grandi set di dati.

Prima di andare oltre, notiamo che abbiamo tre diversi tipi di dati.

  • Strutturato : i dati strutturati hanno uno schema forte e lo schema verrà controllato durante l'operazione di scrittura e lettura. ad es. dati in sistemi RDBMS come Oracle, MySQL Server ecc.

  • Non strutturato : i dati non hanno alcuna struttura e possono avere qualsiasi forma: registri del server Web, e-mail, immagini ecc.

  • Semistrutturato : i dati non sono strettamente strutturati ma hanno una struttura. ad es. file XML.

A seconda del tipo di dati da elaborare, dobbiamo scegliere la tecnologia giusta.

Alcuni altri progetti, che fanno parte di Hadoop:

  • HBase ™ : un database distribuito scalabile che supporta l'archiviazione strutturata di dati per tabelle di grandi dimensioni.

  • Hive ™: un'infrastruttura di data warehouse che fornisce un riepilogo dei dati e query ad hoc.

  • Pig ™ : un linguaggio di flusso di dati di alto livello e un framework di esecuzione per il calcolo parallelo.

Hive Vs PIG comparation può essere trovato in questo articolo e nel mio altro post in questa domanda SE .

HBASE non sostituirà Map Reduce. HBase è un database distribuito scalabile e Map Reduce è un modello di programmazione per l'elaborazione distribuita dei dati. Map Reduce può agire sui dati in HBASE durante l'elaborazione.

È possibile utilizzare HIVE / HBASE per dati strutturati / semi-strutturati ed elaborarli con Hadoop Map Reduce

È possibile utilizzare SQOOP per importare dati strutturati dal tradizionale database RDBMS Oracle, SQL Server ecc. Ed elaborarli con Hadoop Map Reduce

È possibile utilizzare FLUME per l'elaborazione di dati non strutturati e l'elaborazione con Hadoop Map Reduce

Dai un'occhiata a: Casi d'uso di Hadoop .

Hive dovrebbe essere utilizzato per l'interrogazione analitica dei dati raccolti per un periodo di tempo. ad es. calcolare tendenze, riepilogare i registri del sito Web ma non può essere utilizzato per query in tempo reale.

HBase è adatto per l'interrogazione in tempo reale di Big Data. Facebook lo usa per i messaggi e le analisi in tempo reale.

PIG può essere utilizzato per costruire flussi di dati, eseguire lavori pianificati, sgretolare grandi volumi di dati, aggregarli / riassumere e archiviare in sistemi di database di relazioni. Buono per analisi ad hoc.

Hive può essere utilizzato per l'analisi dei dati ad hoc, ma non supporta tutti i formati di dati non strutturati a differenza di PIG.


Facebook non utilizza più HBase open source per i sistemi di messaggistica in tempo reale. Lo hanno sostituito con il loro [database Myrocks] interno. ( engineering.fb.com/core-data/… )
PPK

23

Considera che lavori con RDBMS e devi selezionare cosa usare - scansioni complete della tabella o accesso all'indice - ma solo una di esse.
Se si seleziona la scansione della tabella completa, utilizzare hive. Se l'accesso all'indice - HBase.


In realtà è possibile creare Hive su HBase in modo da poter utilizzare HQL per eseguire la scansione completa di hbase pur essendo in grado di eseguire direttamente query indicizzate su hbase. Ma dubito che questo ti offra prestazioni più lente durante la scansione completa.
FrostNovaZzz,

HBase è un sistema orientato alla scrittura, non è ottimale per le scansioni, sebbene i dati vengano archiviati in ordine. Quindi, mentre la scansione di alcuni intervalli può essere una buona scelta, le scansioni complete saranno molto più lente quindi direttamente
dall'HDFS

5

Per un confronto tra Hadoop Vs Cassandra / HBase leggi questo post .

Fondamentalmente HBase consente letture e scritture molto veloci con scalabilità. Quanto veloce e scalabile? Facebook lo utilizza per gestire lo stato dell'utente, le foto, i messaggi di chat, ecc. HBase è così veloce che a volte sono stati sviluppati stack da Facebook per utilizzare HBase come archivio dati per Hive stesso.

Where As Hive è più simile a una soluzione di Data Warehousing. È possibile utilizzare una sintassi simile a SQL per eseguire query sui contenuti Hive che si traducono in un processo Riduzione mappa. Non ideale per sistemi veloci e transazionali.


5

Ho lavorato sull'architettura Lambda per l'elaborazione di carichi in tempo reale e batch. È necessaria l'elaborazione in tempo reale laddove è necessario prendere decisioni rapide in caso di invio di allarmi antincendio tramite sensore o rilevamento di frodi in caso di transazioni bancarie. L'elaborazione batch è necessaria per riepilogare i dati che possono essere inseriti nei sistemi BI.

abbiamo usato le tecnologie dell'ecosistema Hadoop per le applicazioni precedenti.

Elaborazione in tempo reale

Apache Storm: elaborazione dei dati in streaming, applicazione della regola

HBase: archivio dati per la gestione della dashboard in tempo reale

Elaborazione batch Hadoop: scricchiolio di enormi quantità di dati. Panoramica a 360 gradi o aggiunta di contesto agli eventi. Interfacce o framework come Pig, MR, Spark, Hive, Shark aiutano nell'informatica. Questo livello richiede un programmatore per il quale Oozie è una buona opzione.

Livello Gestione eventi

Apache Kafka è stato il primo strato a consumare eventi ad alta velocità dal sensore. Kafka serve il flusso di dati di analisi sia in tempo reale sia in batch attraverso connettori Linkedin.


5

Comprensione approfondita

Hadoop

Hadoopè un progetto open source della Apachefondazione. È un framework scritto in Java, originariamente sviluppato da Doug Cutting nel 2005. È stato creato per supportare la distribuzione Nutchdel motore di ricerca testuale. Hadooputilizza le tecnologie di Google Map Reducee File System di Google come base.

Caratteristiche di Hadoop

  1. È ottimizzato per gestire enormi quantità di dati strutturati, semi-strutturati e non strutturati utilizzando hardware di base.
  2. Non ha condiviso nulla di architettura.
  3. Replica i suoi dati su più computer in modo che, se uno si interrompe, i dati possono ancora essere elaborati da un'altra macchina che archivia la sua replica.
  4. Hadoopè per un throughput elevato piuttosto che una bassa latenza. È un'operazione batch che gestisce enormi quantità di dati; pertanto il tempo di risposta non è immediato.
  5. Completa l'elaborazione delle transazioni online e l'elaborazione analitica online. Tuttavia, non è un sostituto di aRDBMS .
  6. Non va bene quando il lavoro non può essere parallelizzato o quando ci sono dipendenze all'interno dei dati.
  7. Non è utile per l'elaborazione di file di piccole dimensioni. Funziona meglio con enormi file di dati e set di dati.

Versioni di Hadoop

Sono disponibili due versioni Hadoop:

  1. Hadoop 1.0
  2. Hadoop 2.0

Hadoop 1.0

Ha due parti principali:

1. Framework di archiviazione dei dati

È un file system generico chiamato Hadoop Distributed File System ( HDFS).

HDFS è senza schema

Memorizza semplicemente i file di dati e questi file di dati possono essere in quasi tutti i formati.

L'idea è di archiviare i file il più vicino possibile alla loro forma originale.

Questo a sua volta fornisce alle unità aziendali e all'organizzazione la flessibilità e l'agilità necessarie senza essere eccessivamente preoccupati da ciò che può implementare.

2. Quadro di elaborazione dei dati

Questo è un semplice modello di programmazione funzionale inizialmente reso popolare da Google come MapReduce.

Utilizza essenzialmente due funzioni: MAPe REDUCEper elaborare i dati.

I "Mapper" accettano un insieme di coppie chiave-valore e generano dati intermedi (che è un altro elenco di coppie chiave-valore).

I "riduttori" agiscono quindi su questo input per produrre i dati di output.

Le due funzioni sembrano funzionare in modo isolato l'una con l'altra, consentendo in tal modo che l'elaborazione sia altamente distribuita in modo altamente parallelo, tolleranza agli errori e scalabilità.

Limitazioni di Hadoop 1.0

  1. La prima limitazione era il requisito dell'esperienza di MapReduceprogrammazione.

  2. Supportava solo l'elaborazione batch che, sebbene sia adatta per attività come l'analisi dei registri, i progetti di data mining su larga scala ma praticamente non adatta ad altri tipi di progetti.

  3. Una delle principali limitazioni era quella Hadoop 1.0strettamente accoppiata dal punto di vista computazionale MapReduce, il che significava che i fornitori di gestione dei dati affermati avevano lasciato due opinioni:

    1. Riscrivi la loro funzionalità in MapReducemodo che possa essere eseguita in Hadoopo

    2. Estrai HDFSo elabora i dati da Hadoop.

Nessuna delle opzioni era praticabile in quanto ha portato a inefficienze di processo causate dal trasferimento di dati dal Hadoopcluster.

Hadoop 2.0

In Hadoop 2.0, HDFScontinua ad essere il framework di archiviazione dei dati.

Tuttavia, un nuovo e separato quadro di gestione di risorse denominato Y et A nother R eSource N egotiater ( FILATO è stato aggiunto).

Qualsiasi applicazione in grado di dividersi in attività parallele è supportata da YARN.

YARN coordina l'allocazione delle attività secondarie della domanda presentata, migliorando ulteriormente la flessibilità, la scalabilità e l'efficienza delle applicazioni.

Funziona avendo un Application Master al posto di Job Tracker , eseguendo applicazioni su risorse governate dal nuovo Node Manager .

ApplicationMaster è in grado di eseguire qualsiasi applicazione e non solo MapReduce .

Ciò significa che non supporta solo l'elaborazione batch ma anche l'elaborazione in tempo reale. MapReducenon è più l'unica opzione di elaborazione dei dati.

Vantaggi di Hadoop

Memorizza i dati nel suo nativo da. Non è stata imposta alcuna struttura durante la digitazione dei dati o la memorizzazione dei dati. HDFSè lo schema in meno. Solo più tardi, quando è necessario elaborare i dati, la struttura viene imposta ai dati non elaborati.

È scalabile. Hadooppuò archiviare e distribuire set di dati molto grandi su centinaia di server economici che operano in parallelo.

Resiste al fallimento. Hadoopè tolleranza ai guasti. Pratica la replica dei dati diligentemente, il che significa che ogni volta che i dati vengono inviati a qualsiasi nodo, gli stessi dati vengono replicati anche su altri nodi del cluster, garantendo in tal modo che in caso di guasto del nodo, ci sarà sempre un'altra copia dei dati disponibili per l'uso.

È flessibile. Uno dei principali vantaggi di Hadoopè che può funzionare con qualsiasi tipo di dati: strutturato, non strutturato o semi-strutturato. Inoltre, l'elaborazione è estremamente rapida Hadoopgrazie al paradigma "sposta il codice in dati".

Hadoop Ecosystem

Di seguito sono riportati i componenti Hadoopdell'ecosistema:

HDFS : Hadoopfile system distribuito. Memorizza semplicemente i file di dati il ​​più vicino possibile al modulo originale.

HBase : è il database di Hadoop e si confronta bene con un RDBMS. Supporta l'archiviazione di dati strutturati per tabelle di grandi dimensioni.

Hive : consente l'analisi di set di dati di grandi dimensioni utilizzando un linguaggio molto simile allo standard ANSI SQL, il che implica che chiunque abbia familiarità SQLdovrebbe essere in grado di accedere ai dati su un Hadoopcluster.

Maiale : è un linguaggio di flusso di dati di facile comprensione. Aiuta con l'analisi di grandi set di dati che è abbastanza in ordine Hadoop. Piggli script vengono automaticamente convertiti in MapReducelavori Pigdall'interprete.

ZooKeeper : è un servizio di coordinamento per applicazioni distribuite.

Oozie : è un schedularsistema di flusso di lavoro per gestire i Hadooplavori Apache .

Mahout : è una libreria di apprendimento automatico e data mining scalabile.

Chukwa : è un sistema di raccolta dati per la gestione di grandi sistemi distribuiti.

Sqoop : viene utilizzato per trasferire dati di massa tra Hadoope archivi di dati strutturati come database relazionali.

Ambari : è uno strumento basato sul Web per il provisioning, la gestione e il monitoraggio dei Hadoopcluster.

Alveare

Hiveè uno strumento di infrastruttura di data warehouse in cui elaborare dati strutturati Hadoop. Risiede inoltre nella Hadoopsintesi dei Big Data e semplifica l'interrogazione e l'analisi.

L'alveare no

  1. Un database relazionale

  2. Un design per l'elaborazione delle transazioni online ( OLTP).

  3. Una lingua per query in tempo reale e aggiornamenti a livello di riga.

Caratteristiche di Hive

  1. Memorizza lo schema nel database e i dati elaborati in HDFS.

  2. È progettato per OLAP.

  3. Fornisce la SQLlingua dei tipi per le query chiamate HiveQLo HQL.

  4. È più familiare, veloce, scalabile ed estensibile.

Hive Architecture

I seguenti componenti sono contenuti in Hive Architecture:

  1. Interfaccia utente : Hiveè data warehouseun'infrastruttura che può creare interazione tra utente e HDFS. Le interfacce utente che Hivesupportano sono l'interfaccia utente Web Hive, la riga di comando Hive e Hive HD Insight (in Windows Server).

  2. MetaStore : Hivesceglie rispettivamente database serversdi memorizzare lo schema o Metadatadi tabelle, database, colonne in una tabella, i loro tipi di dati e HDFSmappatura.

  3. HiveQL Process Engine : HiveQLè simile a SQLper le query sulle informazioni dello schema sul Metastore. È una delle sostituzioni dell'approccio tradizionale al MapReduceprogramma. Invece di scrivere MapReducea Java, possiamo scrivere una query per MapReducee di processo.

  4. Motore di esecuzione : la parte congiunta del HiveQLmotore di processo ed MapReduceè il Hivemotore di esecuzione. Il motore di esecuzione elabora la query e genera i risultati come MapReduce results. Usa il sapore di MapReduce.

  5. HDFS o HBase : Hadoopfile system distribuito o HBasesono le tecniche di archiviazione dei dati per archiviare i dati nel file system.


1

Prima di tutto dovremmo chiarire che Hadoop è stato creato come alternativa più veloce a RDBMS . Elaborare grandi quantità di dati a una velocità molto elevata che in precedenza aveva impiegato molto tempo in RDBMS.

Ora si dovrebbero conoscere i due termini:

  1. Dati strutturati : questi sono i dati che abbiamo usato nel RDBMS tradizionale ed è diviso in strutture ben definite.

  2. Dati non strutturati : questo è importante da capire, circa l'80% dei dati mondiali non è strutturato o semi strutturato. Questi sono i dati che si trovano nella sua forma grezza e non possono essere elaborati utilizzando RDMS. Esempio: dati di Facebook, Twitter. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).

Pertanto, negli ultimi anni è stata generata una grande quantità di dati e i dati non erano strutturati, il che ha dato vita a HADOOP. È stato utilizzato principalmente per una grande quantità di dati che impiega una quantità di tempo inaccettabile utilizzando RDBMS. Aveva molti inconvenienti, che non poteva essere utilizzato per dati relativamente piccoli in tempo reale, ma sono riusciti a rimuovere i suoi svantaggi nella versione più recente.

Prima di andare oltre, vorrei dire che viene creato un nuovo strumento di Big Data quando vedono un errore negli strumenti precedenti. Quindi, qualsiasi strumento che vedrai che è stato creato è stato fatto per superare il problema degli strumenti precedenti.

Hadoop può essere semplicemente detto come due cose: Mapreduce e HDFS . Mapreduce è il luogo in cui avviene l'elaborazione e HDFS è la base dati in cui sono archiviati i dati. Questa struttura ha seguito il principio WORM, ovvero scrivere una volta letto più volte. Pertanto, una volta archiviati i dati in HDFS, non è possibile apportare modifiche. Ciò ha portato alla creazione di HBASE , un prodotto NOSQL in cui possiamo apportare modifiche ai dati anche dopo averlo scritto una volta.

Ma con il tempo abbiamo visto che Hadoop aveva molti difetti e per questo abbiamo creato un ambiente diverso sulla struttura di Hadoop. PIG e HIVE sono due esempi popolari.

HIVE è stato creato per le persone con background SQL . Le query scritte sono simili a quelle di SQL denominate HIVEQL . HIVE è stato sviluppato per elaborare dati completamente strutturati . Non viene utilizzato per dati strutturati.

PIG d'altra parte ha il suo linguaggio di query, ad esempio PIG LATIN . Può essere utilizzato sia per i dati strutturati che per quelli non strutturati .

Passando alla differenza come quando usare HIVE e quando usare PIG, non credo che qualcuno che non sia l'architetto di PIG potrebbe dire. Segui il link: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html


1

Hadoop:

HDFS è l'acronimo di Hadoop Distributed File System che utilizza il modello di elaborazione computazionale Map-Reduce.

HBase:

HBase è un archivio di valori-chiave, ottimo per leggere e scrivere in tempo quasi reale.

Alveare:

Hive viene utilizzato per l'estrazione dei dati dall'HDFS utilizzando una sintassi simile a SQL. Hive usa il linguaggio HQL.

Maiale:

Pig è un linguaggio di flusso di dati per la creazione di ETL. È un linguaggio di scripting.


0

Vorrei provare a rispondere in poche parole.

Hadoop è un ecosistema che comprende tutti gli altri strumenti. Quindi, non puoi confrontare Hadoop ma puoi confrontare MapReduce.

Ecco i miei pochi centesimi:

  1. Hive: se il tuo bisogno è molto SQLish, il che significa che la tua dichiarazione di problema può essere soddisfatta da SQL, quindi la cosa più semplice da fare sarebbe usare Hive. L'altro caso, quando si utilizza hive è quando si desidera che un server abbia una determinata struttura di dati.
  2. Maiale: se hai dimestichezza con Pig Latin e hai bisogno di più pipeline di dati. Inoltre, i tuoi dati mancano di struttura. In quei casi, potresti usare Pig. Onestamente non c'è molta differenza tra Hive & Pig rispetto ai casi d'uso.
  3. Riduci mappa: se il tuo problema non può essere risolto usando SQL straight, dovresti prima provare a creare UDF per Hive & Pig e poi se l'UDF non risolve il problema, allora farlo con MapReduce ha senso.

0

Maiale: è meglio gestire i file e pulire i dati di esempio: rimozione di valori null, gestione delle stringhe, valori non necessari Alveare: per interrogare su dati puliti


0

1.Utilizziamo Hadoop per la memorizzazione di dati di grandi dimensioni (dati infrastruttura, struttura e semistruttura) nel formato file del modulo come txt, csv.

2.Se vogliamo aggiornamenti colonnari nei nostri dati, allora stiamo usando lo strumento Hbase

3. In caso di Hive, stiamo memorizzando Big Data in formato strutturato e in aggiunta a ciò stiamo fornendo Analisi su tali dati.

4.Pig è uno strumento che utilizza il linguaggio latino Pig per analizzare i dati in qualsiasi formato (struttura, semistruttura e struttura).


0

La pulizia dei dati in Pig è molto semplice, un approccio adeguato sarebbe la pulizia dei dati tramite pig e quindi l'elaborazione dei dati tramite hive e successivamente caricarli in hdfs.


0

L'uso di Hive, Hbase e Pig ha scritto la mia esperienza in tempo reale in diversi progetti.

L'alveare viene utilizzato principalmente per:

  • Scopo dell'analisi in cui è necessario eseguire analisi sui dati storici

  • Generazione di rapporti commerciali basati su determinate colonne

  • Gestione efficiente dei dati insieme alle informazioni sui metadati

  • Unire le tabelle su determinate colonne che vengono spesso utilizzate utilizzando il concetto di bucket

  • Memorizzazione e interrogazione efficienti utilizzando il concetto di partizionamento

  • Non utile per operazioni a livello di transazione / riga come aggiornamento, eliminazione, ecc.

Il maiale è principalmente usato per:

  • Frequenti analisi dei dati su dati enormi

  • Generazione di valori / conteggi aggregati su dati enormi

  • Generazione di indicatori di prestazioni chiave a livello aziendale molto frequentemente

Hbase è principalmente usato:

  • Per l'elaborazione dei dati in tempo reale

  • Per una gestione efficiente di schemi complessi e nidificati

  • Per query in tempo reale e risultati più rapidi

  • Per una facile scalabilità con colonne

  • Utile per operazioni a livello di transazione / riga come aggiornamento, eliminazione, ecc.


0

La risposta breve a questa domanda è:

Hadoop - Is Framework che facilita il file system distribuito e il modello di programmazione che ci consentono di archiviare dati di dimensioni enormi e di elaborare i dati in modo distribuito in modo molto efficiente e con tempi di elaborazione molto inferiori rispetto agli approcci tradizionali.

(HDFS - Hadoop Distributed File system) (Map Reduce - Modello di programmazione per l'elaborazione distribuita)

Hive - È un linguaggio di query che consente di leggere / scrivere dati dal file system distribuito Hadoop in un modo SQL molto popolare come. Ciò ha semplificato la vita a molte persone non programmatrici in quanto non devono più scrivere il programma Map-Reduce, tranne per gli scenari molto complessi in cui Hive non è supportato.

Hbase: database colonnare NoSQL. Il livello di archiviazione sottostante per Hbase è di nuovo HDFS. Il caso d'uso più importante per questo database è quello di essere in grado di memorizzare miliardi di righe con milioni di colonne. La funzionalità a bassa latenza di Hbase consente un accesso più rapido e casuale dei record sui dati distribuiti, è una funzione molto importante per renderlo utile per progetti complessi come i motori di raccomandazione. Inoltre, la sua capacità di controllo delle versioni a livello di record consente all'utente di archiviare i dati transazionali in modo molto efficiente (questo risolve il problema dell'aggiornamento dei record che abbiamo con HDFS e Hive)

Spero che questo sia utile per capire rapidamente le 3 funzioni sopra.


0

Credo che questo thread non abbia reso particolarmente giustizia a HBase e Pig in particolare. Mentre credo che Hadoop sia la scelta del file system distribuito e resiliente per le implementazioni dei laghi di big data, la scelta tra HBase e Hive è in particolare ben separata.

Come in molti casi d'uso sono richieste particolari interfacce simili a SQL o No-SQL. Con Phoenix in cima a HBase, sebbene le funzionalità simili a SQL siano certamente realizzabili, tuttavia, le prestazioni, le integrazioni di terze parti, l'aggiornamento del dashboard sono una sorta di esperienze dolorose. Tuttavia, è una scelta eccellente per i database che richiedono il ridimensionamento orizzontale.

Il maiale è in particolare eccellente per lotti non ricorsivi come calcoli o pipeline ETL (da qualche parte, dove supera Spark a una distanza confortevole). Inoltre, le implementazioni di flusso di dati di alto livello sono una scelta eccellente per interrogazioni e script in batch. La scelta tra Pig e Hive è imperniata anche sulla necessità di scripting lato client o server, formati di file richiesti, ecc. Pig supporta il formato di file Avro che non è vero nel caso di Hive. La scelta del "linguaggio del flusso di dati procedurale" rispetto al "linguaggio del flusso di dati dichiarativo" è anche un argomento forte per la scelta tra maiale e alveare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.