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/














Qual a sua opinião?