Domanda

Io sono interessato a capire come recentemente rilasciato (http://mirror.facebook.com/facebook/hive/hadoop-0.17/) Hive confronta HBase in termini di prestazioni.L'interfaccia di tipo SQL utilizzato da Hive è molto preferibile la HBase API che abbiamo implementato.

È stato utile?

Soluzione

È difficile trovare molto sull'Alveare, ma ho trovato questo frammento di all'Hive sito che si appoggia pesantemente a favore di HBase (grassetto aggiunto):

Hive è basato su Hadoop, che è un sistema di elaborazione in batch.Di conseguenza, questo sistema non e promettere basse latenze su query.Il paradigma qui è rigorosamente di invio dei lavori e di essere avvisati quando i lavori sono completati invece che in tempo reale le query.Come conseguenza di ciò, non devono essere confrontati con sistemi come Oracle, in cui l'analisi viene eseguita su un significativamente più piccole quantità di dati, ma l'analisi procede molto di più, in modo iterativo, con i tempi di risposta tra le iterazioni, a meno di pochi minuti. Per Hive query tempi di risposta anche per i più piccoli posti di lavoro possono essere dell'ordine di 5-10 minuti e per lavori di grandi dimensioni, questo può anche eseguire in ore.

Dal HBase e HyperTable sono le prestazioni (modellato su Google BigTable), il suono come si sarebbe certamente molto più veloce di Alveare, a costo di funzionalità e una curva di apprendimento superiore (ad esempio, non hanno join SQL-come sintassi).

Altri suggerimenti

Da un'altra prospettiva, Hive è composto da cinque componenti principali:SQL-come la grammatica e il parser, un pianificatore di query in un motore di esecuzione delle query, un repository di metadati, e a colonne layout di archiviazione.Il suo obiettivo primario è di data warehouse in stile analitico dei carichi di lavoro, così a bassa latenza, il recupero di valori chiave non è necessario.

HBase è proprio repository di metadati e colonne layout di archiviazione.È possibile autore HiveQL query HBase tabelle, permettendo HBase per usufruire di Alveare grammatica e l'analizzatore di query planner, e il motore di esecuzione delle query.Vedere http://wiki.apache.org/hadoop/Hive/HBaseIntegration per ulteriori dettagli.

Hive è uno strumento di analisi.Proprio come il maiale, è stato progettato ad hoc per l'elaborazione in batch di potenzialmente enormi quantità di dati sfruttando ridurre la mappa.Pensare terrabytes.Immaginate di provare a farlo in un database relazionale...

HBase è una colonna valore della chiave di archivio sulla base di BigTable.Non è possibile fare query di per sé, se è possibile eseguire una mappa di ridurre i posti di lavoro oltre HBase.È il caso di utilizzo primario è il recupero di righe da chiave, o la scansione di intervalli di righe.Una caratteristica importante è essere in grado di avere località di dati quando si esegue la scansione attraverso intervalli di fila di tasti per una "famiglia" di colonne.

Per la mia modesta conoscenza, Hive è più paragonabile a un Maiale.Hive è di tipo SQL e Maiale è basato su script.Hive sembra essere più complicato, con l'ottimizzazione delle query e di esecuzione motori così come richiede l'utente finale deve specificare schema di parametri(partizione ecc).Entrambi sono intenzione di elaborare file di testo, o sequenceFiles.

HBase è per il valore della chiave di archivio dati e recuperare...è possibile eseguire la scansione o filtrare quelle coppie chiave-valore(righe).Non si può fare query su (chiave,valore) righe.

Come i più recenti Hive versioni, molto è cambiato, che richiede un piccolo aggiornamento Hive e HBase sono ora integrati.Che cosa questo significa è che Hive può essere utilizzato come una query strato di una HBase datastore.Ora, se le persone sono in cerca di un'alternativa HBase interfacce, Maiale, inoltre, offre davvero un bel modo di caricare e salvare i dati HBase.Inoltre, sembra che Cloudera Impala può offrire notevoli prestazioni Hive query sulla cima di HBase.Sono pretendiamo fino a 45x query più rapide rispetto alle tradizionali Hive configurazioni.

Hive e HBase sono utilizzati per diversi scopo.

Hive:

Pro:

  1. Apache Hive è un data warehouse infrastrutture costruito sulla cima di Hadoop.
  2. Permette di interrogazione dei dati memorizzati sul HDFS per l'analisi attraverso l' HQL, un SQL come linguaggio, che saranno convertiti in una serie di Mappa Di Ridurre I Posti Di Lavoro
  3. Funziona solo con i processi batch su Hadoop.
  4. è JDBC conforme, inoltre, si integra con l'esistente di SQL strumenti di
  5. Hive supporta le partizioni
  6. Supporta analitici interrogazione di dati raccolti nel corso di un periodo di tempo

Contro:

  1. Attualmente non supportano l'aggiornamento di istruzioni
  2. Dovrebbe essere fornito con uno schema predefinito per la mappa, file e cartelle in colonne

HBase:

Pro:

  1. Scalabile, database distribuito che supporta i dati strutturati di archiviazione per tabelle di grandi dimensioni
  2. Esso fornisce casuale, reale, tempo di accesso in lettura/scrittura per enormi quantità di Dati.HBase operazioni di eseguire in tempo reale sul proprio database, piuttosto che processi di MapReduce
  3. supporta le partizioni per le tabelle e le tabelle sono ulteriormente suddivisi in colonna famiglie
  4. Scale in orizzontale con l'enorme quantità di dati utilizzando Hadoop
  5. Fornisce la chiave di accesso in base ai dati quando la conservazione o il recupero.Si supporta l'aggiunta o l'aggiornamento le righe.
  6. Supporta versoning di dati.

Contro:

  1. HBase query vengono scritti in un linguaggio personalizzato che deve essere imparato
  2. HBase non è completamente ACID
  3. Non può essere utilizzato con complicati schemi di accesso (come join)
  4. Inoltre non è un completo sostituto per HDFS quando si fa un batch di grandi dimensioni MapReduce

Sommario:

Hive può essere utilizzato per la query analitiche mentre HBase in tempo reale l'esecuzione di query.I dati possono anche essere letti e scritti dall'Alveare per HBase e indietro di nuovo.

Per confrontare Alveare con Hbase, mi piace ricordare la definizione di seguito:

Un database progettato per gestire le transazioni non è progettato per gestire analytics.Non è strutturato per fare analytics bene.Un data warehouse, d'altra parte, è strutturato in modo da rendere analisi facile e veloce.

Hive è un data warehouse infrastruttura costruita sulla cima di Hadoop, che è adatto per il lungo in esecuzione di processi ETL.Hbase è un database progettato per gestire in tempo reale le transazioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top