Este site está em conformidade com a Lei Geral de Proteção de Dados (LGPD) e utiliza cookies para oferecer uma melhor experiência ao visitante. Ao navegar, você consente com a nossa Política de Cookies e com nossa Política de Privacidade.

Hadoop

21/jun/2013
|
Equipe Triscal

imagem destacada do artigo HadoopO Hadoop talvez seja o principal produto relacionado a Big Data, estando presente em praticamente todos os pacotes comerciais ou não de Big Data. Porém nem todos sabem o que é o Hadoop e o que se pode fazer com ele. É isso que pretendo explicar resumidamente nesse post.

O que é o Hadoop ?

O Hadoop em si é um produto open-source da Apache e serve para realizar basicamente duas tarefas: o armazenamento distribuído de dados e o processamento distribuído. Distribuído, nesse caso, significa que o armazenamento e o processamento são realizados em paralelo através de várias máquinas em cluster. O Hadoop possui uma infraestrutura, ou framework, que permite o gerenciamento de seu ambiente de cluster. Uma das premissas do Hadoop, no início, era permitir a utilização de máquinas “commodity”, criando clusters a um custo reduzido e com fácil de adição de novos nós.

A arquitetura em cluster do Hadoop traz os seguintes benefícios:

  • alta performance de armazenamento e processamento, já que isso é realizado em paralelo;
  • alta disponibilidade, pois o Hadoop faz o gerenciamento necessário caso uma ou mais máquinas falhem;
  • alta confiabilidade, pois o Hadoop faz o gerenciamento de redundância dos dados;
  • não há necessidade de realização de backups, o que aumenta ainda mais a disponibilidade;
  • conectividade ou facilidade de integração: existem centenas de outros produtos que funcionam de forma integrada ao Hadoop.

Armazenamento Distribuído

O Hadoop possui um sistema de arquivos (file system) chamado HDFS (Hadoop Distributed File System). Quando o HDFS recebe um arquivo que precisa ser armazenado, ele “quebra” o arquivo em pequenos segmentos e distribui estes segmentos pelas máquinas (data nodes) do cluster. Uma área de índices guarda a posição de cada segmento de cada arquivo ao longo do cluster (name node). Cada segmento ou, melhor dizendo, bloco, é gravado redundantemente em três nós distintos, para que não haja perda de dados em caso de falha.

O armazenamento distribuído permite que um cluster Hadoop suporte uma quantidade enorme de dados, que podem ser estruturados, semi-estruturados ou não-estruturados.

Processamento Distribuído

O Hadoop possui um framework de processamento distribuído chamado de Map-Reduce. Esse modelo atua em modo Batch e permite que os dados armazenados no HDFS sejam processados em paralelo com alta performance. Para explicar o processo, o que ocorre é como se o Hadoop recebesse um processamento e “quebrasse” esse processamento através das máquinas do cluster, de forma semelhante ao que ocorre no armazenamento dos blocos. Essa “quebra” dos “jobs” em “tasks” prioriza o processamento de blocos na mesma máquina ou pelo menos perto de onde o dado está armazenado e isso tudo ocorre em paralelo. Após o processamento em cada nó, os resultados obtidos são então consolidados e retornados (ou armazenados).

Existem diversos produtos e linguagens de programação que fazem uso do framework Map-Reduce do Hadoop. Vamos falar sobre isso adiante. O processamento distribuído permite uma alta performance e confere um enorme poder de processamento a um cluster Hadoop.

Ecossistema do Hadoop

Como já disse, o objetivo do Hadoop é armazenar e processar dados. Existe também uma grande variedade de projetos relacionados ao Hadoop, a maioria também open-source. Esses outros produtos funcionam de forma integrada ao Hadoop, beneficiando-se de seu framework de armazenamento e processamento distribuído de alta performance. A lista de produtos é bem extensa e já abordamos isso em outro post. De forma a ilustrar esse rico ecossistema, vamos relacionar apenas alguns produtos: Zookeeper, PIG, Hive, Jaql, Hue, Sqoop, Flume, HBase, Avro, Thrift, Oozie, Mahout, Chukwa, Drill, Lucene, Solr e R.

Para que serve o Hadoop

Pois bem, o Hadoop (em conjunto com o seu ecossistema) possui uma tremenda infraestrutura mas para que serve isso? Essa infraestrutura permite variados tipos de processamento de dados que suportam diversos aspectos do conceito de Big Data e seus Vs (cada autor utiliza a sua versão de número de Vs: 3 Vs, 4 Vs ou ainda mais), resumidamente:

  • Volume – processamento de enorme volume de dados;
  • Variedade – processamento dos mais diversos tipos e formatos de dados, estruturados ou não, provenientes de logs de máquina e web, sensores, redes sociais, documentos, emails etc;
  • Velocidade – performance que permite o armazenamento, processamento e análise de dados em grande volume e variedade.

Ao abrir possibilidades de processamento que antes não eram possíveis, o Hadoop e outras tecnologias de Big Data permitem a implementação de casos de uso para os mais diversos objetivos e indústrias, dentre os quais citaremos alguns. As análises podem ter objetivos específicos e definidos assim como também podem ser feitas para descobrir novos padrões e alavancar insights, interativamente ou usando ferramentas estatísticas ou de mineração de dados:

  • análise de dados de redes sociais, feedback e melhoria de produtos ou serviços, sentiment analysis, visão em 360 graus do consumidor, personalização, segmentação, promoção;
  • análise de dados de sensores, gerenciamento de inventário e estoque, logística, telecomunicações, geolocalização, indústrias de energia alternativas, petróleo, dados ambientais, plantações, entre outras;
  • análise de logs de transações financeiras, detecção de fraudes, risco, segurança;
  • setores públicos, transportes, trânsito, utilities, tragédias e desastres;
  • saúde, genoma, pesquisas, experimentos, diagnósticos;
  • etc.

É claro que, para atender aos objetivos dos casos de uso acima relacionados, o ecossistema do Hadoop deve fazer parte de uma solução mais abrangente, que envolva também tecnologias já consolidadas e implementadas nas empresas. A palavra chave aqui é Integração. O Hadoop deve funcionar integrado a bancos de dados relacionais, sistemas de BI (Business Intelligence) e Data Warehouses, Data Discovery, analytics, governança, segurança… Vamos dar um exemplo: uma vez que o dado foi armazenado, processado e consolidado em alta performance no Hadoop, por que não exportá-lo para o Data Warehouse/Data Mart e permitir assim sua consulta em dashboards, análises ou relatórios do BI pelos mais diversos níveis da organização? A infraestrutura existente será desta forma enriquecida com o Big Data.

Pacotes Comerciais com Hadoop

Grandes fornecedores da indústria de tecnologia de informação estão usando o Hadoop em suas soluções comerciais de Big data. Além de outros produtos para Big Data, em relação ao Hadoop a IBM possui o produto IBM InfoSphere BigInsights e a Oracle possui o Oracle Big Data Appliance e o Oracle Big Data Connectors. Os pacotes comerciais tendem a ser mais interessantes, pois possuem maior nível de integração, facilidades de instalação, configuração e gerenciamento, suporte, conectividade, aceleradores (tais como conectividade a redes sociais, sentiment analysis, processamento de texto) e ferramentas que estendem a capacidade do Hadoop e facilitam o seu uso, ou seja, são soluções completas para extrair o máximo que esse tipo de tecnologia tem a oferecer.

Big Data é um assunto bastante abrangente e complexo. Estarei postando, sempre que possível, novas matérias sobre o tema. Fique a vontade para comentar meus artigos e para sugerir temas para os próximos posts

imagem avatar fale conosco

Clique e fale conosco!