A verdade sobre o Hadoop

A imprensa frequentemente escreve sobre o Hadoop como se fosse uma única tecnologia ou até mesmo como um único produto. Mas isto está longe da verdade, o que cria ainda, uma falsa expectativa quanto a complexidade de uso do Hadoop em situações da vida real na indústria. Por isso, achei válido esclarecer isso e também fornecer uma visão geral dos principais componentes de Hadoop, além de abordar como eles podem ser usados na indústria de serviços financeiros.

Hadoop-Logo1

Para começar, o Hadoop não é uma tecnologia única ou um produto único, e sim uma estrutura de tecnologias de código aberto relacionadas e que fornecem computação distribuída confiável e escalável.

Hadoop é baseado em duas tecnologias fundamentais:

  • HDFS (Hadoop Distributed File System) – um sistema de arquivo distribuído. Temos usado HDFS, por exemplo, para armazenar arquivos XML que representem um enorme arquivo de dados de trade. O HDFS permite que vários anos de dados sejam armazenados, com dados atuais e arquivados armazenados juntos – algo que um único sistema de arquivos ou banco de dados não seria capaz de fazer.
  • MapReduce – um modelo de programação para computação distribuída. MapReduce oferece uma API de Java para quebrar um trabalho “vergonhosamente paralelizável” em pedaços e associá-lo a uma série de servidores. Temos usado MapReduce para melhorar o desempenho dos processos ETL (Extract Transform Load), como por exemplo, o carregamento, a padronização e o enriquecimento diário de dados de dezenas de milhares de trades coletadas em um grande banco de investimento.

Com HDSFS e MapReduce podemos fazer muito, mas há muitas outras ferramentas de Hadoop que são necessárias para construir uma solução completa e pronta para utilização em empresas:

  • Sqoop – transferências maciças de dados entre HDFS e bancos de dados relacionais
  • Flume – compilação e transmissão de dados em HDFS
  • Oozie – coordenação e agendamento de tarefas MapReduce para que possam ser ligadas entre si, afim de criar um fluxo de trabalho mais complexo
  • Zookeeper – manutenção de informações de configuração e serviços de sincronização através Hadoop

HDFS e MapReduce são também tecnologias “de baixo nível”, e que nem sempre são muito fáceis de se usar, especialmente para um pessoal ‘não técnico’. Muitas ferramentas foram construídas em cima dessas duas tecnologias para fornecer uma interface mais simples, em especial para armazenamento de dados e data analytics:

  • HBase – um banco de dados distribuído para o armazenamento de grandes volumes de dados tabulares (“Milhões de colunas, bilhões de linhas”).
  • Hive – infra-estrutura data warehouse para consultas ad-hoc. Com sua sintaxe parecida, Hive é algo muito útil nas mãos de analistas que já dominam SQL.
  • Pig – Framework de execução do fluxo de dados e linguagem processual que permitem o processamento e a análise de dados. Como o Hive, o Pig cria tarefas MapReduce em execução, além de ser uma boa maneira de ficar longe de programação de baixo nível.
  • Mahout – um aprendizado de máquina escalável e data mining library. Mahout fornece algoritmos para clustering, classificação e filtragem colaborativa, sendo também útil para a triagem através de grandes volumes de dados para extrair insights.

Como você pode ver, o Hadoop não é única coisa, e sim uma coleção de ferramentas e tecnologias. Quando um cliente diz “nós queremos usar o Hadoop”, eu sei que ainda há várias outras opções de tecnologia remanescentes. E nós trabalhamos com nossos clientes para entender seu problema e projetar uma solução que reuna todas as diferentes peças. Definitivamente, não é tão fácil como a imprensa faz parecer.

Karl Rieder é Executive Consultant da GFT. Este artigo foi publicado originalmente em www.finextra.com