Você está na página 1de 7

MAPREDUCE E HADOOP: EXPLORANDO AS DUAS

FERRAMENTAS E SEUS POTENCIAIS NA COMPUTAÇÃO


DISTRIBUÍDA

George Gabriel Pereira da Silva1

RESUMO

Este artigo explora o MapReduce e o Hadoop, duas tecnologias cruciais dentro do campo
da computação distribuída. O MapReduce é um modelo que simplifica o processamento
paralelo de grandes volumes de dados, dividindo-o em operações Map e Reduce. Por outro
lado, o Hadoop é um ecossistema que implementa esse modelo, fornecendo um ambiente
distribuído para executar algoritmos baseados em operações MapReduce. Este artigo
busca explicar de forma sucinta os conceitos essenciais, a relação entre ambos e suas
aplicações práticas na era do Big Data.

Palavras-chave: MapReduce. Hadoop. Big Data. Computação Distribuída. Dados.

ABSTRACT

This article explores MapReduce and Hadoop, two crucial technologies within the field of
distributed computing. MapReduce is a model that simplifies the parallel processing of large
volumes of data by breaking it down into Map and Reduce operations. On the other hand,
Hadoop is an ecosystem that implements this model, providing a distributed environment to
execute algorithms based on MapReduce operations. This article aims to succinctly explain
the essential concepts, the relationship between the two, and their practical applications in
the era of Big Data.

Keywords: MapReduce. Hadoop. Big Data. Distributed Computing. Data.

1
Graduando do curso Tecnologia em Análise e Desenvolvimento de Sistemas pelo UniSenai. E-mail: geogab.dev@gmail.com
1. INTRODUÇÃO

Com o crescimento exponencial da quantidade e diversidade dos dados gerados,


coletados e armazenados na era digital nos últimos anos, crescimento este que,
impulsionado por diversos fatores, como avanços na tecnologia, aumento significativo da
conectividade, utilização massiva de dispositivos móveis, interações nas redes sociais,
transações online, sensores, e entre outros. Esse imenso volume de dados gerados é
conhecido como Big Data e traz diversos desafios e oportunidades significativas, o que exige
novas abordagens e soluções eficazes para armazenamento, processamento e análise em
larga escala.
O MapReduce é um modelo que simplifica a tarefa de processamento distribuído de
grandes conjuntos de dados. Por outro lado, o Hadoop é uma implementação popular desse
modelo que oferece um ambiente de computação distribuída para executar algoritmos
baseados em MapReduce. Neste artigo, será explorado o MapReduce, o Hadoop sua
interconexão e seus benefícios dentro da computação distribuída.

2. MAPREDUCE: CONCEITOS E FUNCIONAMENTOS

O MapReduce foi desenvolvido no Google em 2004 por Jeffery Dean e Sanjay


Ghemawat (Dean & Ghemawat, 2004). É um paradigma de programação que fornece a
capacidade de processar paralelamente grandes volumes de dados em um dado ambiente
de computação distribuído, inspirado nas funções Map e Reduce comumente utilizadas
dentro do campo da programação funcional. Uma aplicação MapReduce é fundamentada
numa combinação de operações Map e Reduce, que consiste basicamente em três etapas
de processamento dos dados bem definidas.
A primeira operação é o Map, onde os dados de entrada no sistema são divididos em
partes menores. O sistema determina automaticamente o número de mappers que vão ser
utilizados baseado no tamanho dos dados que vão ser processados nos blocos de memórias
disponíveis, por conseguinte cada bloco é atribuído a um mapper onde vão ser processados,
cada tarefa Map produz um conjunto de pares “chave-valor” correspondente aos dados de
entrada processados. Cada nó do cluster computacional aplica a função Map nos dados e
os pares “chave-valor” são temporariamente armazenados na memória ou em arquivos
locais na máquina onde o Map foi executado. O nó principal do cluster, denominado master,
garante que apenas uma única cópia dos dados de entrada sejam processadas evitando
redundâncias.
A próxima operação é conhecida como Shuffle, os nós do cluster redistribuem os
dados utilizando como parâmetro os pares “chave-valor” gerados anteriormente pela função
Map para que todos os dados que pertencem a uma mesma chave sejam alocados no
mesmo nó do cluster computacional. Existe um processo de combinação que é opcional,
que pode ser executado separadamente em cada nó do cluster para restringir ainda mais
os dados de cada mapper, tendo como resultado a redução significativa dos dados e
facilitando o embaralhamento e a classificação.

A última etapa aplicada é o Reduce, este não pode ser executado enquanto uma
operação Map não for concluída. Os nós do cluster vão processar cada conjunto de dados
de saída “chave-valor” paralelamente e gerar novos dados pares “chave-valor” como saída.
Todos os dados de saída da função Map que contém a mesma chave são atribuídos a um
Reducer que aplica operações de agregação para essas chaves. A execução das funções
implementadas pelo desenvolvedor são as que definem a lógica do fluxo dos dados no
processo MapReduce. De acordo com a Figura 1, na fase Map o par “chave-valor” é a
entrada para a função de mapeamento (Mapper) que gera um novo par “chave-valor” para
a tarefa Reduce.

Figura 1 Fluxo de Processamento no MapReduce

Fonte: www.sunlab.org (2023)


3. HADOOP: FRAMEWORK PARA PROCESSAMENTO DE DADOS EM ESCALA

Hadoop em sua essência é um projeto open-source do MapReduce, consiste em uma


plataforma escrita em Java que é uma linguagem de alto nível e que disponibiliza um
conjunto de ferramentas, aplicações e frameworks para desenvolver aplicações que
precisam processar e armazenar um grande volume de dados dentro de um sistema de
computação escalável e distribuído. Hadoop fornece todos os recursos necessários para
desenvolver aplicações de Big Data para processar um grande volume de dados por meio
de um modelo de programação simplificado utilizando clusters computacionais (DENESIUK
Daniel, 2004). Este framework é altamente escalável e fornece a capacidade de trabalhar
com armazenamento e processamento localmente, entretanto, de forma distribuída, que
funciona para cluster com apenas um nó bem como para clusters com vários nós.

Os principais componentes do Hadoop incluem:

• HDFS (Hadoop Distributed File System): É um sistema de arquivos distribuído


do Hadoop, desenvolvido para ter a capacidade de armazenar grandes volume
de dados em um cluster de máquinas. Os dados de entrada são particionados
em blocos, com tamanho de 128Mb ou 256Mb e distribuídos entre os nós do
cluster garantindo a tolerância a falhas e a confiabilidade.

• MapReduce: Este modelo de programação é o ponto chave do Hadoop, este


processo divide as tarefas de processamento dos dados em duas operações
cruciais: o mapeamento (Map) e a redução (Reduce). A operação Map
transforma os dados de entrada em pares “chave-valor” e o Reduce combina
esses pares tendo como base as chaves, por fim aplicando operações de
agregação e resumindo o resultado.

• YARN (Yet Another Resource Negotiator): YARN é o sistema de


gerenciamento de recursos computacionais do Hadoop que permite a
execução de aplicações paralelamente e com eficiência em todo o cluster.
Permitindo fazer um gerenciamento dinâmico bem como otimizar a alocação
dos recursos, obtendo uma maior flexibilidade e escalabilidade.
Abaixo podemos ver na Figura 2 a arquitetura do Hadoop e seu ecossistema, bem
como suas principais ferramentas, frameworks e aplicações para Big Data.

Figura 2 Ecossistema Hadoop

Fonte: www.data-flair.training (2023)

4. HADOOP E MAPREDUCE: A DUPLA NO PROCESSAMENTO DISTRIBUÍDO

O Hadoop Mapreduce é uma peça essencial dentro de todo o framework, sendo que
este é inteiramente responsável pelo processamento de dados. O Hadoop, após
implementar o modelo de programação MapReduce, ganhou muita repercussão, tornando
o mesmo muito famoso dentro do universo da computação distribuída. Sendo uma excelente
solução para o processamento paralelo de dados, o desenvolvedor da aplicação não precisa
realizar nenhuma configuração extra para garantir que os dados serão processados
paralelamente entre os nós do cluster. Colocando a ferramenta como uma ótima escolha
para resolução de problemas que envolvem a análise de dados em grande escala.

Toda a eficácia obtida pelo Hadoop MapReduce pode ser aprovada verificando o
número de importantes empresas, dos mais variados ramos, que utilizam o Hadoop sejam
para fins educacionais ou de produção. Um dos maiores desenvolvedores e contribuintes
do projeto foi a empresa Yahoo!, no entanto, também tem sido utilizada por grandes
corporações (Goldman Alfredo, 2012).
Abaixo será apresentado com algumas das principais empresas que utilizam o
Hadoop em seus processos:

• Adobe (www.adobe.com): ferramentas e serviços para conteúdo digital. Utiliza


o Hadoop para armazenamento e processamento de dados internos e de
redes sociais.

• Facebook (www.facebook.com): plataforma que provê serviço de rede social.


Atualmente conta com mais de 3,08 bilhões de usuários ativos. Utiliza o
Hadoop para análise de log.

• LinkedIn (www.linkedin.com): é uma rede social de caráter profissional para


compartilhar informações, ideias e oportunidades. Utiliza o Hadoop para
análise e busca de similaridade entre perfis de usuários.

• Twitter (www.twitter.com): é uma rede social e servidor para microblogging.


Utiliza o Hadoop para armazenamento de mensagens e no processamento de
informações.

• Yahoo! (www.yahoo.com): plataforma que oferece serviços de busca na Web,


serviços de notícias e email. Utiliza o Hadoop para processamento de buscas,
recomendações de publicidades, testes de escalabilidade.

5. CONSIDERAÇÕES FINAIS

O MapReduce e o Hadoop, tecnologias chave no âmbito da computação distribuída,


destacam-se como poderosas ferramentas que descomplicam a tarefa complexa do
processamento distribuído de dados. O paradigma do MapReduce se revela altamente
eficaz ao converter volumes massivos de dados em informações valiosas e relevantes,
enquanto o Hadoop assume a responsabilidade de implementar e executar esse modelo de
maneira amplamente escalável e eficiente.

Essa simbiose entre o MapReduce e o Hadoop não apenas facilita a tarefa de


processamento distribuído, mas também desempenha um papel central na atual era do Big
Data. A capacidade de analisar e processar ingentes volumes de dados é crucial para a
compreensão e a tomada de decisões informadas em diversos setores, e essas tecnologias
vêm se mostrando indispensáveis nesse cenário.
REFERÊNCIAS

DEVMEDIA. Big Data: MapReduce na prática. Rio de Janeiro. 2015. Acesso em: 11 out. 2023.
Disponível em: https://www.devmedia.com.br/big-data-mapreduce-na-pratica/32812

DATABRICKS. MapReduce: O que é MapReduce. San Francisco. 2023. Acesso em: 13 out. 2023.
Disponível em: https://www.databricks.com/br/glossary/mapreduce

DEAN. Jeffery; GHEMAWAT. Sanjay. MapReduce: Simplified Data Processing on Large


Clusters. Estados Unidos: 2004.

DENESIUK. Daniel. HADOOP: ANÁLISE DA FERRAMENTA E ESTUDO DE CASO. Brasil: 2016.

HADOOP. Apache Hadoop. EUA. 2023. Acesso em: 18 out. 2023. Disponível em: https://ha-
doop.apache.org/

DEVMEDIA. Hadoop Mapreduce: Introdução a Big Data. Rio de Janeiro. 2015. Acesso em: 18
out. 2023. Disponível em: https://www.devmedia.com.br/hadoop-mapreduce-introducao-a-big-
data/30034

GOLDMAN. Alfredo. Apache Hadoop: conceitos teóricos e práticos, evolução e novas possi-
bilidades. Brasil: 2012.

Você também pode gostar