HBase
 sql >> Base de Dados >  >> NoSQL >> HBase

HBase e Hive – melhores juntos

Esta postagem do blog foi publicada no Hortonworks.com antes da fusão com a Cloudera. Alguns links, recursos ou referências podem não ser mais precisos.

Os computadores estão ficando mais inteligentes e nós não.

–Tim Berners Lee, Desenvolvedor Web

Google, Amazon e Netflix nos condicionaram. Como consumidores, esperamos aplicativos inteligentes que prevejam, sugiram e antecipem cada movimento nosso. Queremos que eles analisem as milhões de possibilidades e sugira apenas algumas que atendam às nossas necessidades. Queremos aplicativos que nos levem a uma jornada personalizada por um mundo de infinitas possibilidades.

Essas jornadas personalizadas exigem que os sistemas armazenem e compreendam grandes volumes de dados em um período de tempo aceitável. Este tem sido o ponto forte do Hadoop desde o primeiro dia.

Entregar a jornada também exige que os aplicativos se integrem diretamente à análise profunda. Isso continua sendo um desafio, pois a maioria dos sistemas operacionais é executada fora do Hadoop, colocando dados operacionais e análises em silos separados.



Tecnologias como Apache Hadoop YARN e Apache Slider estão começando a quebrar esses silos. O YARN fornece controles de isolamento de recursos do Hadoop que possibilitam analisar profundamente os dados do aplicativo no local, fornecendo respostas em um período de tempo aceitável. E o Apache Slider facilita a implantação de sistemas operacionais de longa duração no Hadoop.

O YARN é o centro de arquitetura do Hadoop que permite que vários mecanismos de processamento de dados, como SQL interativo, streaming em tempo real, ciência de dados e processamento em lote, lidem com dados armazenados em uma única plataforma, desbloqueando uma abordagem totalmente nova para análises. Isso fornece uma integração perfeita de sistemas operacionais e analíticos e uma base sobre a qual a empresa pode construir uma Arquitetura de Dados Moderna (MDA).


O estado da arte no Hadoop


É possível combinar operações e análises no Hadoop hoje e, de fato, vemos muitos de nossos clientes fazendo isso.

As peças que você precisa já estão no Hadoop:
  • Apache HBase é o banco de dados NoSQL para Hadoop e é ótimo para atualizações rápidas e acesso a dados de baixa latência.
  • Apache Phoenix (pioneiro pela Salesforce) é uma capa SQL para dados no HBase. A Phoenix já está investigando a integração com gerenciadores de transações como Tephra (da Cask).
  • O Apache Hive é o mecanismo SQL de fato para o Hadoop, que fornece a análise SQL mais profunda e oferece suporte a padrões de consulta em lote e interativos. Veja nossa postagem recente do Stinger.Next para avanços como o Hive LLAP.

Vemos nossos clientes usando essas partes hoje para criar aplicativos com análises profundas, por exemplo, um padrão muito comum que vemos inclui:
  • Usando o HBase como o armazenamento de dados operacionais on-line para atualizações rápidas de dados quentes, como partição atual para a hora, dia etc.
  • Executando consultas operacionais diretamente no HBase usando o Apache Phoenix.
  • Dados de envelhecimento em tabelas HBase to Hive usando padrões ETL padrão.
  • Realizar análises SQL profundas usando o Hive

Isso funciona, mas cria uma série de complexidades para os desenvolvedores. Por exemplo:
  • Qual ​​interface SQL eu uso e quando? Eu uso o Hive, que oferece SQL profundo, mas TPS baixo? Ou uso Phoenix com alto TPS e SQL básico? Ou eu uso os dois?
  • Se eu usar os dois, como compartilho dados entre o Hive e o HBase?
  • Como faço para ajustar meu cluster para que eu possa colocar o HBase e o Hive com sucesso ao atender meus SLAs?

Essas perguntas sugerem que é necessária uma integração mais profunda para simplificar a criação de aplicativos com análises profundas no Hadoop.

HBase e Hive:melhor juntos


Que oportunidades existem para uma integração mais profunda? Atualmente, os clientes estão reunindo soluções que utilizam HBase, Phoenix, Hive etc. para criar um sistema de circuito fechado sob medida para dados operacionais e análise SQL. Acreditamos que há uma oportunidade de fornecer integração pronta para uso com facilidade de uso e recursos adicionais, como transações, failover entre datacenters, etc.

Hive, HBase e Phoenix têm uma comunidade muito ativa de desenvolvedores e são usados ​​na produção em inúmeras organizações. Esses são recursos operacionais sólidos e comprovados que podem ser a base e o futuro do processamento de transações no Hadoop.

Assim, usando a mesma abordagem da bem-sucedida Iniciativa Stinger, a Hortonworks procura investir mais nesses projetos principais e criar impulso em vez de abandoná-los e começar de novo. Planejamos investir em melhorias que promovam uma experiência operacional e analítica integrada por meio de um Hive e HBase fortemente integrados. Isso aborda casos de uso reais e interessantes de uma maneira que preserva os investimentos e gera valor real para os clientes.

Vemos quatro grandes áreas de desenvolvimento para ajudar a concretizar a visão de aplicativos inteligentes:

1. Uma camada SQL unificada com Hive


Os desenvolvedores que criam aplicativos SQL não devem escolher entre diferentes soluções SQL, cada uma com seus próprios pontos fortes e fracos. Prevemos uma camada SQL unificada, habilitada pelo suporte do Hive para SQL:2011, que usa de forma transparente o mecanismo apropriado com base no padrão de acesso de consulta.



Essa combinação fornece um único dialeto SQL e um único conector. Arquitetos de dados e DBAs podem determinar onde os dados devem ser armazenados com base nos padrões de uso sem sobrecarregar os aplicativos do usuário com a necessidade de se conectar a vários sistemas.

2. Melhorando o HBase como uma loja operacional


O HBase está amadurecendo rapidamente como uma loja operacional e poderá assumir cargas de trabalho cada vez mais exigentes. No ano passado, o HBase adicionou uma interface SQL, indexação secundária e alta disponibilidade. Esses recursos continuarão a amadurecer e, além disso, o HBase adicionará recursos adicionais de nível empresarial, como transações multitabelas, entre datacenters e muito mais.

Projetos como Omid (Yahoo), Tephra (Cask), Trafodion (HP) etc. oferecem diferentes abordagens para trazer transações para o HBase. O Facebook desenvolveu o HydraBase, que permite transações entre datacenters. O Facebook testou o HydraBase em escala e está se movendo para disponibilizá-lo em HBase de código aberto (consulte HBASE-12259). À medida que esses sistemas amadurecem, o HBase será capaz de lidar com as cargas de trabalho mais exigentes.

3. Catálogo de Metadados Compartilhados e Gerenciador de Transações


Os dados criados no HBase devem ser automaticamente visíveis no Hive e vice-versa. Esse recurso torna o compartilhamento de dados entre online e analítico completamente trivial. Um gerenciador de transações compartilhado permite que o novo recurso ACID do Hive e as transações HBase multi-tabelas funcionem juntos sem problemas.

4. Suporte a cargas de trabalho mistas habilitadas para YARN


Hoje, os clientes normalmente implantam o HBase e o Hive em clusters separados. O desenvolvimento de um sistema analítico de loop fechado requer uma combinação eficaz de cargas de trabalho operacionais e analíticas de maneira multilocatário. Com o YARN, podemos criar efetivamente um sistema único, aproveitando o isolamento de recursos e as primitivas de gerenciamento de carga de trabalho no YARN para oferecer suporte a diferentes formas de acesso aos dados. O Slider faz uso deles quando implanta o HBase no YARN, enquanto o Hive LLAP e o Tez são aplicativos YARN nativos, simplificando assim o processo de execução de um sistema analítico de circuito fechado de acordo com um SLA previsível.

Conclusão


As empresas estão usando tecnologias já existentes disponíveis no HDP, como Apache HBase, Apache Hive, Apache Phoenix etc. . Esperamos aproveitar os mesmos padrões de integração para fornecer uma experiência perfeita para os clientes, tornando o Apache HBase e o Apache Hive melhores – melhores juntos, em vez de criar novas tecnologias para os usuários entenderem e consumirem.