Hadoop MapReduce
HENRIQUE SANTANA, LINCOLN SOARES
MapReduce - Conceito
O MapReduce foi desenvolvido como uma forma de processar grandes volumes de dados distribuindo o processamento em muitas máquinas para que seja processado em um tempo aceitável. Esta distribuição implica em processamento paralelo dado que a mesma função é aplicada em todas as maquinas, porém em conjuntos de dados diferentes em cada um deles.
MapReduce - História
Diante de um grande problema computacional dos dias atuais, que é o de armazenar, manipular e analisar de forma inteligente uma grande quantidade existente, alguns pesquisadores e engenheiros da computação aprimoraram e construiram soluções para tornar mais eficiente o acesso e analise a grandes bases de dados. Na primeira decada de 2000, dois engenheiros do Google, Jeffrey Dean e Sanjay
Ghemawat, desenvolveram a tecnologia MapReduce para otimizar a indexação e catalogação de paginas web e suas ligações.
MapReduce - Tarefa Map
Etapa responsável por receber dados organizados no formato
<chave,valor>, podendo ser uma linha de um documento de texto ou conteúdo gerado por um banco de dados. A função retorna uma lista com zero ou mais tuplas de <chave,valor> de acordo com a implementação do processamento.
MapReduce - Tarefa Shuffle
(Intermediária)
Etapa realizada pela biblioteca MapReduce que é responsável por organizar o retorno da função Map, atribuindo para cada entrada de cada Reduce todos os valores associados a uma mesma chave. Essa é a etapa que realiza mais troca de dados, pois os dados de diversos nós são transferidos entre si para a realização das tarefas de redução.
MapReduce - Tarefa Reduce
Nessa etapa, cada tarefa de Reduce consome o conjunto de tuplas atribuído a ela. Para cada tupla, uma função definida pelo usuário é chamada, transformando a em uma saída formada por uma lista de tuplas <chave,valor>.
MapReduce - Arquitetura
MapReduce - Arquitetura Preparação
O mecanismo do MapReduce divide os arquivos de entrada