O que é MapReduce no Hadoop? Grandes dados Archiarquitetura

O que é MapReduce no Hadoop?

MapaReduzir é uma estrutura de software e modelo de programação usado para processar grandes quantidades de dados. MapaReduzir o programa funciona em duas fases, nomeadamente, Mapear e Reduzir. As tarefas de mapa lidam com a divisão e mapeamento de dados, enquanto as tarefas de redução embaralham e reduzem os dados.

O Hadoop é capaz de executar programas MapReduce escritos em várias linguagens: Java, Rubi, Python e C++. Os programas do Map Reduce na computação em nuvem são paralelos por natureza, portanto, são muito úteis para executar análises de dados em larga escala usando várias máquinas no cluster.

A entrada para cada fase é valor chave pares. Além disso, todo programador precisa especificar duas funções: função de mapa e função de redução.

MapaReduzir Archiarquitetura em Big Data explicada com exemplo

Todo o processo passa por quatro fases de execução: divisão, mapeamento, embaralhamento e redução.

Agora, neste tutorial do MapReduce, vamos entender com um exemplo do MapReduce:

Considere que você tem os seguintes dados de entrada para seu MapReduce em Programa de big data

Welcome to Hadoop Class
Hadoop is good
Hadoop is bad
MapaReduzir Archiarquitetura
MapaReduzir Archiarquitetura

A saída final da tarefa MapReduce é

ruim 1
Aula 1
Bom estado, com sinais de uso 1
Hadoop 3
is 2
para 1
Bem-vindo 1

Os dados passam pelas seguintes fases do MapReduce em Big Data

Divisões de entrada:

Uma entrada para um trabalho MapReduce em Big Data é dividida em partes de tamanho fixo chamadas divisões de entrada A divisão de entrada é uma parte da entrada que é consumida por um único mapa

Mapeamento

Esta é a primeira fase na execução do programa de redução de mapa. Nesta fase, os dados de cada divisão são passados ​​para uma função de mapeamento para produzir valores de saída. Em nosso exemplo, um trabalho da fase de mapeamento é contar um número de ocorrências de cada palavra a partir de divisões de entrada (mais detalhes sobre divisão de entrada são fornecidos abaixo) e preparar uma lista na forma de

Baralhar

Esta fase consome a saída da fase de Mapeamento. Sua tarefa é consolidar os registros relevantes da saída da fase de Mapeamento. Em nosso exemplo, as mesmas palavras são agrupadas junto com suas respectivas frequências.

Reduzir

Nesta fase, os valores de saída da fase Shuffling são agregados. Esta fase combina valores da fase Shuffling e retorna um único valor de saída. Resumindo, esta fase resume o conjunto de dados completo.

No nosso exemplo, esta fase agrega os valores da fase Shuffling, ou seja, calcula o total de ocorrências de cada palavra.

MapaReduzir Archiarquitetura explicada em detalhes

  • Uma tarefa de mapa é criada para cada divisão, que então executa a função de mapa para cada registro na divisão.
  • É sempre benéfico ter múltiplas divisões porque o tempo necessário para processar uma divisão é pequeno em comparação com o tempo necessário para processar toda a entrada. Quando as divisões são menores, é melhor balancear a carga do processamento, pois estamos processando as divisões em paralelo.
  • No entanto, também não é desejável ter divisões de tamanho muito pequeno. Quando as divisões são muito pequenas, a sobrecarga de gerenciamento das divisões e criação de tarefas de mapa começa a dominar o tempo total de execução do trabalho.
  • Para a maioria dos trabalhos, é melhor criar um tamanho de divisão igual ao tamanho de um bloco HDFS (que é 64 MB, por padrão).
  • A execução de tarefas de mapa resulta na gravação da saída em um disco local no respectivo nó e não no HDFS.
  • O motivo para escolher o disco local em vez do HDFS é evitar a replicação que ocorre no caso de operação de armazenamento do HDFS.
  • A saída do mapa é uma saída intermediária que é processada por tarefas de redução para produzir a saída final.
  • Assim que o trabalho for concluído, a saída do mapa pode ser descartada. Portanto, armazená-lo no HDFS com replicação torna-se um exagero.
  • No caso de falha do nó, antes que a saída do mapa seja consumida pela tarefa de redução, o Hadoop executa novamente a tarefa de mapa em outro nó e recria a saída do mapa.
  • A tarefa Reduzir não funciona no conceito de localidade de dados. Uma saída de cada tarefa de mapa é alimentada na tarefa de redução. A saída do mapa é transferida para a máquina onde a tarefa de redução está sendo executada.
  • Nesta máquina, a saída é mesclada e depois passada para a função de redução definida pelo usuário.
  • Ao contrário da saída do mapa, a saída reduzida é armazenada em HDFS (a primeira réplica é armazenada no nó local e as outras réplicas são armazenadas em nós fora do rack). Então, escrevendo a saída de redução

Como funciona a organização do MapReduce?

Agora neste tutorial do MapReduce, aprenderemos como funciona o MapReduce

Hadoop divide o trabalho em tarefas. Existem dois tipos de tarefas:

  1. Mapear tarefas (Divisões e Mapeamento)
  2. Reduza tarefas (embaralhar, reduzir)

como acima mencionado.

O processo completo de execução (execução das tarefas Mapear e Reduzir, ambas) é controlado por dois tipos de entidades chamadas

  1. Rastreador de empregos: Age como um dominar (responsável pela execução completa do trabalho enviado)
  2. Vários rastreadores de tarefas: Age como escravos cada um deles realizando o trabalho

Para cada job enviado para execução no sistema, existe um Rastreador de empregos que reside em Namenode e há vários rastreadores de tarefas que residem em nó de dados.

Como funciona o Hadoop MapReduce
Como funciona o Hadoop MapReduce
  • Um trabalho é dividido em várias tarefas que são executadas em vários nós de dados em um cluster.
  • É responsabilidade do rastreador de trabalho coordenar a atividade agendando tarefas para serem executadas em diferentes nós de dados.
  • A execução de tarefas individuais é então cuidada pelo rastreador de tarefas, que reside em cada nó de dados que executa parte do trabalho.
  • A responsabilidade do rastreador de tarefas é enviar o relatório de progresso ao rastreador de tarefas.
  • Além disso, o rastreador de tarefas envia periodicamente 'batimento cardiaco' sinalizar para o Jobtracker para notificá-lo sobre o estado atual do sistema.
  • Assim, o rastreador de trabalhos acompanha o progresso geral de cada trabalho. No caso de falha da tarefa, o rastreador de tarefas pode reagendá-la em um rastreador de tarefas diferente.