Diferença entre Hive e Impala

Hive é um projeto de software de data warehouse construído sobre o APACHE HADOOP, desenvolvido pela equipe de Jeff no Facebook, com uma versão estável atual do 2.3.0 lançada. É usado para resumir Big Data e facilita a consulta e a análise. O Apache Hive é um padrão eficaz para SQL-in Hadoop. O Impala é um mecanismo de consulta SQL de processamento paralelo que é executado no Apache Hadoop e usado para processar os dados que são armazenados no HBase (Hadoop Database) e no Hadoop Distributed File System. O Impala é um produto de código aberto para mecanismo de consulta SQL de processamento paralelo (MPP) para dados armazenados em um cluster de sistema local em execução no Apache Hadoop. O Apache Hive e o Impala são partes essenciais do sistema Hadoop.

Então, vamos estudar o Hive e o Impala em detalhes:

HIVE

  • O Apache Hive ajuda a analisar o enorme conjunto de dados armazenado no sistema de arquivos Hadoop (HDFS) e outros sistemas de arquivos compatíveis.
  • Hive QL - Para consultar dados armazenados no Hadoop Cluster .
  • Explora a escalabilidade do Hadoop por tradução .
  • O Hive NÃO é um banco de dados completo .
  • Não fornece atualizações em nível de registro .
  • O Hadoop é um sistema orientado a lotes .
  • As consultas do Hive têm alta latência devido ao MapReduce .
  • O Hive não fornece recursos do É próximo ao OLAP .
  • Mais adequado para aplicativos de data warehouse .
  • Consulta de execução via MapReduce .
  • a linguagem de consulta pode ser usada com funções escalares personalizadas (UDFs), agregações (UDAFs) e funções de tabela (UDTFs) .
  • O Hive também fornece Indexação para acelerar, tipo de índice incluindo compactação e índice de bitmap a partir de 0, 10, mais tipos de índice estão planejados.
  • Os tipos de armazenamento suportados pelo Hive são RCfile, HBase, ORC e ​​texto sem formatação .
  • Consultas do tipo SQL (Hive QL), que são implicitamente convertidas em tarefas MapReduce ou Tez ou Spark .
  • Por padrão, o Hive armazena metadados em um banco de dados incorporado do Apache Derby .

IMPALA

  • O Impala é um mecanismo de consulta executado no Hadoop . A distribuição pública do teste beta foi anunciada em outubro de 2012 e ficou disponível em maio de 2013.
  • Ele suporta armazenamento HDFS Apache HBase e Amazon S3 .
  • Lê os formatos de arquivo Hadoop, incluindo texto, Parquet, Avro, RCFile, LZO e arquivo de sequência .
  • Oferece suporte à segurança do Hadoop (autenticação Kerberos) .
  • Usa metadados, driver ODBC e sintaxe SQL do Apache Hive .
  • Ele suporta vários codecs de compactação:

(a) Snappy (recomendado pelo seu equilíbrio efetivo entre a taxa de compressão e a velocidade de descompressão),

(b) Gzip (recomendado para atingir o nível mais alto de compactação),

(c) Deflate (não suportado para arquivos de texto), Bzip2, LZO (somente para arquivos de texto);

  • Ele permite consultar estruturas aninhadas, incluindo mapas, estruturas e matrizes.
  • Ele permite consultas simultâneas para vários usuários e também permite o controle de admissão com base na priorização e na fila de consultas.

Comparações cara a cara entre Hive vs Impala (Infográficos)

Abaixo está a comparação dos 20 principais entre Hive e Impala

Diferença de chave entre Hive e Impala

As diferenças entre Hive e Impala são explicadas nos pontos apresentados abaixo:

  • O Hive é desenvolvido pela equipe de Jeff no Facebook, mas o Impala é desenvolvido pela Apache Software Foundation .
  • O Hive suporta o formato de arquivo do formato ORC (coluna otimizada de linhas) com compactação Zlib, mas o Impala suporta o formato Parquet com compactação instantânea .
  • O Hive é escrito em Java, mas o Impala é escrito em C ++.
  • A velocidade de processamento de consultas no Hive é lenta, mas o Impala é 6-69 vezes mais rápido que o Hive .
  • No Hive, a latência é alta, mas no Impala, a latência é baixa .
  • O Hive suporta o armazenamento de arquivos RC e ORC, mas o armazenamento do Impala é o Hadoop e o Apache HBase .
  • O Hive gera expressão de consulta em tempo de compilação, mas na geração do código Impala para '' grandes loops '' acontece durante o tempo de execução .
  • O Hive não suporta processamento paralelo, mas o Impala suporta processamento paralelo.
  • O Hive suporta o MapReduce, mas o Impala não suporta o MapReduce .
  • No Hive, não há recurso de segurança, mas o Impala oferece suporte à autenticação Kerberos .
  • Em uma atualização de qualquer projeto em que compatibilidade e velocidade sejam importantes, o Hive é a escolha ideal, mas para um novo projeto, o Impala é a escolha ideal .
  • A ramificação é tolerante a falhas, mas o Impala não suporta tolerância a falhas .
  • O Hive oferece suporte a tipos complexos, mas o Impala não oferece suporte a tipos complexos .
  • O Hive é o Hadoop MapReduce baseado em lote, mas o Impala é o banco de dados MPP .
  • O Hive não suporta computação interativa, mas o Impala suporta computação interativa .
  • A consulta do Hive tem um problema de "partida a frio", mas no processo daemon Impala é iniciado no próprio momento da inicialização .
  • O gerenciador de recursos do Hive é YARN (Yet Another Resource Negotiator), mas no Impala o gerenciador de recursos é nativo * YARN .
  • As Distribuições Hive são todas distribuição Hadoop, Hortonworks (Tez, LLAP), mas na distribuição Impala são Cloudera MapR (* Amazon EMR) .
  • O público do Hive é o Data Engineers, mas o público do Impala são analistas de dados / cientistas de dados.
  • A taxa de transferência da seção é alta, mas a taxa de transferência do Impala é baixa .

Tabela de comparação Hive vs Impala

Número de série.Base para comparaçãoColmeiaImpala
1Desenvolvido porFacebookApache Software
Fundação
2)Formato de arquivo
  • Arquivo de sequência.
  • Arquivo de texto.
  • Formato de coluna de linha otimizada (ORC) com compactação Zlib.
  • Formato de arquivo RC.
  • Formato parquet com compressão rápida.
  • Avro
  • LZO
  • Arquivo de sequência.
3)LínguaEscrito em JAVAEscrito em C ++
4)Velocidade de processamentoHive is SlowImpala é rápido
5)LatênciaAltoBaixo
6Suporte de armazenamentoArquivo RC, ORCHadoop, Apache HBase
7)Conversão de códigoGera expressão de consulta em tempo de compilaçãoA geração de código acontece em tempo de execução.
8)Suporta processamento paraleloNãosim
9Suporte do MapReducesimNão
10)Segurança do HadoopNãoSuporta autenticação Kerberos.
11)UsoIdeal para atualização de projetoIdeal para iniciar o novo projeto.
12)Tolerante a falhasA ramificação é tolerante a falhas.Não suporta tolerância a falhas.
13)Tipos complexosO Hive suporta tipos complexos.O Impala não suporta tipos complexos.
14)Tipo de banco de dadosO Hive é um Hadoop MapReduce baseado em lote.É um banco de dados MPP
15Computação interativaNão suporta computação interativa.Suporta computação interativa.
16ExecuçãoA consulta do Hive tem um problema com o "Cold Start"O processo Impala sempre inicia no momento da inicialização dos Daemons.
17Gestão de recursosFIONative * YARN
18DistribuiçõesHIVE - todas as distribuições do Hadoop, Hortonworks (Tez, LLAP)Cloudera MapR,
(* Amazon EMR)
19PúblicoEngenheiros de dadosAnalista de Dados / Cientistas de Dados
20Taxa de transferênciaAlto rendimentoBaixo rendimento

Conclusão - Hive vs Impala

Neste artigo, tentamos mostrar que o que são duas tecnologias, a saber, Hive e Impala, e também a diferença básica entre essas tecnologias. Em termos práticos, podemos dizer que Hive e Impala não são os concorrentes, pois ambos pertencem à mesma base que é conhecida como MapReduce para executar as consultas, o uso de ambos pode criar a diferença. De acordo com nossa necessidade, podemos usá-lo juntos ou o melhor, de acordo com a compatibilidade, necessidade e desempenho. A linguagem de consulta do Hive é o Hive QL, que é um idioma muito versátil e universal, enquanto o Impala consome muita memória e não funciona bem para o processamento de operações de dados pesados, como consultas de junção. Se o trabalho do seu projeto estiver relacionado ao processamento em lote de uma grande quantidade de dados, o Hive será melhor nesse caso e se o seu trabalho estiver relacionado ao processo em tempo real de uma consulta ad-hoc sobre dados, o Impala será melhor em Aquele caso.

Artigo recomendado

Este foi um guia para o Hive Vs Impala, seu significado, comparação cara a cara, diferenças principais, tabela de comparação e conclusão. Você também pode consultar os seguintes artigos para saber mais -

  1. Apache Hive vs Apache Spark SQL - 13 diferenças surpreendentes
  2. Hive VS HUE - As 6 melhores comparações úteis para aprender
  3. Apache Pig vs Apache Hive - As 12 principais diferenças úteis
  4. Hadoop vs Hive - Descubra as melhores diferenças
  5. Usando a função ORDER BY no Hive

Categoria: