Um cluster HDFS tem dois tipos de nós operando em um padrão mestre-escravo:
1. NomeNó (o mestre) e
2. Número de Nós de Dados (escravos/trabalhadores).
HDFS NomeNó
1. NameNode é o principal componente central da estrutura da arquitetura HDFS.
2. NameNode também é conhecido como Nó Mestre.
3. HDFS Namenode armazena meta-dados, ou seja, número de blocos de dados, nome do arquivo, caminho, IDs do bloco, localização do bloco, número de réplicas, e também configuração relacionada a escravo. Estes meta-dados estão disponíveis na memória no master para uma recuperação mais rápida dos dados.
4. NameNode mantém os metadados relacionados ao espaço de nomes do sistema de arquivos na memória, para um tempo de resposta mais rápido. Portanto, mais memória é necessária. Portanto, a configuração do NameNode deve ser implantada em uma configuração confiável.
5. NameNode mantém e gerencia os nós escravos e atribui tarefas a eles.
6. NameNode tem conhecimento de todos os DataNodes contendo blocos de dados para um dado arquivo.
7. NameNode coordena com centenas ou milhares de nós de dados e serve os pedidos vindos de aplicações clientes.
Dois arquivos ‘FSImage’ e o ‘EditLog’ são usados para armazenar informações de metadados.
FsImage: É o snapshot do sistema de arquivos quando o Name Node é iniciado. É um “Arquivo de imagem”. FsImage contém todo o espaço de nomes do sistema de arquivos e armazenado como um arquivo no sistema de arquivos local do NameNode. Ele também contém uma forma serializada de todos os diretórios e inodes de arquivo no sistema de arquivos. Cada inode é uma representação interna dos metadados do arquivo ou diretório.
EditLogs: Contém todas as modificações recentes feitas no sistema de arquivos no FsImage mais recente. NameNode recebe um pedido de criação/atualização/apagamento do cliente. Depois disso, essa solicitação é registrada pela primeira vez no arquivo de edição.
Funções do NameNode no HDFS
1. É o daemon mestre que mantém e gerencia os DataNodes (nós escravos).
2. Ele registra os metadados de todos os arquivos armazenados no cluster, por exemplo, a localização dos blocos armazenados, o tamanho dos arquivos, permissões, hierarquia, etc.
3. Ele registra cada alteração que ocorre nos metadados do sistema de arquivos. Por exemplo, se um arquivo for excluído no HDFS, o NameNode irá imediatamente registrá-lo no EditLog.
4. Ele recebe regularmente um Heartbeat e um relatório de blocos de todos os DataNodes do cluster para garantir que os DataNodes estejam vivos.
5. Ele mantém um registro de todos os blocos no HDFS e em quais nós esses blocos estão localizados.
6. O NameNode também é responsável por cuidar do fator de replicação de todos os blocos.
7. Em caso de falha do DataNode, o NameNode escolhe novos DataNodes para novas réplicas, equilibra o uso do disco e gerencia o tráfego de comunicação para os DataNodes.
HDFS DataNode
1. DataNode também é conhecido como Slave node.
2. Na arquitetura HDFS do Hadoop, DataNode armazena dados reais no HDFS.
3. DataNodes responsáveis por servir, ler e escrever solicitações para os clientes.
4. DataNodes podem ser implantados em hardware de commodity.
5. DataNodes envia informações para o NameNode sobre os arquivos e blocos armazenados naquele nó e responde ao NameNode para todas as operações do sistema de arquivos.
6. Quando um DataNode inicia, ele se anuncia ao NameNode juntamente com a lista de blocos pelos quais é responsável.
7. DataNode é normalmente configurado com muito espaço em disco rígido. Porque os dados reais são armazenados no DataNode.
Funções do DataNode em HDFS
1. Estes são daemons escravos ou processos que rodam em cada máquina escrava.
2. Os dados reais são armazenados em DataNodes.
3. Os DataNodes executam os pedidos de baixo nível de leitura e escrita dos clientes do sistema de arquivos.
4. Cada DataNode envia uma mensagem de batimento cardíaco para o Nó de Nome a cada 3 segundos e transmite que ele está vivo. No cenário em que o Nó Nome não recebe um batimento cardíaco de um Nó de Dados por 10 minutos, o Nó Nome considera esse Nó de Dados específico como morto e inicia o processo de replicação de bloco em algum outro Nó de Dados..
5. Todos os Nós de Dados são sincronizados no cluster Hadoop de uma forma que eles possam se comunicar uns com os outros e ter certeza de
i. Equilibrando os dados no sistema
ii. Movendo os dados para manter uma alta replicação
iii. Copiar os dados quando necessário