A Reduzir Fase do fluxo de aplicativo MapReduce do Hadoop

A Reduzir processos em fase as teclas e suas listas individuais de valores, de modo que o que normalmente é devolvido à aplicação 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 splits de entrada, e instâncias individuais de tarefas mapeador de ter processado a 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 de base sobre os dados - a conversão de todo o texto em maiúsculas, por exemplo, ou extrair quadros principais de arquivos de vídeo - a fase solitária é 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 é ferver para baixo todos os resultados intercalares para uma resposta única, unificada.

Similar à tarefa mapeador, que processa cada registro de um-por-um, o redutor processa cada tecla individualmente. Normalmente, o redutor retorna um par chave / valor único para todos os processos-chave de TI. No entanto, estes pares de chave / valor pode ser tão expansivo ou tão pequeno quanto 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 replica automaticamente estes resultados.

image0.jpg

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 as divisões de entrada são processadas localmente, não existe tal estratégia para tarefas redutor. Supõe-se que a tarefa mapeador de conjuntos de resultados precisam de ser transferidos através da rede para serem processados ​​pelas tarefas redutor.

Este é uma implementação razoável porque, com centenas ou até mesmo milhares de tarefas mapeador, não haveria qualquer maneira prática para tarefas redutor para ter a mesma definição de prioridades localidade.

menu