Fundamentos sobre MapReduce
Este artigo apresenta a técnica MapReduce para processamento de grandes coleções de dados, empregando o poder da computação distribuída/paralela, e propondo um modelo de programação que simplifica o desenvolvimento de aplicações BigData.
Artigos Java Fundamentos sobre MapReduce
Por que eu devo ler este artigo: Este artigo apresenta a técnica MapReduce para processamento de grandes coleções de dados, empregando o poder da computação distribuída/paralela, e propondo um modelo de programação que simplifica o desenvolvimento de aplicações BigData. MapReduce é um dos alicerces de ferramentas que manipulam o BigData, entre as quais se destaca Apache Hadoop, bem como contribui para soluções em grandes companhias, como Google, Facebook e Yahoo.
Em que situação o tema é útil: A compreensão do funcionamento da técnica MapReduce ajuda no desenvolvimento de aplicações críticas que trabalham com BigData, que são bancos de dados difíceis de serem manipulados por tecnologias convencionais. Entretanto, a adoção de uma implementação MapReduce, como o Hadoop, por exemplo, requer habilidades específicas sobre o modelo de programação MapReduce, que introduz novas exigências na forma de modelar a abstração sobre os dados e processar BigData.
Um dos grandes desafios computacionais da atualidade é armazenar, manipular e analisar, de forma inteligente, a grande quantidade de dados existente. Sistemas corporativos, serviços e sistemas Web, como redes sociais e buscadores com acesso a bases de dados de imagens e mapas, além de diversas fontes heterogêneas, produzem juntos um volume de dados acima da capacidade de processamento realizado por tecnologias tradicionais de banco de dados relacional. Nesse contexto, o termo BigData foi criado para definir essa realidade descrita em termos dos "3v": volume de dados em grande quantidade (acima de Terabytes); velocidade na criação e captura dos dados brutos a taxas muito rápidas; e, variedade no formato dos dados, podendo ser estruturado, semiestruturado, e até mesmo não estruturado, ou uma combinação dessas variações.
Diante desse desafio, na primeira década de 2000, alguns pesquisadores e engenheiros da computação aprimoraram e construíram soluções para tornar mais eficiente o acesso e a análise ao BigData. Entre esses cientistas, dois engenheiros do Google, Jeffrey Dean e Sanjay Ghemawat, desenvolveram a tecnologia MapReduce, que possibilitou otimizar a indexação e catalogação dos dados sobre as páginas Web e suas ligações. O MapReduce permite dividir um grande problema em vários pedaços e distribuí-los em diversos computadores de baixo custo. Essa técnica deixou o sistema de buscas do Google mais rápido mesmo sendo executado em computadores convencionais e menos confiáveis, reduzindo os investimentos ligados à infraestrutura.
Este artigo é um resgate à publicação do trabalho desses dois cientistas, cujo texto denominado MapReduce: Simplified Data Processing on Large Clusters, de 2004 (ver a referência na seção Links), inspirou a implementação do Hadoop, a ferramenta open source consagrada no tratamento e análise do BigData. Portanto, neste artigo, serão apresentadas a definição e as origens do modelo funcional, como o MapReduce funciona e as principais características e aplicações, além de apontar alguns problemas potenciais que inviabilizam o uso da técnica.
Nota: O Apache Hadoop é um framework open source para o armazenamento e processamento de dados em larga escala. O Hadoop oferece como ferramentas principais o MapReduce, responsável pelo processamento distribuído, e o Hadoop Distributed File System (HDFS), para armazenamento de grandes conjuntos de dados, também de forma distribuída. Embora recente, o Apache Hadoop tem se destacado como uma ferramenta eficaz, sendo utilizado por grandes corporações como IBM, Oracle, Facebook, Yahoo!, entre outras.