20 de mar de 2018

O que é MapReduce, um modelo de programação criado pelo Google

Udacity Brasil

No trabalho de um cientista de dados, muitas vezes, é preciso lidar com big data, nome dado aos conjuntos de dados que, devido ao seu volume ou complexidade, não podem ser processados por ferramentas tradicionais.

E para compreender como é feito o processamento, a análise e o armazenamento de grandes quantidade de dados, é importante conhecer o MapReduce, um modelo de programação criado pelo Google.

Hoje, ele é utilizado em várias aplicações e em empresas de todo tipo de setor, inclusive grandes companhias de tecnologia como Yahoo!, Amazon Web Services (AWS), Intel, Microsoft e IBM.

Leia: 4 motivos para começar a aprender machine learning hoje

O que é o MapReduce

Desde o começo, o desafio do Google e de qualquer outra ferramenta de busca não era pequeno: indexar o volume de conteúdo na web e retornar resultados relevantes para seus usuários.

O MapReduce nasceu dentro desse contexto para analisar uma quantidade crescente de dados da melhor forma. A ferramenta se popularizou em 2014, ano em que o Google publicou um artigo descritivo sobre ela.

Apesar de não ter aberto o código da aplicação, as palavras bastaram para inspirar os desenvolvedores Doug Cutting e Mike Cafarella, criadores do Apache Hadoop, uma plataforma open source que democratizou o MapReduce.

Atualmente, o termo se refere a todo tipo de biblioteca ou aplicação que segue esse modelo de programação, que consiste em duas fases: mapeamento e redução.

Como funciona o MapReduce

Os programas escritos com base nesse paradigma rodam de forma paralela, normalmente em clusters (agrupamentos) de computadores. Os dados são gerados, processados e analisados de maneira distribuída e o processamento é feito por uma combinação de chaves e valores que podem estar em diferentes locais.

Na prática, isso significa que, em vez de depender da velocidade de leitura e escrita de dados de um único equipamento, o MapReduce usa várias máquinas para dividir o trabalho.

Uma analogia que ajuda a entender tanto o conceito do MapReduce quanto da computação paralela é imaginar que existe uma tarefa: contar o número de laranjas maduras em um cesto muito grande.

No método tradicional em que uma pessoa faz tudo, ela levaria muito tempo para contar as laranjas. Tanto tempo que, ao terminar o trabalho, outras laranjas teriam amadurecido no cesto.

No modelo do MapReduce, um coordenador responsável pela tarefa pode dividir as laranjas em 20 cestos, por exemplo, e vinte pessoas contam o que há em cada um deles e entregam o resultado de laranjas maduras em menor tempo.

Cabe então ao coordenador reduzir os vinte resultados em apenas uma saída e somar os valores retornados pelos contadores.

Se alguma pessoa não comparecer, a tarefa é redistribuída entre os presentes e continua sem nenhuma perda de informação ou performance, o que representa a tolerância a falhas do MapReduce.

Essa técnica não só reduz riscos de perda de dados devido a falhas das máquinas como também facilita a combinação das informações processadas pelos diversos equipamentos em uma única resposta.

As fases do MapReduce

Como o próprio nome revela, o MapReduce é baseado nas funções Map() e Reduce(). Sua operação se divide em duas etapas:

Fase 1: Mapeamento

Na primeira fase, chamada de Map (mapeamento), os dados são separados em pares de chave e valor, divididos em fragmentos e distribuídos para os nodes, onde serão processados.

Fase 2: Redução

Depois disso, acontece a etapa de Reduce (redução), que é a combinação dos processamentos dos nodes por um master node. É ele que entregará uma resposta única à requisição realizada pelo usuário.

No Hadoop, o resultado final é escrito em HDFS (Hadoop Distributed File System), o sistema de arquivos da plataforma que lida com grandes volumes de dados.

A tolerância a falhas mencionada anteriormente aparece aqui. Caso um sistema ou disco de armazenamento falhe por algum motivo, a tarefa é redistribuída pelo master node e não há perda significativa de dados ou de performance no processo.

Isso também significa que as empresas que utilizam esse modelo de programação gastam menos recursos com infraestrutura.

Leia: Porque Google, IBM e outras grandes empresas que não exigem diplomas

Por que utilizar o MapReduce para analisar dados em larga escala?

Uma das vantagens do paradigma do MapReduce é a velocidade da análise dos dados. Em ferramentas tradicionais de processamento de dados, é comum que eles sejam movidos do armazenamento para o processamento, o que é lento e inviável para grandes volumes.

Por essa razão, o MapReduce toma o caminho oposto e leva o processamento para os locais em que os dados estão armazenados, o que traz mais agilidade e eficiência à análise.

Outra vantagem é que, como o processamento é paralelo e fragmentado, pode acontecer mesmo em clusters de máquinas com configurações modestas – não é preciso ter um supercomputador.

O MapReduce também é relativamente simples e tem uma boa curva de aprendizado, mesmo quando comparado com outras soluções adotadas para lidar com big data, como o Spark ou o Mesos.

Essa facilidade de utilização e implementação, em grande parte graças ao alto engajamento da comunidade de Hadoop, se reflete na adoção maior desse modelo de programação.

Tudo indica que o número deve continuar crescendo, graças ao motor por trás da ferramenta, que também está em crescimento: a importância de big data para os negócios.

Segundo uma pesquisa de 2016 da Forrester Research, quase 40% das empresas disseram que estavam implementando ou expandindo suas estratégias de Big Data. Outras 30% planejavam investir na área no ano seguinte – e é provável que muitas delas apostem no MapReduce.

Leia: 9 ferramentas que agilizam o desenvolvimento Android

Sobre o autor
Udacity Brasil

A Udacity, conhecida como a "Universidade do Vale do Silício", é uma plataforma online e global que conecta educação e mercado para ensinar as habilidades do futuro – de data science e marketing digital à inteligência artificial e desenvolvimento. Hoje, há mais de 7 mil alunos ativos no país e 50 mil pelo mundo.