Vídeo: 1.7 the Mapreduce Paradigm 14:14 2024
MapReduce é um paradigma de programação que foi projetado para permitir o processamento distribuído em paralelo de grandes conjuntos de dados, convertendo-os em conjuntos de tuplas e, em seguida, combinando e reduzindo essas tuplas em conjuntos menores de tuplas. Em termos leigos, o MapReduce foi projetado para tirar dados importantes e usar computação distribuída paralela para transformar grandes dados em dados de tamanho pequeno ou regular.
O processamento distribuído paralelo refere-se a uma estrutura poderosa onde volumes de dados em massa são processados de forma muito rápida distribuindo tarefas de processamento em clusters de servidores de commodities. Com relação ao MapReduce, tuplas referem-se a pares de valores-chave pelos quais os dados são agrupados, classificados e processados.
Os trabalhos MapReduce funcionam através do mapa e reduzem as seqüências de operação do processo em um conjunto distribuído de servidores. Na tarefa de mapa , você delega seus dados para pares de valores-chave, transforma-o e filtra-o. Em seguida, você atribui os dados aos nós para processamento.
Na redução da tarefa , você agrega esses dados a conjuntos de dados de tamanho menor. Os dados da etapa de redução são transformados em um formato de valor-chave padrão - onde a chave atua como o identificador de registro eo valor é o valor que está sendo identificado pela chave. Os nós de computação dos clusters processam o mapa e reduzem as tarefas que são definidas pelo usuário. Este trabalho é feito de acordo com as duas etapas a seguir:
-
Mapear os dados.
Os dados recebidos devem primeiro ser delegados em pares de valores-chave e divididos em fragmentos, que são atribuídos às tarefas de mapa. Cada cluster de computação - um grupo de nós conectados uns aos outros e executando uma tarefa de computação compartilhada - recebe uma série de tarefas de mapa, que posteriormente são distribuídas entre seus nós.
Ao processar os pares chave-valor, são gerados pares intermediários de valores-chave. Os pares de valores-chave intermediários são classificados por seus valores-chave e esta lista é dividida em um novo conjunto de fragmentos. Qualquer conta que você tenha para esses novos fragmentos, será o mesmo que a contagem das tarefas de redução.
-
Reduza os dados.
Toda tarefa de redução tem um fragmento atribuído a ele. A tarefa de redução simplesmente processa o fragmento e produz uma saída, que também é um par de valores-chave. As tarefas de redução também são distribuídas entre os diferentes nós do cluster. Após a conclusão da tarefa, o resultado final é escrito em um sistema de arquivos.
Em suma, você pode rapidamente e eficientemente reduzir e começar a dar sentido a um enorme volume, velocidade e variedade de dados usando o mapa e reduzir tarefas para marcar seus dados por pares (chave, valor) e, em seguida, reduzir esses pares em conjuntos menores de dados através de operações de agregação - operações que combinam vários valores de um conjunto de dados em um único valor.Um diagrama da arquitetura MapReduce pode ser encontrado aqui.
Se seus dados não se prestam a serem marcados e processados por meio de chaves, valores e agregação, então, mapeie e reduza geralmente não é um ajuste adequado às suas necessidades.
Se você estiver usando o MapReduce como parte de uma solução Hadoop, a saída final será gravada no sistema de arquivos distribuídos Hadoop (HDFS). HDFS é um sistema de arquivos que inclui clusters de servidores de commodities que são usados para armazenar grandes dados. O HDFS torna o gerenciamento e o armazenamento de dados extremamente viáveis financeiramente via -distribuindo tarefas de armazenamento em clusters de servidores de commodities baratos.