MapReduce

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Ambox rewrite.svg
Esta página precisa ser reciclada de acordo com o livro de estilo (desde maio de 2013).
Sinta-se livre para editá-la para que esta possa atingir um nível de qualidade superior.
Ambox question.svg
Esta página ou seção carece de contexto.

Este artigo (ou seção) não possui um contexto definido, ou seja, não explica de forma clara e dire(c)ta o tema que aborda. Se souber algo sobre o assunto edite a página/seção e explique de forma mais clara e objetiva o tema abordado.

MapReduce é um modelo de programação 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. Este módulo explica a natureza do presente modelo de programação e como ela pode ser usada para escrever programas que são executados no ambiente Hadoop.

História[editar | editar código-fonte]

MapReduce é um modelo de programação, e framework introduzido pelo Google para suportar computações paralelas em grandes coleções de dados em clusters de computadores. O MapReduce passa a ser considerado um novo modelo computacional distribuído, inspirado pelas funções map e reduce usadas comumente em programação funcional. MapReduce é um “Data-Oriented” que processa dados em duas fases primárias: Map e Reduce.[1]

Fluxo de dados[editar | editar código-fonte]

A parte congelada do framework MapReduce é uma grande espécie distribuída. Os pontos quentes, que define a aplicação, são:

  • um leitor de entrada
  • uma função de mapa
  • uma função de partição
  • uma função de comparação
  • uma função Reduce
  • um escritor de saída

Entrada de leitor[editar | editar código-fonte]

O leitor de entrada divide a entrada em tamanho adequado 'racha' (na prática, normalmente de 16 MB para 128 MB) e do quadro atribui uma divisão para cada função do mapa. O leitor lê os dados de entrada de armazenamento estável (normalmente um sistema de arquivos distribuídos ) e gera pares chave / valor. Um exemplo comum vai ler um diretório cheio de arquivos de texto e retornar cada linha como um registro.

Função Mapa[editar | editar código-fonte]

A função Mapa leva uma série de pares (chave / valor) processa cada um e gera zero ou mais (chave / valor) pares de saída. Os tipos de entrada e de saída do mapa podem ser (e geralmente são) diferentes umas das outras. Se o aplicativo está fazendo uma contagem de palavras, a função de mapa iria quebrar a linha em palavras e de saída de um par chave / valor para cada palavra. Cada par de saída deve conter a palavra como a chave eo número de ocorrências dessa palavra na linha como o valor.

Função de partição[editar | editar código-fonte]

Cada função de saída Mapa é alocada para um redutor determinado pela função de partição do pedido de Sharding propósitos. A função de partição é dada a chave e o número de redutores e retorna o índice de reduzir o desejado. Um padrão típico é de hash a chave e use o valor de hash modulo o número de redutores. É importante escolher uma função de partição que dá uma distribuição aproximadamente uniforme de dados por caco para balanceamento de carga fins, caso contrário, a operação MapReduce pode ser realizada à espera de redutores lentos (redutores atribuído mais do que a sua quota de dados) para concluir. Entre o mapa e reduzir as fases, os dados são baralhados (paralelo-ordenadas / trocada entre os nós), a fim de mover os dados a partir do nó do mapa que produziu o fragmento em que ele vai ser reduzida. O shuffle às vezes pode demorar mais do que o tempo de computação, dependendo da largura de banda da rede, a velocidade da CPU, os dados produzidos e tempo gasto pelo mapa e reduzir cálculos.

Função de comparação[editar | editar código-fonte]

A entrada para cada Reduce é retirado da máquina onde o Mapa correu e classificados usando função de comparação do aplicativo.

Função de reduzir[editar | editar código-fonte]

O quadro chama Reduzir função da aplicação uma vez para cada chave única na ordem de classificação. O Reduce pode percorrer os valores que estão associados com a chave e produzir zero ou mais saídas. No exemplo a contagem de palavras, a função Reduce toma os valores de entrada, resume-os e gera uma única saída da palavra ea soma final.

Escritor de saída[editar | editar código-fonte]

O escritor de saída escreve a saída do Reduza o armazenamento estável, geralmente um sistema de arquivos distribuídos .

[2]

Referências