Como usar MapReduce para Big Data

MapReduce é uma estrutura de software que é ideal para grandes dados, pois permite que os desenvolvedores escrevam programas que podem processar grandes quantidades de dados não estruturados em paralelo através de um grupo distribuído de processadores.

A função de mapa para big data

o mapa função tem sido uma parte de muitas linguagens de programação funcional por anos. Mapa foi revigorado como uma tecnologia de núcleo para listas de processamento de elementos de dados.

Operadores em linguagens funcionais não modificam a estrutura da data- eles criam novas estruturas de dados como a sua saída. Os dados originais em si não é modificada, bem. Assim, você pode usar a função de mapa com a impunidade, porque não vai prejudicar os seus preciosos dados armazenados.

Outra vantagem para a programação funcional é não ter de gerir expressamente o movimento ou fluxo dos dados. Este absolve o programador de gestão explicitamente a saída de dados e posicionamento. Por fim, a ordem das operações sobre os dados não é prescrita.

Uma maneira de conseguir a solução é identificar os dados de entrada e criar uma lista:

mylist = ( "todos os municípios em que os EUA participaram na mais recente eleição geral")

Criar a função quantas pessoas usando a função de mapa. Isso seleciona apenas os municípios com mais de 50.000 pessoas:

mapa howManyPeople (myList) = [howManyPeople "county 1" - howManyPeople "condado 2" - howManyPeople "concelho 3" - howManyPeople "county 4" -. . . ]

Agora produzir uma nova lista de saída de todos os municípios com população superior a 50.000:

(Não, concelho 1- sim, concelho 2- não, concelho 3- sim, concelho 4-?, Concelho nnn)

A função executa sem fazer quaisquer alterações à lista original. Além disso, você pode ver que cada elemento da lista de saída mapeia para um elemento correspondente da lista de entrada, com um sim ou não em anexo. Se o município atendeu ao requisito de mais de 50.000 pessoas, a função de mapa identifica-a com um sim. Se não, um não é indicado.

Adicionar a função de reduzir para big data

Como a função de mapa, reduzir tem sido uma característica das linguagens de programação funcional por muitos anos. A função de reduzir leva a saída de uma função de mapa e # 147 reduz # 148- lista de qualquer forma o programador deseja.

O primeiro passo que a função de reduzir requer é colocar um valor em uma coisa chamada acumulador, que detém um valor inicial. Depois de armazenar um valor inicial no acumulador, a reduzir a função, em seguida, processa cada elemento da lista e executa a operação de que necessita através da lista.

No final da lista, a função de reduzir retorna um valor com base no que a operação que você queria realizar na lista de saída.

Suponha que você precisa para identificar os municípios onde a maioria dos votos foram para o candidato democrata. Lembre-se que o seu quantas pessoas função de mapa olhou para cada elemento da lista de entrada e criou uma lista dos condados de saída com mais de 50.000 pessoas (sim) E os municípios com menos de 50.000 pessoas (não).

Depois de invocar o quantas pessoas função de mapa, você é deixado com a lista de saída seguintes:

(Não, concelho 1- sim, concelho 2- não, concelho 3- sim, concelho 4-?, Concelho nnn)

Esta é agora a entrada para a função de reduzir. Aqui está o que parece:

countylist = (não, concelho 1- sim, concelho 2- não, concelho 3- sim, concelho 4-?, nnn condado) reduzir isDemocrat (countylist)

O reduzir os processos da função de cada elemento da lista e retorna uma lista de todos os municípios com população superior a 50.000, onde a maioria votou democrata.

Colocar o mapa big data e reduzir em conjunto

Às vezes, produzindo uma lista de saída é apenas o suficiente. Da mesma forma, por vezes, a realização de operações em cada elemento de uma lista é suficiente. Na maioria das vezes, você quer olhar através de grandes quantidades de dados de entrada, selecionar alguns elementos dos dados, e depois calcular algo de valor a partir dos pedaços relevantes de dados.

Você não quer mudar essa lista de entrada para que você possa usá-lo de maneiras diferentes com novos pressupostos e novos dados.

Software desenvolvedores de aplicativos de design com base em algoritmos. A algoritmo nada mais é que uma série de etapas que precisam ocorrer em serviço a um objectivo global. Pode parecer um pouco como este:

  1. Comece com um grande número ou dados ou registros.

  2. Iterar sobre os dados.

  3. Use a função de mapa para extrair algo de interesse e criar uma lista de saída.

  4. Organizar a lista de saída para otimizar o processamento posterior.

  5. Use a função de reduzir para calcular um conjunto de resultados.

  6. Produzir a saída final.

Os programadores podem implementar todos os tipos de aplicações usando esta abordagem, mas os exemplos a este ponto ter sido muito simples, de modo que o valor real do MapReduce pode não ser aparente. O que acontece quando você tem dados de entrada extremamente grandes? você pode usar o mesmo algoritmo em terabytes de dados? A boa notícia é sim.

Todas as operações parece independente. Isso é porque eles são. O verdadeiro poder do MapReduce é a capacidade de dividir e conquistar. Tome um grande problema e dividi-lo em partes menores e mais fáceis de gerenciar, operar em cada bloco de forma independente, e depois puxá-lo todos juntos no final. Além disso, a função de mapa é comutativa - em outras palavras, a fim de que uma função é executada não importa.

image0.jpg

Então MapReduce pode realizar o seu trabalho em diferentes máquinas em uma rede. Ele também pode desenhar a partir de múltiplas fontes de dados, internos ou externos. MapReduce mantém o controle de seu trabalho através da criação de uma chave única para garantir que todo o processamento está relacionado a resolver o mesmo problema. Esta chave é também utilizado para puxar toda a saída em conjunto no final de todas as tarefas distribuídas.

menu