Utilizando o HBASE



O HBASE é uma ferramenta do ambiente Hadoop para armazenamento de dados, não relacional, distribuída, orientada a colunas, que permite a gravação e leitura de dados, sem a necessidade de definir previamente schemas, o que lhe garante flexibilidade. Ele foi desenhado para ter escalabilidade, tanto em termos de linhas e colunas, como em termos de nós utilizados, sendo particionável automaticamente, com uma arquitetura que garante tolerância a falhas e tem seu ambiente controlado pelo Zookeeper. Outra característica importante do HBASE é que ele foi projetado para utilização em clusters de servidores do tipo commodity.  Quando citamos servidores tipo commodity devemos focar em hardware de marcas padrão de mercado (Dell, HP, Lenovo, etc), com qualidade e bom MTBF, mas que não são os servidores de alto custo normalmente necessários para os atuais sistemas de banco de dados. O HBASE não utiliza índices, permite acesso via linha de comandos e possui uma API Java que permite importar, inserir, “scanear” dados (similar a um cursor SQL).

Exemplos de comandos no Shell HBASE:

- create ‘teste’, ‘dados’  - cria a tabela teste com a coluna dados
- put ‘teste’, ‘row1’, ‘dados:1’, ‘valor1’  - inserir linha com valor1 na coluna dados da tabela teste
- put ‘teste’, ‘row2’, ‘dados:2’, ‘valor2’  - inserir linha com valor2 na coluna dados da tabela teste
- scan ‘teste’  - lista tabela teste


Podemos destacar o HBASE como excelente candidato para uso em aplicações que tenham quantidades massivas de dados e que necessitem de grande escalabilidade. Como exemplos deste tipo de uso podemos citar o armazenamento e consulta a dados de uso de clientes de provedores de serviços de comunicação (Communication Services Providers), informações em tempo real de sensores, dados de comportamento de usuários em sites e dados de monitoração de sites e sistemas.  O HBASE é a ferramenta indicada para substituir estes grandes bancos de dados que precisam ter grande escalabilidade e tolerância a falhas, sem ter os altos custos de licenciamento de software e aquisição de hardware.

Atualmente todo armazenamento de mensagens no Facebook é feito utilizando o HBASE, que também é utilizado em buscas e na monitoração em tempo real dos servidores. O Facebook mantém uma página ( https://www.facebook.com/UsingHbase ) com os principais eventos, blogs, dicas e casos de uso do HBASE no seu ambiente.




 


 

No quadro abaixo temos alguns números de uso do HBASE no Facebook, sendo um dos mais impressionantes a quantidade de 75 Bilhões de operações de Read & Write por dia.

 




No caso do sistema de monitoramento em tempo real do Facebook, este utilizava inicialmente MySQL, mas a solução apresentou problemas de escalabilidade, indisponibilidade e dificuldade no gerenciamento do crescimento da base que levaram a equipe de engenheiros a substituí-lo pelo HBASE.    A figura abaixo descreve a arquitetura exemplo HBASE empregada no sistema de monitoração em tempo real do Facebook.

 




 Bem, obrigado e até o próximo post.

Comentários

Postagens mais visitadas deste blog

Hive, o que é ?

O que é o HDFS ?

O que é o HBASE ?