Geek Dirt

Abr 24, 2021

no primeiro post da série Hadoop introdução do Hadoop e execução de um programa map-reduce, expliquei os fundamentos do Map-Reduce. Neste post, estou explicando seus diferentes componentes, como particionamento, Shuffle, Combinador, mesclagem, classificação primeiro e depois como funciona.

Particionamento:

Se o número de redutores são 2 e a função de hash é:

#This function would return the data passes in itfunction hash(data){#this is just for example purposereturn data;}

em seguida, para a chave 1:

número da partição = hash(1) % 2 = 1;

chave 2:

número da partição = hash(2) % 2 = 0;

chave 4:

número da partição = hash(4) % 2 = 0;

isso significa Que a saída para a chave 1 deve ir em partition_1 e saída para a chave 2 e 4 deve ir em partition_0.

Shuffle:

na saída final da tarefa do mapa, pode haver várias partições e essas partições devem ir para diferentes tarefas de redução. Embaralhar é basicamente Transferir partições de saída do mapa para as tarefas de redução correspondentes. Map task notificou o mestre do aplicativo sobre a conclusão da tarefa do mapa e o mestre do aplicativo notifica o redutor correspondente para copiar a saída do mapa na máquina de redução.

Combinador:

Classificação:

é apenas classificar os dados com base em chaves.

mesclagem:

isso acontece no lado do redutor. O Reducer pode obter dados de várias tarefas de mapa e, por meio da fusão, mescla os dados de diferentes tarefas de mapa em uma única unidade, mantendo a ordem de classificação.

Mapa-reduzir em detalhes:

Mapa:

tem um na memória circular buffer e grava diretamente no buffer. Quando o buffer atinge o valor Limite (padrão 80%), ele começa a gravar para spill file por meio de um background threadseparado. A tarefa do mapa ainda pode gravar sua saída no buffer enquanto o thread de fundo está em execução. Antes de gravar no arquivo spill, a saída do mapa que é pares de valor-chave é particionada e classificada. Se um combinador estiver lá, ele também será executado para reduzir o tamanho da saída.

após a tarefa, todos os arquivos de derramamento são classificados novamente e um único arquivo é criado, que é particionado e classificado. Significa que este arquivo de saída final tem várias partições. Após a tarefa do mapa concluída para um nó, sua saída é enviada para o redutor. É por isso que você vê reduzir tarefa mais de 0%, enquanto mapa é inferior a <100%.

quando você tem uma tarefa somente de mapa, não há embaralhamento, o que significa que os mapeadores gravarão a saída final diretamente no HDFS.

reduzir:

depois de obter dados da tarefa do mapa, ele mescla os dados em uma única unidade durante o merge phase. Em vez de mesclar diretamente todos os arquivos em um, ele usa o conceito para merge factor , cujo objetivo é minimizar a quantidade de dados gravados no disco. Em seguida, durante a fase de redução, a função de redução é invocada para cada tecla na saída classificada. A saída desta fase é gravada diretamente no sistema de arquivos de saída, normalmente HDFS.

links úteis:

introdução e trabalho de fios

Deixe uma resposta

O seu endereço de email não será publicado.