Casa tendenze Una breve introduzione ad apache e alveare

Una breve introduzione ad apache e alveare

Anonim

Apache Hive è un framework basato su Hadoop per l'esecuzione di query ad hoc sui dati in Hadoop. Hive supporta HiveQL, che è simile a SQL, ma non supporta i costrutti completi di SQL.


Hive copre la query HiveQL in un programma Java MapReduce e quindi la invia al cluster Hadoop. Lo stesso risultato può essere ottenuto utilizzando HiveQL e Java MapReduce, ma l'utilizzo di Java MapReduce richiederà la scrittura / il debug di molto codice rispetto a HiveQL. Quindi, HiveQL aumenta la produttività degli sviluppatori.


Riassumendo, Hive, attraverso il linguaggio HiveQL, fornisce un'astrazione di livello superiore rispetto alla programmazione Java MapReduce. Come con qualsiasi altra astrazione di alto livello, c'è un po 'di sovraccarico di prestazioni usando HiveQL rispetto a Java MapReduce, ma la comunità Hive sta lavorando per ridurre questo divario per la maggior parte degli scenari comunemente usati.


Sulla stessa linea, Pig fornisce un'astrazione di livello superiore su MapReduce. Pig supporta i costrutti PigLatin, che vengono convertiti nel programma Java MapReduce e quindi inviati al cluster Hadoop.



Mentre HiveQL è un linguaggio dichiarativo come SQL, PigLatin è un linguaggio di flusso di dati. L'output di un costrutto PigLatin può essere inviato come input ad un altro costrutto PigLatin e così via.


Qualche tempo fa, Cloudera ha pubblicato statistiche sul carattere del carico di lavoro in un tipico cluster Hadoop e si può facilmente osservare che i lavori Pig e Hive costituiscono una buona parte dei lavori in un cluster Hadoop. A causa della maggiore produttività degli sviluppatori, molte aziende stanno optando per abstract di livello superiore come Pig e Hive. Quindi, possiamo scommettere che ci saranno molte opportunità di lavoro intorno a Hive e Pig rispetto allo sviluppo di MapReduce.



Sebbene il libro di programmazione Pig sia stato pubblicato nell'ottobre 2011, il libro di programmazione Hive è stato pubblicato più di recente, nell'ottobre 2012. Per coloro che hanno esperienza di lavoro con RDBMS, iniziare con Hive sarebbe un'opzione migliore rispetto a iniziare con Pig. Si noti inoltre che il linguaggio PigLatin non è molto difficile da iniziare.


Per il cluster Hadoop sottostante, è trasparente se un processo MapReduce Java viene inviato o un processo MapReduce viene inviato tramite Hive e Pig. A causa della natura orientata al batch dei lavori MapReduce, anche i lavori inviati tramite Hive e Pig sono orientati al batch in natura.


Per i requisiti di risposta in tempo reale, Hive e Pig non soddisfano i requisiti a causa della natura orientata in batch precedentemente menzionata dei lavori MapReduce. Cloudera ha sviluppato Impala, che si basa su Dremel (una pubblicazione di Google) per query interattive ad hoc su Hadoop. Impala supporta query simili a SQL ed è compatibile con HiveQL. Pertanto, qualsiasi applicazione costruita su Hive dovrebbe funzionare con modifiche minime con Impala. La principale differenza tra Hive e Impala è che mentre HiveQL viene convertito in lavori Java MapReduce, Impala non converte la query SQL in lavori Java MapReduce.


Dovresti andare con Pig o Hive per un requisito particolare? Questo è un argomento per un altro blog.


Ripubblicato con il permesso di Praveen Sripati. L'articolo originale può essere trovato qui: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html

Una breve introduzione ad apache e alveare