MapReduce: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Linha 21: Linha 21:


===Função Mapa===
===Função Mapa===
A função Mapa leva uma série de pares chave / valor, processa cada, e gera zero ou mais chave / valor pares de saída. Os tipos de entrada e de saída do mapa pode ser (e geralmente são) diferentes umas das outras.
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.
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===
===Função de partição===
Cada função de saída Mapa é alocado 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.
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.
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.
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.

Revisão das 15h19min de 17 de novembro de 2014

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

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

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

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

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

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

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

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

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