← Questões de Arquitetura de Computadores

Arquitetura de Computadores · FGV · 2024

Questão comentada de Arquitetura de Computadores

MapReduce é um framework de processamento paralelo para clusters inspirado em programação funcional, que teve seu artigo seminal publicado em 2004 no artigo : “MapReduce: Simplified Data Processing on Large Clusters”. Com relação à tecnologia MapReduce, assinale V para a afirmativa verdadeira e F para a falsa. ( ) A ideia principal do MapReduce é dividir e processar tarefas e depois juntar as informações, o que permite dividir um grande problema em vários pedaços e distribuí-los em diversos computadores. ( ) Os principais passos correspondem a: (i) Input split, onde a entrada é dividida em várias partes, onde cada parte será consumida por um Map; (ii) Map, onde é criada uma lista de pares chave-valor; (iii) Shuffling , onde se classifica e agrupa a saída da etapa anterior para servir de entrada para a seguinte; (iv) Reduce, onde se processa a saída da etapa anterior e se agregam as informações; (v) Output, quando as informações são retornadas. ( ) As principais características do MapReduce se referem a esconder os detalhes do processamento em série, tolerância a falhas, otimização de localidade e balanceamento de memória, que resultam em modelo fácil de usar, mesmo para programadores sem experiência com sistemas paralelos e distribuídos. As afirmativas são, respectivamente,

Gabarito: D

MapReduce é um modelo de programação pensado para quebrar um problema grande em pedaços menores, processar esses pedaços em paralelo e depois juntar o resultado final. A lógica é simples: vocé manda o trabalho para vários nós do cluster, cada um faz uma parte, e no fim tudo é reunido. Por isso o framework ficou famoso em ambientes com grandes volumes de dados. O fluxo clássico tem etapas bem conhecidas: primeiro o input é dividido em blocos menores; depois vem o Map, que transforma cada entrada em pares chave-valor; em seguida ocorre o shuffle/sort, que agrupa as saídas por chave; depois o Reduce consolida esses grupos e produz o resultado final; por fim, a saída é gravada. Na prova, essa descrição da segunda afirmativa está correta. A primeira também está certa porque resume exatamente a ideia central do MapReduce: dividir, processar em paralelo e recombinar. Já a terceira escorrega no detalhe: MapReduce realmente enfatiza abstração do paralelismo, tolerância a falhas e localidade de dados, mas a frase mistura isso com 'processamento em série' e 'balanceamento de memória', o que não é a cara da definição técnica do modelo. Em doutrina, o mais comum é destacar localidade, tolerância a falhas e escalabilidade, na linha do artigo original do Google de 2004. Assim, o padrão fica V - V - F, que corresponde à alternativa D.

Continue treinando

Questões relacionadas