Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloudera, hortonworks
1. Big Data – HBASE , Integrando Hadoop , BI e DW , Montando o seu
ambiente Big Data ( Cloudera , Hortonworks e Pivotal ) – Parte 2
( Extraído do Blog bigdatabrazil.blogspot.com )
O que é o HBASE ?
O HBASE é um banco de dados do tipo NoSQL, não aderente ao modelo relacional, que
não provê acesso SQL aos dados armazenados. Os bancos de dados que estão sob este
rótulo NoSQL não podem exigir esquemas de tabela fixa e, geralmente, não suportam
instruções e operações de junção SQL, assim como não dispõem de colunas com tipos
de dados definidos, triggers, etc. Como exemplos de NoSQL, além do HBASE, temos o
MongoDB, o Amazon SimpleDB e o Oracle NoSQL.
O HBASE é orientado a colunas, sendo muitas vezes chamado de “Hadoop Database”,
permitindo operações CRUD em tempo real. Em 2010 deixou de ser um sub-projeto do
Hadoop, tornando-se um projeto independente (http://hbase.apache.org/). Assim como o
Hadoop, roda em plataforma clusterizada e foi projetado para suportar tabelas com
bilhões de linhas.
Sua melhor aplicabilidade é quando temos uma quantidade de dados muito grande,
aproveitando assim o potencial do cluster Hadoop / HDFS. Com bases de dados que
utilizem 5 nós ou mais o HBASE realmente mostra o seu potencial. O HBASE também é
muito bom quando existe uma variabilidade nos schemas (ex. linhas diferentes), mas não
recomendamos o uso para substituir aplicações transacionais baseadas em RDBMs.
Com o HBASE podemos realizar o “sharding”, que é o particionamento de grandes
bancos de dados em bancos menores, distribuídos em servidores diferentes, mais
facilmente gerenciáveis, também chamados de “data shards”. “sharding” é equivalente ao
Particionamento Horizontal.
O HBASE emprega Master Servers para gerenciar todo o cluster e Region Servers para
servir uma ou mais regiões. Os nós são replicados e balanceados para garantir alta
escalabilidade, rápido failover e balanceamento de carga para ótimo acesso aos dados.
No HBASE os dados são armazenados em Tabelas, que por sua vez têm Linhas,
compostas de Colunas, que podem ser agrupadas em Famílias de Colunas. Uma tabela
pode estar particionada em diversos servidores de região (Region Servers). Podemos
dizer que as Regiões são os elementos básicos para a alta disponibilidade e distribuição
das Tabelas e são compostas de “Stores” para Famílias e Colunas. Cada “Store” tem uma
memstore , que guarda modificações em mémoria para os pares de chaves e valores, e 0
a N StoreFiles (HFiles). Para cada Região temos uma chave inicial e uma chave final.
2. Determinar o tamanho de um servidor de região é uma tarefa que requer conhecimento
do padrão de acesso versus quantidade de dados acessada.
Os dados armazenados como pares de chaves e valores (“key-value pairs”), são
gravados em arquivos HFiles/StoreFiles, sendo salvos normalmente no HDFS em um nó
particular. Os arquivos HFile não suportam remoção de pares de chaves. Quando um
dado é adicionado ele é gravado no log WAL (Write Ahead Log) e em memória
(memstore). Quando a quantidade de dados in-memory excede o valor máximo
configurado, é realizado o flush de memória para HFile.
O HBASE utiliza o Zookeeper (zookeeper.apache.org) para gerenciar todos os Region
Servers. O Zookeeper é um serviço centralizado para manter informações de
configuração, nomeação de servidores, provimento de serviços de grupos e provimento
de sincronização distribuída.
Podemos acessar os dados armazenados no HBASE através de uma API Java, por linha
de comando (HBASE Shell) , Python, Avro, Rest, Thrift, etc. Como o HBASE é todo
construído em Java, a maneira mais rápida de acessá-lo é usando a API Java. Esta API
permite
criar
tabelas,
fazer
Put,
Get,
Scan,
Delete,
etc.
Além deste blog tenho selecionado alguns artigos interessantes no Scoop em:
http://www.scoop.it/t/big-data-brazil
3. Integrando Hadoop, BI e DW
O relatório sobre integração do Hadoop com ambientes de Business Intelligence e Data
Warehouse
corporativos
(TDWI_BPReport_Q213_IntegratingHadoopBIDW_rev.pdf),
publicado pela TDWI (www.tdwi.org) no final do primeiro semestre de 2013, indica que a
maioria das empresas consultadas veem o Hadoop e seu ecossistema de produtos e
parceiros como uma oportunidade para complementar os seus ambientes de BI e Data
Warehouse, possibilitando o desenvolvimento de novos tipos de relatórios analíticos,
originados de fontes não estruturadas, gerados por máquinas, navegação em servidores
web, dados de sensores, RFID, georeferenciamento, etc.
Como já falamos em posts anteriores, o Hadoop tem como sistema de arquivos padrão o
HDFS, que permite adicionar mais processamento e área de armazenamento ao cluster
Hadoop a partir do uso de equipamentos de baixo custo e facilmente encontrados no
mercado. Desta forma ao adicionar o Hadoop ao ambiente de BI e DW, podemos utilizar
o HDFS como área de staging ou sandbox para os DW corporativos, assim como
também é podemos utilizar o HDFS como área de arquivamento e repositório para
conteúdos digitais tais como vídeos, áudios e documentos.
Outro ponto importante em que o Hadoop pode auxiliar é na questão da escalabilidade e
performance dos ambientes de BI. As aplicações de BI que muitas vezes levam horas de
processamento noturno para gerar resultados para os clientes, podem se beneficiar da
escalabilidade e do processamento em paralelo da plataforma Hadoop. Os dados de
origem, vindos de diversas fontes, podem ser tratados na área de staging HDFS,
utilizando o MapReduce, o Pig ou o Hive, gerando as agregações e granularidades
necessárias que serão posteriormente transferidas para um banco de dados relacional
utilizando ferramentas de integração similares ao Apache Sqoop.
Existe também a possibilidade de mesclar o consumo de informações armazenadas em
ambiente Hadoop (Hive, HBASE, etc) com informações existentes em ambientes
relacionais, consolidando as mesmas em um único Dashboard. Uma das ferramentas de
BI que permite realizar este tipo de operação é a ferramenta Tableau
( www.tableausoftware.com ).
4. Atualmente o Hadoop já está sendo aplicado para aplicações analíticas que envolvem o
processamento de registros de detalhes de chamadas em telecomunicações (CDRs),
documentos XML empregados em portais da indústria da cadeia de suprimentos,
documentos não estruturados usados nas reivindicações de seguros, uso de dados
espaciais em aplicações de logística e transporte, e em uma grande variedade de
analíticos baseados em dados de registro de máquinas e sensores.
Estes relatórios analíticos baseados em Hadoop são muitas vezes utilizados em silos
departamentais, mas a tendência é de integração de dados do Hadoop e do DW
corporativo, de forma que tenhamos uma maior visibilidade e integração das informações
possibilitando uma melhor análise dos processos e desempenho dos negócios
empresariais.
Montando o seu ambiente Big Data (Cloudera, Hortonworks e Pivotal)
Existem hoje no mercado diversas opções para montar um ambiente para processamento de
grandes quantidades de dados utilizando a plataforma Big Data (Hadoop, HDFS, Hive, HBASE,
Pig, etc).
Uma das opções iniciais é montar seu próprio cluster com máquinas servidoras de baixo custo
existentes no mercado, fazer o download dos softwares do site da Fundação Apache, realizar as
instalações e configurações necessárias para utilizá-lo da maneira mais rápida possível, sem
pagamento de licenças ou mensalidades de manutenção de software. Caso não tenha os recursos
necessários é possível com apenas uma máquina configurar e testar o ambiente do Hadoop.
Normalmente este é o caminho utilizado durante o aprendizado ou por pequenas empresas, que
ainda não podem arcar com custos adicionais. Nestes casos o suporte e resolução de problemas
é feito por buscas na internet, buscas em comunidades ou com o auxílio de profissionais com
experiência nestes ambientes.
5. Existem também grandes empresas que mantém diversos datacenters e diversos times
especializados, tanto de infraestrutura como de desenvolvimento e suporte e que utilizam o
software da Fundação Apache, sem modificações ou adaptado com suas próprias versões dos
pacotes.
Como alternativa ao Hadoop obtido diretamente por download do site da Apache, que não
possui estrutura de suporte profissional especializado, existem no mercado algumas distribuições,
dentre as quais gostaria de destacar a distribuição da Pivotal (http://www.gopivotal.com/), a da
Hortonworks (http://hortonworks.com/) e a da Cloudera (www.cloudera.com).
A distribuição Pivotal HD Enterprise é uma distribuição comercial do Apache Hadoop que inclui
o HDFS, MapReduce, Hive, Mahout, Pig, HBase, Yarn, Zookeeper, Sqoop e Flume da Fundação
Apache, suportados por uma das maiores organizações de suporte Hadoop e testados em larga
scala com mais de 1000 nós utilizando também o Pivotal Analytics Workbench. É 100% baseada
na plataforma Hadoop, possui um engenho de SQL próprio para o Hadoop, está disponível como
solução baseada em appliances e conta com a infraestrutura de suporte global 24X7 da EMC.
O engenho de banco de dados SQL ANSI da Pivotal é o HAWQ. Com este engenho de BD a
empresa pode rapidamente utilizar uma nova plataforma voltada para processamento de grandes
volumes de dados e reutilizar todo o conhecimento de SQL que seus profissionais tem acumulado
ao longo dos anos, não sendo necessário aprender novas linguagens de imediato, tornado assim
a curva de aprendizado mais suave.
O Hortonworks é uma distribuição do Hadoop que também tem suporte pago, próprio para
companhias que pretendem utilizar a plataforma Hadoop, mas não podem prescindir de um
suporte especializado. O Hortonworks, além de executar em sistema operacional Linux, executa
também em Servidores Windows, diferentemente da distribuição da Apache, que não é própria
para executar em Windows. No ambiente Windows a distribuição da Apache deve ser executada
6. usando o Cygwin, que é um software que emula o Unix no Windows.
Outra distribuição existente no mercado é a Cloudera, que oferece software, serviços e suporte
em 3 formatos. O Cloudera Enterprise, que inclui o Clodera Distribution Hadoop (CDH), uma
subscrição anual por nós utilizados do Cloudera Manager Enterprise e suporte técnico. Já o
pacote Cloudera Enterprise Free, inclui o CDH e uma versão mais simples do Cloudera Manager.
Existe também uma versão free sem suporte. O Cloudera Manager permite fazer o deployment
rápido de novos nós, gerenciar e monitorar a performance do cluster CDH. As funções mais
avançadas do Cloudera Manager , estão presentes apenas na versão Enterprise. Em Outubro de
2012 a Cloudera lançou o Impala, que é um engenho de queries MPP, que roda sob o Hadoop. O
projeto Impala traz a tecnologia de banco de dados para o Hadoop, permitindo execução de
queries com baixa latência para dados ar,azenados no HDFS e no HBASE, uso de SQL,
integração com ferramentas de BI e Analíticos( Tableau, Microstrategy, QlikView, Pentaho, etc).
( Extraído do Blog bigdatabrazil.blogspot.com )