"MapReduce" é um dos terceiros componentes do Hadoop. Essa estrutura é eficiente para o processamento de grandes dados em paralelo com as outras tarefas. O objetivo básico do "MapReduce" é mapear cada trabalho coletivamente em grupos, e então isso o reduzirá a tarefas iguais para reduzir a formação de cluster dos processos. A tarefa "mapReduce" é dividida em duas fases.
Map Map Reduce Conceito e Arquitetura
Os dados de entrada são distribuídos em pequenos pedaços para o processamento de dados através de diferentes trabalhadores. Cada pequeno pedaço é mapeado para uma situação/estado intermediário. Que os dados intermediários são então coletados juntos e, em seguida, o processo de particionamento ocorre que é baseado em um valor-chave para manter todo o material relacionado entre si. Em seguida, essa partição de dados leva ao conjunto reduzido resultante. Vamos considerar o diagrama abaixo.
Partes da arquitetura
As partes do trabalho obtidas no trabalho são transferidas para o mapa e reduzem as tarefas. Essas duas tarefas têm programas e algoritmos que dependem do requisito do usuário. Os dados de entrada são usados e inseridos na tarefa do mapa. A tarefa de mapa gerará o par intermediário de valor-chave que atuará como uma entrada para a fase de redução. Na fase de redução, depois de executar o processo de redução, armazene os resultados finais no HDFS. Agora, movendo-se em direção ao exemplo de reduntura de mapa, o código no exemplo é explicado com as fases separadamente e sua saída também.
Código de Python MapReduce
A API de streaming Hadoop é usada para passar dados entre o mapa e reduzir o código através do stdin e Stout. Para ler dados de entrada e imprimir a saída, “Sys.stdin ”é usado. Outros procedimentos são tratados através do Hadoop Streaming.
Fase de mapa
O principal uso da fase do mapa é mapear os dados de entrada na forma de pares de chaves. O valor-chave que usamos pode agir como o ID é algum endereço, e o valor contém o valor real que é mantido. Esta fase do mapa gerará um valor intermediário com a chave como uma saída. Para reduzir a função, a saída do mapa é usada como entrada. Vamos considerar o código para a função do mapa. Esta função também é conhecida como mapeador.py.
Você deve criar um arquivo e salvar o código nesse arquivo. eu.e/home/aqsa/mapeador.py. O script do mapa não pode calcular um valor intermediário do total de palavras que ocorre várias vezes. Em vez disso, ele dará às partes dos dados que até as palavras estão repetindo múltiplos vezes nos dados de entrada. Vamos deixar a função reduzir o número de palavras calculando a soma de sua ocorrência. Uma coisa que deve ser lembrada, o arquivo tem permissão de execução (chmod+x/home/aqsa/mapeador.py). Movendo -se em direção ao código, o primeiro passo será a importação do módulo SYS. A entrada será realizada usando um loop for através do stdin.
Para linha em sys.stdin:
Esta função lerá a linha por linha, tira todas as linhas e removerá os espaços em branco entre eles através da função de tira. Da mesma forma, cada linha é dividida em palavras usando uma função dividida. Ambas as funções são declaradas dentro do corpo para loop.
# linha = linha.faixa()Depois que todas as funções são executadas, cada palavra será impressa uma a uma.
Os valores intermediários passam por dois processos antes de entrar na fase de redução. Esses dois estágios são os embaralhados e a fase de classificação.
Fase de embaralhamento:
O objetivo desta função é associar todos os valores de uma chave semelhante. Por exemplo, considere uma palavra (sim, 1) que ocorreu 4 vezes no arquivo de saída. Então, após esta fase, a saída será mostrada como (sim, [1,1,1,1]).
Fase de classificação:
Quando o processo de embaralhamento é concluído, os valores de saída são enviados para a fase de classificação. Nesta fase, todas as chaves e valores são classificados automaticamente. No Hadoop, o processo de classificação não requer nenhum algoritmo de classificação, pois é um processo automático. É por causa da interface embutida chamada 'WritableComparableInterface'.
Reduzir a fase
Os valores intermediários são então transferidos para a função de redução após serem classificados. O grupo de funções de redução os dados, dependendo do par de valores-chave de acordo com o algoritmo Reducer usado pelo programador.
O código que implementaremos é salvo em um arquivo do caminho “/home/aqsa/redutor.py ". Este arquivo lerá os resultados do “Mapper.arquivo py ”do stdin. Para esse fim, o formato do “mapeador.arquivo py ”e a entrada proveniente do mapeador.Py deve ser o mesmo. Depois disso, essa função leva a soma da ocorrência de cada palavra, e a saída final é exibida através do stdout.
#!/usr/bin/Env PythonO módulo SYS é importado primeiro. Então uma variável para o processo de contagem é declarada 0 como o valor inicial. Tomamos os valores de entrada usando o loop e as linhas são separadas como a função do mapa. Para dividir as palavras, usamos as palavras e contamos variáveis.
# Count, word = linha.dividido ('\ t', 1)No corpo de tentativa, a variável de contagem recebe o valor. A declaração IF é usada para verificar se a palavra que se aproxima é a mesma que a armazenada; a variável de contagem é incrementada.
# Current_count += contagemValor resultante
Para verificar os resultados, vá para o terminal do Linux. Aqui usaremos uma string que combina palavras únicas e repetitivas para obter resultados versáteis.
$ eco “mapear e reduzir são funções eficazes e eficientes, formam um mapa reduzir a estrutura” | /home/aqsa/mapeador.py | classificar -k1,1 | /home/aqsa/redutor.py
Conclusão
'MapReduce Python Exemplo' consiste na funcionalidade básica e arquitetura de redes de mapa coletivamente e separadamente. A formação de valor intermediário desempenha um papel importante nesse objetivo. Para obter o valor limitado, sempre que você quiser gerenciar big data, você precisa usar uma função "mapReduce" no programa. Ler este artigo será uma fonte de informações completas sobre a função "MapReduce".