Uma breve introdução ao Apache Hive e Pig

Autor: Eugene Taylor
Data De Criação: 8 Agosto 2021
Data De Atualização: 20 Junho 2024
Anonim
Uma breve introdução ao Apache Hive e Pig - Tecnologia
Uma breve introdução ao Apache Hive e Pig - Tecnologia


Fonte: Tsekhmister / Dreamstime.com

Leve embora:

O Hive e o Pig fornecem uma abstração de nível mais alto sobre o MapReduce, mas existem algumas diferenças importantes entre eles que os desenvolvedores devem conhecer.

O Apache Hive é uma estrutura que fica no topo do Hadoop para fazer consultas ad-hoc sobre dados no Hadoop. O Hive suporta o HiveQL, que é semelhante ao SQL, mas não suporta as construções completas do SQL.

O Hive abrange a consulta do HiveQL em um programa Java MapReduce e a envia ao cluster do Hadoop. O mesmo resultado pode ser alcançado usando o HiveQL e o Java MapReduce, mas o uso do Java MapReduce exigirá que muito código seja gravado / depurado em comparação com o HiveQL. Portanto, o HiveQL aumenta a produtividade do desenvolvedor.

Para resumir, o Hive, por meio da linguagem HiveQL, fornece uma abstração de nível mais alto sobre a programação Java MapReduce. Como em qualquer outra abstração de alto nível, há um pouco de sobrecarga de desempenho usando o HiveQL quando comparado ao Java MapReduce, mas a comunidade Hive está trabalhando para diminuir essa lacuna na maioria dos cenários comumente usados.

Na mesma linha, o Pig fornece uma abstração de nível mais alto sobre o MapReduce. O Pig suporta construções PigLatin, que são convertidas no programa Java MapReduce e enviadas ao cluster Hadoop.





Enquanto o HiveQL é uma linguagem declarativa como SQL, o PigLatin é uma linguagem de fluxo de dados. A saída de uma construção PigLatin pode ser enviada como entrada para outra construção PigLatin e assim por diante.

Algum tempo atrás, Cloudera publicou estatísticas sobre o caractere de carga de trabalho em um cluster típico do Hadoop e pode-se observar facilmente que os trabalhos do Pig e do Hive constituem boa parte dos trabalhos em um cluster do Hadoop. Devido à maior produtividade do desenvolvedor, muitas empresas estão optando por resumos de nível superior, como Pig e Hive. Portanto, podemos apostar que haverá muitas vagas de emprego em torno do Hive e Pig quando comparado ao desenvolvimento do MapReduce.



Embora o livro Programming Pig tenha sido publicado em outubro de 2011, o livro Programming Hive foi publicado mais recentemente, em outubro de 2012. Para quem tem experiência em trabalhar com RDBMS, iniciar o Hive seria uma opção melhor do que começar com o Pig. Observe também que o idioma do PigLatin não é muito difícil de começar.

Para o cluster Hadoop subjacente, é transparente se uma tarefa Java MapReduce é enviada ou uma tarefa MapReduce é enviada por meio do Hive e Pig. Devido à natureza orientada a lote das tarefas do MapReduce, as tarefas enviadas pelo Hive e Pig também são orientadas por lote.

Para requisitos de resposta em tempo real, o Hive e o Pig não atendem aos requisitos devido à natureza orientada a lote mencionada anteriormente das tarefas do MapReduce. Cloudera desenvolveu o Impala, baseado no Dremel (uma publicação do Google) para consultas interativas ad-hoc sobre o Hadoop. O Impala suporta consultas do tipo SQL e é compatível com o HiveQL. Portanto, todos os aplicativos criados no Hive devem funcionar com alterações mínimas com o Impala. A principal diferença entre o Hive e o Impala é que, enquanto o HiveQL é convertido em tarefas Java MapReduce, o Impala não oculta a consulta SQL em tarefas Java MapReduce.

Você deve ir com o Pig ou Hive para um requisito específico? Isso é um tópico para outro blog.

Republicado com permissão de Praveen Sripati. Artigo original pode ser encontrado aqui: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html