Article image
Allan
Allan04/03/2023 15:58
Compartilhe

Um pouco sobre o Hadoop 🐘

  • #Hadoop

A cada dia que passa a quantidade de dados cresce exponencialmente, aumentando a demanda por armazenamento e processamento desses dados, elevando muito os custos para as empresas.

Empresas vêem no Hadoop uma boa escolha para o tratamento analítico de grandes volumes de dados que crescem exponencialmente com o passar do tempo.

Ele proporciona elasticidade e distribuição de processamento e tem como vantagem ser gratuito, voltado para o processamento de grandes volumes de dados distribuídos, tolerante à falhas e altamente escalável.

O Hadoop é mantido pela Apache Software Foundation, organização sem fins lucrativos que abriga, desenvolve e mantém vários projetos open-source. Foi desenvolvido levando em consideração o MapReduce (modelo de programação inspirado por map e reduce, duas funções bastante usadas em programação funcional) e no Google File System (sistema de arquivos otimizado para dados clusterizados do Google).

Os principais módulos do ecosistema Hadoop são: Hadoop Distributed File System (HDFS), Hadoop MapReduce, Hadoop Common, Hadoop Yarn e Hadoop Ozone.

Hadoop Common é o grupo de bibliotecas e arquivos compartilhados entre todos os módulos Hadoop.

Hadoop Yarn fornece gerenciamento e agendamento de recursos de hardware.

Hadoop Ozone é um novo módulo adicionado em 2020, foi criado para adereçar as limitações do HDFS no que se refere à quantidade total de arquivos lidados e melhora o suporte a arquivos pequenos.

Hadoop HDFS é o sistema de arquivos que armazena dados em clusters (máquinas ou nós distribuídos) e mantém esses dados consistentes, íntegros e tolerantes à falhas. Esse sistema trabalha quebrando os arquivos em bloco de dados e esses blocos são armazenados em um conjunto de Datanodes e replicados de acordo com o “fator de replicação” configurado no Namenode para tolerância à falhas. O tamanho dos blocos são de 128 MB e o fator de replicação é 3 por default. O NameNode grava e mapeia as informações de envio de cada bloco e os armazena nos DataNodes, controlando assim informações de acesso, leituras, gravações, criações e exclusões desses blocos de dados. Os Datanodes comunicam-se constantemente com o NameNode, processando e armazenando os blocos de dados. Essa comunicação é importante para que, em caso de falha, o DataNode possa comunicar-se ao NameNode que executa um processo de recuperação.

Hadoop MapReduce se baseia no modelo de programação MapReduce, simples e poderoso para processamento distribuído e paralelo em larga escala através das etapas principais Map(leitura nos clusters dos blocos de dados produzindo como resultado pares de chave e valor), Shuffle/Sort (os resultados da fase Map são ordenados através das chaves) e Reduce (agrupa todos os dados classificados e ordenados na fase anterior, consolidando e gravando o resultado em disco). O código MapReduce é executado paralelamente em cada nó do cluster que contém alguma parte dos dados requisitados, reduzindo assim o tráfego de dados na rede. O MapReduce possui como vantagens ser altamente escalável (pode lidar com vários terabytes), ser flexível (pode lidar com dados de vários tamanhos e tipos, sejam eles estruturados, semi-estruturados ou não estruturados), ser seguro (protege os dados de acessos não autorizados e aumenta a segurança do cluster), ser econômico (o cluster pode ser formado por vários tipos de hardware, abrangindo desde componentes domésticos até servidores corporativos), ser rápido (pode gerir terabytes de dados em poucos minutos devido ao paralelismo de seu processamento) e ser simples na implementação (pode ser escrito em várias linguagens, Java, Python, Perl, R, etc).

A minha resenha foi baseada nesse artigo:

https://medium.com/@markuvinicius/hello-hadoop-world-primeiros-passos-com-hadoop-e-mapreduce-9b368dd7eeb7

e na wikipédia:

https://pt.wikipedia.org/wiki/Hadoop

Compartilhe
Comentários (0)