A fase reduzir de fluxo da aplicação mapreduce do hadoop

A Reduzir processos em fase as teclas e suas listas individuais de valores, de modo que o que é normalmente retornado para o aplicativo cliente é um conjunto de pares de chave / valor. Aqui está o golpe por golpe até agora: Um grande conjunto de dados foi dividido em pedaços menores, chamados divisões de entrada, e instâncias individuais de tarefas de mapeador de ter processado cada um deles.

Em alguns casos, esta única fase de processamento é tudo o que é necessário para gerar a saída da aplicação desejada. Por exemplo, se você estiver executando uma operação de transformação básicas sobre os dados - converter todo o texto para maiúsculas, por exemplo, ou extrair quadros principais de arquivos de vídeo - a fase solitário é tudo que você precisa. (Isto é conhecido como um mapa-only trabalho, pela maneira.)

Mas, em muitos outros casos, o trabalho é apenas metade-feito quando as tarefas de mapeador de ter escrito a sua saída. A tarefa restante está fervendo abaixo todos os resultados intercalares para uma resposta única, unificada.

Semelhante à tarefa mapeador, que processa cada registro um por um, o redutor processa cada chave individualmente. Normalmente, o redutor retorna um par chave / valor único para todos os processos de chave de TI. No entanto, estes pares de chave / valor pode ser tão caro ou tão pequeno como você precisa deles para ser.



Quando as tarefas redutor terminar, cada um deles retorna um arquivo de resultados e as armazena em HDFS (Hadoop Distributed File System). Como mostrado aqui, o sistema HDFS depois replica automaticamente estes resultados.

Onde o Gerenciador de recursos (ou JobTracker se você estiver usando Hadoop 1) tenta o seu melhor para atribuir recursos para mapeador tarefas para garantir que os splits de entrada são processadas localmente, não existe tal estratégia para tarefas redutor. Supõe-se que tarefas mapeador de conjuntos de resultados precisam ser transferidos através da rede para ser processado pelas tarefas redutor.

Esta é uma implementação razoável porque, com centenas ou mesmo milhares de tarefas de mapeador, não haveria nenhuma maneira prática para tarefas redutor ter o mesmo priorização localidade.


Publicações relacionadas