Lar Tendências Uma breve introdução para apache colmeia e porco

Uma breve introdução para apache colmeia e porco

Anonim

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 da carga de trabalho em um cluster típico do Hadoop e pode-se observar facilmente que os trabalhos do Pig e do Hive representam 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 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? Esse é 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

Uma breve introdução para apache colmeia e porco