Pages

quinta-feira, 31 de julho de 2014

Como o Google torna a nossas vidas e a deles mais fáceis com MapReduce

MapReduce é um modelo de programação que foi desenhado para processar grandes volumes de dados em paralelo, dividindo o trabalho em um conjunto de tarefas independentes. Programas MapReduce são escritos em um determinado estilo influenciado por construções de programação funcionais, especificamente expressões idiomáticas para listas de processamento de dados.

A idéia de MapReduce é representar qualquer tipo de dados através de uma chave e uma valor. A função Map, recorre os dados disponíveis para processamento e gera um conjunto de chaves e valor. Já a função Reduce reúne todas as chaves iguais e soma os valores.

Programas escritos através do paradigma MapReduce, são automaticamente paralelizados e executados em grandes servidores compostos por várias máquinas. O coração de MapReduce cuida de detalhes como particionamento dos dados de entrada, agendamento dos programas e lida com eventuais falhos. Isso permitiu que os programadores com nenhuma experiência em ambientes paralelos e distribuídos facilmente conseguissem fazer uso dos recursos de estes grandes servidores.


Tal paradigma pode ser descrito através de uma aplicação de contar palavras. Imagine que o Google necessita saber quantas vezes uma determinada palavra aparece na internet. Para isso o Google dispões de enormes servidores. Para fazer o uso paralelo desses servidores, os engenheiros devem criar programas que saibam utilizar-los paralelamente, ou seja, cada engenheiro cria o uma solução diferente para um problema que enfrenta levando em consideração paralelismo e uso de recursos. Utilizando o Paradigma MapReduce, os engenheiros não necessitam preocupar-se mais como paralelismo, uso de memória, entre outro, simplesmente em como contar palavras. Para isso os engenheiros so tem que criar uma função que cada vez que encontre uma palavra emita o seguinte resultado <palavra,1>. Na seguinte fase, o Reduce vai analisar todas as palavras repetidas e somar os números 1 repetidos, entregando um resultado final.



Grandes empresas além de Google também fazem o uso de MapReduce, como Yahoo!, Facebook e Twitter. Resumindo, MapReduce permite processar rapidamente as grandes quantidades de dados que são produzidos todos os dias. E para tornar mais rapido, só é necessário adicionar mais computadores, MapReduce se encarrega do resto.

Dentre as mais famosas implementações de MapReduce, está Hadoop um projeto Apache que é desenvolvido em Java e tem como maior incentivador o Yahoo!.

Via Google


0 comentários:

LinkWithin

Related Posts Plugin for WordPress, Blogger...