Processamento de dados no Hadoop: componentes do Hadoop explicados [2022]
Publicados: 2021-01-03Com o crescimento exponencial da World Wide Web ao longo dos anos, os dados gerados também cresceram exponencialmente. Isso levou à criação de uma enorme quantidade de dados e estava sendo difícil processar e armazenar essa enorme quantidade de dados com os sistemas de banco de dados relacionais tradicionais.
Além disso, os dados criados não estavam apenas na forma estruturada, mas também no formato não estruturado, como vídeos, imagens, etc. Esse tipo de dados não pode ser processado por bancos de dados relacionais. Para combater esses problemas, o Hadoop surgiu.
Antes de mergulharmos no processamento de dados do Hadoop, vamos ter uma visão geral do Hadoop e seus componentes. Apache Hadoop é um framework que permite o armazenamento e processamento de grandes quantidades de dados de forma rápida e eficiente. Ele pode ser usado para armazenar grandes quantidades de dados estruturados e não estruturados. Saiba mais sobre o ecossistema e os componentes do hadoop.
Os blocos de construção fundamentais do Hadoop são os seguintes: –
Índice
Blocos de construção do Hadoop
1. HDFS (A camada de armazenamento)
Como o nome sugere, o Hadoop Distributed File System é a camada de armazenamento do Hadoop e é responsável por armazenar os dados em um ambiente distribuído (configuração mestre e escravo). Ele divide os dados em vários blocos de dados e os armazena em diferentes nós de dados. Esses blocos de dados também são replicados em diferentes nós de dados para evitar a perda de dados quando um dos nós fica inativo.
Ele tem dois processos principais em execução para o processamento dos dados: –

uma. NomeNode
Ele está sendo executado na máquina mestre. Ele salva os locais de todos os arquivos armazenados no sistema de arquivos e rastreia onde os dados residem no cluster, ou seja, armazena os metadados dos arquivos. Quando os aplicativos cliente desejam realizar determinadas operações nos dados, ele interage com o NameNode. Quando o NameNode recebe a solicitação, ele responde retornando uma lista de servidores de Data Node onde os dados necessários residem.
b. DataNode
Este processo é executado em todas as máquinas escravas. Uma de suas funcionalidades é armazenar cada bloco de dados HDFS em um arquivo separado em seu sistema de arquivos local. Em outras palavras, ele contém os dados reais na forma de blocos. Ele envia sinais de pulsação periodicamente e aguarda a solicitação do NameNode para acessar os dados.
2. MapReduce (A camada de processamento)
É uma técnica de programação baseada em Java que é usada em cima do framework Hadoop para processamento mais rápido de grandes quantidades de dados. Ele processa esses enormes dados em um ambiente distribuído usando muitos nós de dados, o que permite o processamento paralelo e a execução mais rápida de operações de maneira tolerante a falhas.
Um trabalho MapReduce divide o conjunto de dados em vários blocos de dados que são posteriormente convertidos em pares de valores-chave para serem processados pelos mapeadores. O formato bruto dos dados pode não ser adequado para processamento. Assim, os dados de entrada compatíveis com a fase do mapa são gerados utilizando a função InputSplit e RecordReader.
InputSplit é a representação lógica dos dados que devem ser processados por um mapeador individual. RecordReader converte essas divisões em registros que assumem a forma de pares chave-valor. Ele basicamente converte a representação orientada a byte da entrada em uma representação orientada a registro.
Esses registros são então alimentados aos mapeadores para processamento adicional dos dados. As tarefas MapReduce consistem principalmente em três fases, a saber, a fase Map, a fase Shuffle e a fase Reduce.
uma. Fase do mapa
É a primeira fase no processamento dos dados. A principal tarefa na fase de mapeamento é processar cada entrada do RecordReader e convertê-la em tuplas intermediárias (pares chave-valor). Essa saída intermediária é armazenada no disco local pelos mapeadores.
Os valores desses pares chave-valor podem diferir daqueles recebidos como entrada do RecordReader. A fase de mapa também pode conter combinadores que também são chamados de redutores locais. Eles realizam agregações nos dados, mas apenas dentro do escopo de um mapeador.

Como os cálculos são realizados em diferentes nós de dados, é essencial que todos os valores associados à mesma chave sejam mesclados em um redutor. Essa tarefa é executada pelo particionador. Ele executa uma função de hash sobre esses pares de valores-chave para mesclá-los.
Ele também garante que todas as tarefas sejam particionadas uniformemente para os redutores. Os particionadores geralmente entram em cena quando estamos trabalhando com mais de um redutor.
b. Fase de embaralhamento e classificação
Esta fase transfere a saída intermediária obtida dos mapeadores para os redutores. Esse processo é chamado de embaralhamento. A saída dos mapeadores também é classificada antes de ser transferida para os redutores. A classificação é feita com base nas chaves nos pares chave-valor. Ele ajuda os redutores a realizar os cálculos nos dados antes mesmo que todos os dados sejam recebidos e, eventualmente, ajuda a reduzir o tempo necessário para os cálculos.
À medida que as chaves são ordenadas, sempre que o redutor recebe uma chave diferente da entrada, ele começa a realizar as tarefas de redução nos dados recebidos anteriormente.
c. Reduzir Fase
A saída da fase de mapeamento serve como entrada para a fase de redução. Ele pega esses pares de valores-chave e aplica a função de redução neles para produzir o resultado desejado. As chaves e os valores associados à chave são passados para a função de redução para realizar determinadas operações.
Podemos filtrar os dados ou combiná-los para obter a saída agregada. Poste a execução da função reduce, ela pode criar zero ou mais pares chave-valor. Este resultado é escrito de volta no Hadoop Distributed File System.
3. YARN (A camada de gerenciamento)
Yet Another Resource Navigator é o componente de gerenciamento de recursos do Hadoop. Existem processos em segundo plano em execução em cada nó (Node Manager nas máquinas escravas e Resource Manager no nó mestre) que se comunicam entre si para a alocação de recursos. O Resource Manager é a peça central da camada YARN que gerencia recursos entre todas as aplicações e repassa as solicitações para o Node Manager.

O Node Manager monitora a utilização de recursos como memória, CPU e disco da máquina e transmite o mesmo ao Resource Manager. Ele é instalado em cada Data Node e é responsável por executar as tarefas nos Data Nodes.
Leitura obrigatória: as 10 principais ferramentas do Hadoop para engenheiros de big data
Conclusão
Todo o fluxo de trabalho para processamento de dados no Hadoop pode ser resumido da seguinte forma: –
- Divisão de Entrada ; divide logicamente os dados que residem no HDFS em vários blocos de dados. A decisão de como dividir os dados é feita pelo Inputformat .
- Os dados são convertidos em pares chave-valor pelo RecordReader. RecordReader converte os dados orientados a byte em dados orientados a registro. Esses dados servem como entrada para o mapeador.
- O mapeador, que nada mais é do que uma função definida pelo usuário, processa esses pares de valores-chave e gera pares de valores-chave intermediários para processamento posterior.
- Esses pares são reduzidos localmente (dentro do escopo de um mapeador) pelos combinadores para reduzir a quantidade de dados a serem transferidos do mapeador para o redutor.
- O particionador garante que todos os valores com a mesma chave sejam mesclados no mesmo redutor e que as tarefas sejam distribuídas uniformemente entre os redutores.
- Esses pares de valores-chave intermediários são então embaralhados para os redutores e classificados com base nas chaves. Este resultado é alimentado aos redutores como entrada.
- A função reduce agrega os valores para cada chave e o resultado é armazenado de volta no HDFS usando RecordWriter. Antes de gravá-lo de volta no HDFS, o formato no qual os dados devem ser gravados é decidido pelo Outputformat .
Se você estiver interessado em saber mais sobre Big Data, confira nosso programa PG Diploma in Software Development Specialization in Big Data, projetado para profissionais que trabalham e fornece mais de 7 estudos de caso e projetos, abrange 14 linguagens e ferramentas de programação, práticas práticas workshops, mais de 400 horas de aprendizado rigoroso e assistência para colocação de emprego com as principais empresas.
Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.