Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloudera, hortonworks

6
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.

description

 

Transcript of Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloudera, hortonworks

Page 1: Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloudera, hortonworks

Big Data – HBASE , Integrando Hadoop , BI e DW , Mo ntando o seu ambiente Big Data ( Cloudera , Hortonworks e Pivota l ) – 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.

Page 2: Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloudera, hortonworks

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

Page 3: Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloudera, hortonworks

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 ).

Page 4: Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloudera, hortonworks

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, Hortonw orks 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.

Page 5: Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloudera, hortonworks

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

Page 6: Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloudera, hortonworks

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 )