詳細検索

Uma Breve Introdução ao Funcionamento Interno do MapReduce

Avatar
por Chen Ziyu
3 min de leitura

Uma Breve Introdução ao Funcionamento Interno do MapReduce
Traduzido do English • Ver original

Como engenheiro de dados, você provavelmente já ouviu falar do Hadoop. É um dos frameworks mais populares para processamento distribuído de grandes conjuntos de dados. É menos custoso e mais seguro do que outros frameworks. No centro dele está um modelo de programação chamado MapReduce. Hoje vamos analisar mais de perto o MapReduce para entender o funcionamento interno do Hadoop.

Como sugere o nome, o MapReduce possui dois passos principais: Mapear e Reduzir. Além desses dois passos, há três etapas intermediárias: Combinar, Particionar e embaralhar. Vamos analisá-los com um exemplo de tarefa de processamento de dados que busca compilar um relatório de contagem de palavras para um documento. Para simplificar, nosso documento fonte contém apenas três linhas, cada uma com três palavras.

Dividido No passo dividido, o Hadoop divide os dados de entrada em blocos menores. Esse passo visa distribuir os dados para nós individuais do mapa para facilitar o processamento paralelo subsequente. No nosso exemplo, o Hadoop divide o documento fonte em três blocos, cada um contendo uma linha do documento fonte.

Mapa No passo Mapa, o Hadoop atribui um mapeador para processar cada bloco de dados. A saída do cálculo de cada mapeador é uma lista de pares-chave-valor. No nosso exemplo, o Hadoop atribui três mapeadores para processar nossos blocos de dados, já que há três blocos de dados no total. Cada mapeador então gera três pares-chave-valor. O valor de cada par-chave-valor é um, indicando que cada palavra aparece exatamente uma vez dentro do escopo de si mesma.

Combinar A etapa Combine é opcional que envolve o uso de um combinador. Um combinador é essencialmente um redutor que roda individualmente em um mapeador. Ele reduz ainda mais os dados de cada mapeador para uma forma mais simplificada para facilitar o cálculo em etapas posteriores, geralmente alcançado combinando valores correspondentes a chaves idênticas. Vamos supor que nosso exemplo envolva o passo Combine no Hadoop. No segundo mapeador, temos dois pares-chave-valor com a mesma chave "laranja". Portanto, os combinamos em um só e somamos seus valores, o que resulta em {"laranja": 2}, indicando que a palavra "laranja" apareceu duas vezes no segundo mapeador. Todos os outros mapeadores não contêm pares-chave-valor com chaves idênticas. Portanto, nenhuma combinação é realizada neles.

Embaralhamento No passo de embaralhamento, o Hadoop envia os pares-chave-valor gerados pelos mapeadores para seus redutores correspondentes. Pares chave-valor com as mesmas chaves são enviados para os mesmos redutores. No nosso exemplo, como existem quatro chaves diferentes, o Hadoop gera quatro redutores. Cada redutor é responsável por uma chave e recebe apenas pares chave-valor com essa chave. Por exemplo, o terceiro redutor só recebe pares chave-valor com a chave "laranja".

Reduzir No passo de reduzir, cada redutor consolida seus pares chave-valor atribuídos para gerar a saída final de cada chave. No nosso exemplo, cada redutor reduz os pares chave-valor somando seus valores para calcular a contagem final de cada palavra. Por exemplo, o terceiro redutor reduz {"orange": 2} e {"orange": 1} para {"orange": 3}, indicando que a palavra "orange" apareceu no documento três vezes no total.

Após a etapa de redução, o Hadoop combina as saídas de todos os redutores para gerar o resultado final. No nosso caso, o resultado final é {"Apple": 2, "Banana": 2, "Orange": 3, "Pear": 2}.

Resumindo, o MapReduce consiste em cinco etapas principais: Dividir, Mapear, Combinar, Embaralhar e Reduzir. Embora cada uma dessas etapas execute apenas uma tarefa simples individualmente, juntas permitem que o Hadoop processe grandes quantidades de dados de forma eficiente. Espero que este artigo tenha ajudado você a entender melhor como o MapReduce funciona por trás do capô.

Related Articles