Pergunta

Estou interessado em descobrir como o recém-lançado (http://mirror.facebook.com/facebook/hive/hadoop-0.17/) O Hive se compara ao HBase em termos de desempenho.A interface semelhante a SQL usada pelo Hive é muito preferível à API HBase que implementamos.

Foi útil?

Solução

É difícil encontrar muita coisa sobre o Hive, mas encontrei isso trecho no site do Hive que se inclina fortemente a favor do HBase (negrito adicionado):

O Hive é baseado no Hadoop, que é um sistema de processamento em lote.Assim, este sistema não e não podemos prometer baixas latências nas consultas.O paradigma aqui é estritamente enviar trabalhos e ser notificado quando os trabalhos são concluídos, em vez de consultas em tempo real.Como resultado, não deve ser comparado com sistemas como o Oracle, onde a análise é feita em uma quantidade significativamente menor de dados, mas a análise prossegue de forma muito mais iterativa, com os tempos de resposta entre as iterações sendo inferiores a alguns minutos. Para consultas do Hive, os tempos de resposta até mesmo para os menores trabalhos podem ser da ordem de 5 a 10 minutos e, para trabalhos maiores, isso pode até levar horas.

Como o HBase e o HyperTable têm tudo a ver com desempenho (sendo modelados no BigTable do Google), eles certamente seriam muito mais rápidos que o Hive, ao custo da funcionalidade e de uma curva de aprendizado mais alta (por exemplo, eles não têm junções ou o SQL -sintaxe semelhante).

Outras dicas

De uma perspectiva, o Hive consiste em cinco componentes principais:uma gramática e analisador semelhante ao SQL, um planejador de consultas, um mecanismo de execução de consultas, um repositório de metadados e um layout de armazenamento colunar.Seu foco principal são cargas de trabalho analíticas no estilo data warehouse, portanto, a recuperação de valores por chave com baixa latência não é necessária.

O HBase possui seu próprio repositório de metadados e layout de armazenamento colunar.É possível criar consultas HiveQL em tabelas HBase, permitindo que o HBase aproveite a gramática e o analisador do Hive, o planejador de consultas e o mecanismo de execução de consultas.Ver http://wiki.apache.org/hadoop/Hive/HBaseIntegration para mais detalhes.

Hive é uma ferramenta analítica.Assim como o pig, ele foi projetado para processamento em lote ad hoc de quantidades potencialmente enormes de dados, aproveitando a redução de mapa.Pense em terrábytes.Imagine tentar fazer isso em um banco de dados relacional...

HBase é um armazenamento de valor-chave baseado em coluna baseado em BigTable.Você não pode fazer consultas por si só, embora possa executar tarefas de redução de mapa no HBase.Seu principal caso de uso é buscar linhas por chave ou verificar intervalos de linhas.Um recurso importante é ser capaz de ter localidade de dados ao varrer intervalos de chaves de linha em busca de uma 'família' de colunas.

Pelo que sei, o Hive é mais comparável ao Pig.O Hive é semelhante ao SQL e o Pig é baseado em script.O Hive parece ser mais complicado com otimização de consulta e mecanismos de execução, além de exigir que o usuário final especifique parâmetros de esquema (partição, etc.).Ambos destinam-se a processar arquivos de texto, ou sequenceFiles.

HBase é para armazenamento e recuperação de dados de valor-chave ... você pode verificar ou filtrar esses pares de valores-chave (linhas).Você não pode fazer consultas em linhas (chave, valor).

Desde os lançamentos mais recentes do Hive, muita coisa mudou e requer uma pequena atualização, pois Hive e HBase agora estão integrados.O que isso significa é que o Hive pode ser usado como uma camada de consulta para um armazenamento de dados HBase.Agora, se as pessoas estão procurando interfaces HBase alternativas, o Pig também oferece uma maneira muito boa de carregando e armazenando dados HBase.Além disso, parece Cloudera Impala pode oferecer consultas baseadas em Hive de desempenho substancial sobre HBase.Eles reivindicam consultas até 45x mais rápidas em relação às configurações tradicionais do Hive.

Hive e HBase são usados ​​para diferentes propósito.

Colmeia:

Prós:

  1. Colmeia Apache é um infraestrutura de armazenamento de dados construído em cima Hadoop.
  2. Permite consultar dados armazenados em HDFS para análise através HQL, um Linguagem semelhante a SQL, que será convertido em séries de Mapear trabalhos de redução
  3. Ele só funciona processos em lote no Hadoop.
  4. isso é Compatível com JDBC, ele também se integra a ferramentas existentes baseadas em SQL
  5. Colmeia suporta partições
  6. Ele suporta consulta analítica de dados coletados durante um período de tempo

Contras:

  1. Atualmente não suporta declarações de atualização
  2. Deve ser fornecido com um esquema predefinido para mapear arquivos e diretórios em colunas

HBase:

Prós:

  1. Um escalável, banco de dados distribuído que suporta armazenamento de dados estruturados para tabelas grandes
  2. Ele fornece acesso aleatório de leitura/gravação em tempo real ao seu Big Data.As operações HBase são executadas em tempo real em seu banco de dados, em vez de tarefas MapReduce
  3. ele suporta partições para tabelas, e as tabelas são divididas em famílias de colunas
  4. Dimensiona horizontalmente com grande quantidade de dados usando Hadoop
  5. Fornece acesso baseado em chave aos dados ao armazenar ou recuperar.Isto suporta adicionar ou atualizar linhas.
  6. Apoia versão De dados.

Contras:

  1. As consultas HBase são escritas em uma linguagem personalizada que precisa ser aprendida
  2. HBase não é totalmente compatível com ACID
  3. Não pode ser usado com padrões de acesso complicados (como junções)
  4. Também não é um substituto completo para HDFS ao fazer MapReduce em lotes grandes

Resumo:

O Hive pode ser usado para consultas analíticas enquanto o HBase para consultas em tempo real.Os dados podem até ser lidos e gravados do Hive para o HBase e vice-versa.

Para comparar o Hive com o Hbase, gostaria de relembrar a definição abaixo:

Um banco de dados projetado para lidar com transações não foi projetado para lidar com análises.Não está estruturado para fazer análises bem.Um data warehouse, por outro lado, é estruturado para tornar a análise rápida e fácil.

Hive é uma infraestrutura de data warehouse construída sobre Hadoop que é adequada para trabalhos de ETL de longa duração.Hbase é um banco de dados projetado para lidar com transações em tempo real

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top