Introdução à arquitetura HDFS

HDFS significa Hadoop Distributed File System, que diz que os arquivos são divididos em blocos e armazenados em várias máquinas.

Recursos do HDFS

Os recursos do HDFS são os seguintes:

1. Disponibilidade

No HDFS, os dados são replicados regularmente entre os nós de dados, criando uma réplica de blocos no outro nó de dados. Portanto, em caso de falha ou erro de hardware, o usuário pode obter seus dados de outro nó de dados em que os dados foram replicados.

2. Escalabilidade

No HDFS, os dados são armazenados em vários nós de dados na forma de blocos. O HDFS permite que os usuários aumentem o tamanho dos blocos sempre que necessário. Existem dois tipos de mecanismo de escalabilidade usados ​​no HDFS - escalabilidade horizontal e escalabilidade vertical.

3. Replicação

Esses são os recursos exclusivos do HDFS, que permitem ao usuário acessar facilmente seus dados em caso de falha de hardware.

Arquitetura HDFS

O HDFS segue a arquitetura mestre-escravo, que possui os seguintes componentes:

1. NameNode:

O NameNode também é conhecido como nó principal porque lida com todos os blocos presentes nos DataNodes.

NameNode executa as seguintes tarefas:

  • Gerenciar todos os blocos DataNode
  • Dá acesso ao arquivo ao usuário
  • Mantém todos os registros de blocos presentes no DataNode
  • NameNode registra todas as informações dos arquivos, por exemplo, se um nome de arquivo for renomeado ou o conteúdo tiver sido alterado ou excluído, o NameNode registrará imediatamente essa modificação nos EditLogs
  • Leva os registros de todos os blocos dos nós de dados para garantir que todo o bloco esteja ativo no DataNode.
  • Em caso de erro, se ocorrer alguma falha de hardware, ele seleciona imediatamente outro DataNode para criar replicação e gerenciar a comunicação com todos os DataNodes.

Tipos de arquivos no NameNode

NameNode contém dois tipos de arquivos FsImage e EditLogs

Eu. FsImage: Também é chamada de imagem de arquivo, pois contém todas as informações em um sistema de arquivos com espaços para nome. Ele também contém todos os diretórios e arquivos do sistema de arquivos de maneira serializada.

ii. EditLogs: As modificações atuais feitas nos arquivos do sistema de arquivos são armazenadas no EditLogs.

2. NomeNó Secundário

O NameNode secundário também é chamado como um nó do ponto de verificação porque ele executa pontos de verificação regulares. Ele atua como um auxiliar para o NameNode primário.

Secondary NameNode executa as seguintes tarefas

  • O NameNode secundário combina FsImage e EditLogs do NameNode.
  • Ele lê todas as informações do sistema de arquivos da memória de armazenamento do NameNode e grava essas informações no disco rígido do sistema de arquivos.
  • Ele baixa o FsImage e o EditLogs do NameNode em intervalos regulares e lê as informações de modificação feitas nos arquivos EditLogs e anota a modificação no FsImage. Esse processo cria uma nova FsImage que é então enviada de volta ao NameNode. Sempre que o NameNode iniciar, ele usará essas FsImage.

3. DataNode

O DataNode também é conhecido como nó escravo porque lida com todos os nós que contêm dados em uma máquina escrava. DataNode armazena dados no formato de arquivo ext3 ou ext4.

O nó de dados executa as seguintes tarefas:

  • Todos os dados são armazenados em DataNodes
  • Ele realiza todas as operações de arquivos conforme a solicitação dos usuários, por exemplo, lendo o conteúdo do arquivo, gravando novos dados em arquivos,
  • Ele também segue todas as instruções fornecidas pelo NameNode, por exemplo, renomeando o arquivo, excluindo alguns blocos no DataNode, criando blocos, etc.

4. Nó do ponto de verificação:

Nó de ponto de verificação é um nó que criou um ponto de verificação de arquivos em intervalos regulares. Nó do ponto de verificação no HDFS, faça o download do FsImage e EditLogs do NameNode e mescle-os para criar uma nova imagem e enviar essa nova imagem para o NameNode. O ponto de verificação mais recente é armazenado em um diretório com a mesma estrutura que o diretório do namenode. Por esse motivo, a imagem com ponto de verificação está sempre disponível, se necessário.

5. Nó de backup:

A função de um nó de backup é semelhante a um nó de ponto de verificação para executar uma tarefa de ponto de verificação. No Hadoop, o nó Backup armazena uma cópia mais recente e atualizada do espaço para nome do sistema de arquivos. Não é necessário fazer o download dos arquivos FsImage e editsLogs do NameNode ativo para criar um ponto de verificação no nó Backup, pois está sincronizado com o estado do NameNode ativo. A função do nó Backup é mais precisa, porque salva o espaço para nome no arquivo FsImage local e redefine o editLogs.

6. Blocos:

Todos os dados dos usuários são armazenados em arquivos do HDFS, que são divididos em pequenos segmentos. Esses segmentos são armazenados nos DataNodes. Os segmentos presentes nos DataNodes são chamados como um bloco. O tamanho padrão do bloco desses blocos é 128 MB. O tamanho do bloco pode ser alterado conforme os requisitos dos usuários, configurando o HDFS.

Se o tamanho dos dados for menor que o tamanho do bloco, o tamanho do bloco será igual ao tamanho dos dados. Por exemplo, se os dados tiverem 135 MB, serão criados 2 blocos. Um terá o tamanho padrão de 128 MB e o outro terá apenas 7 MB, não 128 MB. Por esse motivo, é economizado muito espaço e o tempo do relógio do disco.

Gerenciamento de replicação na arquitetura HDFS:

HDFS é tolerante a falhas. A tolerância a falhas é uma potência do sistema em caso de falhas e como ela responde aos erros e condições difíceis. A tolerância a falhas funciona com base no processo de criação de réplicas. Cópias dos dados do usuário são salvas em máquinas no cluster DHFS. Portanto, se houver qualquer falha ou falha no sistema, uma cópia desses dados poderá ser acessada de outras máquinas do cluster HDFS. Cada bloco na arquitetura HDFS possui 3 réplicas que são armazenadas em diferentes DataNodes. NameNode mantém as cópias disponíveis em DataNodes. O NameNode adiciona ou exclui cópias com base nos critérios de blocos sub replicados ou com excesso de replicação.

Operação de gravação

Para gravar arquivos no HDFS, o cliente se comunicará por metadados no NameNode. O Nameode responde com vários blocos, sua localização, cópias, etc. O cliente divide os arquivos em vários blocos com base nas informações do nome. Em seguida, ele começa a enviá-los para o DataNode. Primeiro, o cliente envia o bloco A ao DataNode 1 com outras informações sobre o DataNodes. Quando o DataNode 1 recebe o bloco A do cliente, o DataNode 1 copia o mesmo bloco no mesmo rack para o DataNode 2. Como os dois DataNodes estão no mesmo rack, a transferência do bloco é feita por meio da chave do rack. O DataNode 2 agora copia o mesmo bloco para o DataNode 3 Como os dois DataNodes estão em racks diferentes, a transferência do bloco é feita por meio de uma opção de falta de rack. Quando o DataNode receber os blocos do cliente, ele enviará a confirmação para o NameMode. Cada bloco do arquivo, o mesmo processo é repetido.

Operação de leitura

Para operação de leitura, o primeiro cliente se comunica para metadados com o NameNode. Um cliente sai do NameNode com o nome e o local do arquivo. O Nameode responde com um número de bloco, localização, cópias e outras informações. Depois disso, o cliente se comunica com o DataNodes. Com base nas informações recebidas do NameNode, o cliente começa a ler dados em paralelo a partir dos DataNodes. Quando todo o bloco do arquivo é recebido pelo cliente ou aplicativo, ele combina esses blocos em um formulário de arquivo original.

Conclusão - Arquitetura HDFS

Com a ajuda do NameNode e DataNode, ele armazena arquivos muito grandes de maneira confiável entre máquinas em um cluster grande. Devido à tolerância a falhas, é útil acessar dados durante uma falha de software ou hardware. É assim que a arquitetura do HDFS funciona.

Artigos recomendados

Este foi um guia para a arquitetura HDFS. Aqui discutimos os conceitos básicos com diferentes tipos de arquitetura, recursos e gerenciamento de replicação da arquitetura HDFS. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. O que é modelagem de dados?
  2. O que é visualização de dados
  3. O que é um Data Warehouse?
  4. O que é o SQL Developer?

Categoria: