MapReduce é um conceito de programação essencial que você deve dominar para se tornar um engenheiro de dados profissional. Ele fornece soluções para sistemas de gerenciamento de arquivos de big data distribuídos. Portanto, entender a base teórica do MapReduce facilitará o aprendizado da técnica em si.

Mas o que é MapReduce e como funciona em sistemas de arquivos distribuídos? Você vai descobrir neste post.

O que é MapReduce?

MapReduce é um modelo de engenharia de dados aplicado a programas ou aplicativos que processam lógica de big data em clusters paralelos de servidores ou nós. Ele distribui uma lógica de processamento em vários nós de dados e agrega os resultados no cliente-servidor.

O MapReduce garante que o processamento seja rápido, eficiente em memória e confiável, independentemente do tamanho dos dados.

Hadoop File System (HDFS), Google File System (GFS), Apache Kafka, GlusterFS e outros são exemplos de sistemas de arquivos de big data distribuídos que usam o algoritmo MapReduce.

O que é um sistema de arquivos distribuídos?

Um sistema de arquivos distribuído (DFS) é um método de armazenamento em computação que envolve dividir grandes arquivos de dados em partes menores e distribuí-los por vários servidores dentro do sistema. Ele permite que clientes de várias fontes gravem e leiam dados, compartilhem e executem lógica programável nos dados — diretamente de qualquer lugar.

Um sistema de arquivos distribuído normalmente consiste no servidor primário (também chamado de NameNode no Hadoop), clusters paralelos e vários nós ou servidores contendo pedaços de dados replicados, tudo em um Centro. No entanto, cada cluster no sistema de arquivos distribuído contém centenas a milhares desses nós.

O servidor primário detecta automaticamente as alterações nos clusters. Assim, ele pode atribuir funções de acordo com cada nó.

Quando o servidor primário recebe um arquivo de dados, ele o envia para os clusters no DFS. Esses clusters dividem e distribuem os dados em cada nó dentro deles. Cada nó então replica os dados no que chamamos de blocos de dados para formar uma cadeia. Nesse ponto, cada nó se torna um servidor de fragmentos.

Relacionado:O que são data centers e por que eles são importantes?

Além de gerenciar o acesso aos dados, o servidor primário mantém uma anotação de metadados em cada arquivo. Dessa forma, ele sabe qual nó manipula qual arquivo em cada cluster.

Como o MapReduce funciona em sistemas de arquivos distribuídos?

Conforme mencionado anteriormente, o big data está disponível em vários servidores de blocos em um DFS. Uma maneira de executar a lógica programável nesses arquivos de dados é agregá-los em um. Você pode puxá-los para um único servidor, que agora lida com a lógica.

Embora essa seja uma maneira convencional de consultar dados, o problema é que os dados se tornam um todo novamente dentro de um único servidor. Portanto, um único servidor ainda terá que gerenciar a lógica em vários petabytes de dados de uma só vez. Infelizmente, esse era o problema que o sistema pretendia resolver inicialmente. Portanto, não é uma prática recomendada, afinal.

Relacionado:Como consultar várias tabelas de banco de dados de uma só vez com associações SQL

Além disso, essa agregação em um único servidor apresenta vários riscos de desempenho. Isso pode variar de uma falha no servidor, baixa eficiência de cálculo, alta latência, alto consumo de memória e vulnerabilidades, entre outros.

Mas outra maneira de executar a lógica programável é deixar os dados em pedaços dentro de cada servidor distribuído. E então injete a função lógica em cada servidor. Isso significa que cada servidor chunk dentro de um cluster agora lida com seu cálculo. Usar essa abordagem significa que não há necessidade de agregar ou extrair dados em um único servidor.

Que existe o conceito MapReduce em um sistema de arquivos de dados distribuídos. Ele garante que um único servidor não precise extrair dados da origem. Em vez disso, ele dispersa a função de processamento (MapReduce) em vários nós de pedaços em clusters, para que cada nó dentro de cada cluster manipule a lógica individualmente sem sobrecarregar um único servidor.

Conseqüentemente, vários servidores manipulam a lógica em bits de dados simultaneamente. Essa distribuição de mão de obra entre os servidores resulta em ótimo desempenho e maior segurança, entre outras positividades.

Como o resultado do MapReduce é processado em um DFS?

Veja como todo o processamento do MapReduce funciona em um DFS:

  • O servidor primário recebe uma consulta de big data (função MapReduce) do cliente.
  • Em seguida, ele envia isso para cada cluster para espalhá-lo em cada nó dentro dele.
  • Cada nó processa a função MapReduce e acumula seu resultado.
  • Outro servidor agrupa os resultados de cada nó e os envia de volta ao servidor primário.
  • O servidor primário então envia o resultado como resposta ao cliente.

Assim, o único trabalho de um servidor primário é enviar um resultado prontamente calculado para o cliente, ouvir as alterações e gerenciar o acesso aos dados. Não faz nenhum cálculo. É por isso que a maioria dos aplicativos de computação em nuvem são impressionantemente rápidos, apesar da quantidade de dados que processam.

O que exatamente é o Map and Reduce no MapReduce?

O MapReduce usa duas lógicas de programação para processar big data em um sistema de gerenciamento de arquivos distribuído (DFS). Estas são uma função de mapa e redução.

O mapa A função faz o trabalho de processamento em cada um dos nós de dados em cada cluster de um sistema de arquivos distribuído. O reduzir A função então agrega os resultados retornados por cada servidor chunk e os passa para outro servidor dentro do DFS para agregação de resultados. O servidor de recebimento envia esse cálculo para o servidor primário, que envia o valor retornado para o servidor do lado do cliente.

O que acontece quando um servidor Chunk cai?

Os servidores em um sistema de arquivos distribuído (DFS) podem passar por tempo de inatividade às vezes. Você pode pensar que isso vai quebrar todo o sistema, mas não.

Existe um sistema de computação que impede tal colapso iminente. Chama-se tolerância a falhas.

Relacionado:O que é computação em nuvem? Como funciona a tecnologia em nuvem?

Portanto, mesmo quando um servidor é desligado durante o processamento de dados, a tolerância a falhas garante que o servidor primário o detecte imediatamente. E como há uma réplica dos fragmentos de dados nos nós, o servidor primário transfere instantaneamente o trabalho de processamento para outro servidor. Dessa forma, o tempo de inatividade do servidor no DFS não afeta o processamento de dados.

MapReduce facilita o processamento de Big Data

MapReduce é um modelo essencial que facilita a computação em sistemas de arquivos distribuídos. Por permitir que vários nós executem um cálculo simultaneamente, é um método rápido usado por vários gigantes da tecnologia para resolver muitos dos problemas que acompanham a análise de big data.

Google, Amazon, IBM, entre outras, são exemplos de empresas que utilizam este conceito. O Google, por exemplo, aplica o conceito MapReduce para trazer resultados de consulta durante a busca no Google.

O que é Big Data, por que é importante e quão perigoso é?

O big data alimenta muitos setores e tem um efeito em todas as nossas vidas. Mas é mais perigoso ou útil?

Leia a seguir

ParticipaçãoTweetE-mail
Tópicos relacionados
  • Programação
  • Programação
  • Big Data
  • Análise de dados
Sobre o autor
Idowu Omisola (133 Artigos Publicados)

Idowu é apaixonado por qualquer tecnologia inteligente e produtividade. Em seu tempo livre, ele brinca com a codificação e muda para o tabuleiro de xadrez quando está entediado, mas também adora fugir da rotina de vez em quando. Sua paixão por mostrar às pessoas o caminho da tecnologia moderna o motiva a escrever mais.

Mais de Idowu Omisola

Assine a nossa newsletter

Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

Clique aqui para assinar