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
Postar um comentário