Banco de Dados

27 set, 2011

Os bancos de dados NoSQL – uma olhada no HBase

Publicidade

Em dois artigos anteriores, abordei o banco de dados NoSQL e falei sobre que ferramentas usar, além de tratar especificamente de alguns bancos de dados, como MongoDB, Redis e Riak.

Hoje, iremos dar uma olhada no Apache HBase –
originalmente criado para uso com o Apache Hadoop, um framework de software com suporte a aplicações
distribuídas com uso intensivo de dados sob licença livre.

Nossa missão nesses artigos é simplesmente te
ajudar a escolher os melhores bancos de dados NoSQL – dos quais a maior parte é
open-source e grátis. Afinal de contas, você quer ter certeza de que seus dados
estão sendo armazenados de maneira segura. Já não existem preocupações o
suficiente sobre segurança de dados – estejam os dados armazenados no cloud ou atrás
do seu firewall interno e privado?  

Apache HBase

Então, aqui está o que você consegue com o
Apache HBase!

O HBase
realmente é um clone (ou um parente muito próximo) do Bigtable do Google e,
como eu disse, ele foi originalmente criado para ser usado com o Hadoop. Na
verdade, o HBase é um subprojeto do projeto Hadoop do Apache.

O HBase oferece as capacidades de banco de dados
do Hadoop, o que você significa que você pode usá-lo como uma fonte para trabalhos
de  MapReduce. Ele é
um banco de dados orientado a colunas, e foi construído para fornecer pedidos
com baixa latência sob Hadoop HDFS. Diferentemente de bancos de dados colunares
que fornecem consistências eventuais, o HBase é bastante consistente.

Um cluster HBase usa vários tipos de servidores.
Por exemplo, o HDFS precisa de pelo menos um namenode e vários datanodes. Além
disso, o HBase precisa de um cluster ZooKeeper, de um servidor master e vários
servidores regionais. Os pedidos devem ser feitos ao(s) master(s).

No nível do HDFS, dados existentes não são
compartilhados automaticamente. No entanto, novos dados são compartilhados. No
nível do HBase, os dados são divididos em regiões que são divididas
automaticamente através de servidores regionais.

Algumas referências rápidas sobre o HBase

  • Orientação: Colunas
  • Criação: O HBase foi criado no Powerset em 2007 e então doado
    para o Apache.
  • Linguagem de Implementação: Java
  • Distribuída: Afirmativo. Você pode executar o HBase de forma
    autônoma, pseudodistribuída (várias instâncias do HBase estão rodando no mesmo
    host) ou no modo completamente distribuído.
  • Armazenamento: O HBase fornece capacidades parecidas com as do
    Bigtable no Hadoop File System.
  • Schema: HBase suporta dados não estruturados e parcialmente
    estruturados. Para fazer isso, os dados são organizados em famílias de colunas. Você endereça um registro individual, chamado de “célula” no
    Hbase, com uma combinação de row key, column family, cell qualifier, e time
    stamp. Em oposição ao RDBMS (sistemas de gerenciamento de bancos de dados
    relacionais), em que você deve definir bem sua tabela com antecedência, com o
    HBase você pode simplesmente nomear uma família de colunas e então permitir que
    a célula se qualifique para ser determinada a um certo tempo de execução. Isso
    permite que você seja bastante flexível e suporta uma abordagem ágil de
    desenvolvimento.
  • Cliente: Você pode interagir com o HBase via Thrift, um
    RESTful service gateway, Protobuf (veja “Recursos Adicionais” abaixo), ou um
    shell do JRuby.
  • Open source: Afirmativo (Licença Apache)
  • Uso de Produção: HBase tem sido usado na Adobe desde 2008.
    Também foi usado no Twitter, Mahalo, StumbleUpon, Ning, Hulu, World Lingo,
    Indonesia-based Detikcom e no Yahoo!.
  • Recursos Adicionais: Como o HBase é parte do projeto Hadoop,
    ele tem uma forte integração com o Hadoop. Existe um conjunto de classes de
    conveniência que permite que você execute facilmente trabalhos MapReduce usando
    o HBase para um background de armazenamento de dados.

Se você
quiser, o HBase irá permitir que você use a API do Protocolo Buffer do Google (Protobuf) como alternativa para o XML. O Protobuf é uma maneira muito eficiente de
serialização de dados. Ele tem a vantagem da compactação – os mesmos dados
ficam duas ou três vezes menores do que o XML, e de 20 a 100 vezes mais rápidos
de analisar do que o XML. Por quê? Devido à maneira como o protocolo transporta os bytes. Portanto, o que isso significa é que trabalhar
com o HBase pode ser bastante rápido. O Protobuf
é usado amplamente dentro do Google; eles incorporam quase 50 mil tipos
diferentes de mensagens dentro do Protobuf através de uma grande variedade de
sistemas.

Os bancos de dados vêm com uma interface de
usuário no console web para monitorar e gerenciar os servidores regionais e
masters.

De forma interessante, mais no início do ano, o Facebook recentemente
descartou o uso do Cassandra e adaptou o Hbase, porque seu modelo de
Mensagens precisava de uma replicação mais flexível – como o HBase.

Se você é um administrador de sistema, esperamos que essa
informação sobre o Apache HBase seja útil. E esperamos que você tenha cuidado –
não importa quão ousado seu banco de dados NoSQL seja – ele precisa de
monitoramento! 

?

Texto original disponível em http://blog.monitis.com/index.php/2011/05/31/the-nosql-databases-a-look-at-hbase/