Índice:
Vídeo: Curso de Big Data - Aula 2 - Principais Ferramentas (Hadoop, HBase e Spark) 2024
O Hadoop Distributed File System é uma abordagem versátil, resiliente e agrupada para gerenciar arquivos em um grande ambiente de dados. O HDFS não é o destino final dos arquivos. Em vez disso, é um serviço de dados que oferece um conjunto único de recursos necessários quando os volumes de dados e a velocidade são altos. Como os dados são escritos uma vez e, em seguida, lê muitas vezes depois disso, em vez das constantes escritas em leitura de outros sistemas de arquivos, o HDFS é uma excelente opção para suportar a análise de dados.
Dados grandes NomeNodes
O HDFS funciona ao quebrar arquivos grandes em partes menores chamados blocos . Os blocos são armazenados em nós de dados, e é responsabilidade do NameNode saber quais blocos nos quais os nós de dados compõem o arquivo completo. O NameNode também atua como um "policial de trânsito", gerenciando todo o acesso aos arquivos.
A coleção completa de todos os arquivos no cluster às vezes é denominada espaço de nomes do sistema de arquivos . É o trabalho do NameNode gerenciar esse namespace.
Embora exista um relacionamento forte entre o nomeNode e os nós de dados, eles operam de forma "vagamente acoplada". Isso permite que os elementos do cluster se comportem dinamicamente, adicionando servidores à medida que a demanda aumenta. Em uma configuração típica, você encontra um NomeNodo e possivelmente um nó de dados em execução em um servidor físico no rack. Outros servidores executam apenas nós de dados.
Os nós de dados se comunicam entre si para que possam cooperar durante as operações normais do sistema de arquivos. Isso é necessário porque os blocos para um arquivo provavelmente serão armazenados em vários nós de dados. Uma vez que o NameNode é tão crítico para a operação correta do cluster, ele pode e deve ser replicado para se proteger contra uma única falha no ponto.
Nodos de dados grandes
Os nós de dados não são inteligentes, mas são resilientes. Dentro do cluster HDFS, os blocos de dados são replicados em vários nós de dados e o acesso é gerenciado pelo NomeNodo. O mecanismo de replicação foi projetado para uma eficiência ótima quando todos os nós do cluster são coletados em um rack. Na verdade, o NameNode usa uma "ID do rack" para acompanhar os nós de dados no cluster.
Os nós de dados também fornecem mensagens de "batimento cardíaco" para detectar e garantir a conectividade entre o NomeNodo e os nós de dados. Quando um batimento cardíaco já não está presente, o NameNode desata o nó de dados do cluster e continua funcionando como se nada acontecesse. Quando os batimentos cardíacos retornam, ele é adicionado ao cluster de forma transparente em relação ao usuário ou aplicativo.
A integridade dos dados é uma característica fundamental. O HDFS suporta uma série de recursos projetados para fornecer integridade de dados. Como você pode esperar, quando os arquivos são quebrados em blocos e depois distribuídos por diferentes servidores no cluster, qualquer variação na operação de qualquer elemento pode afetar a integridade dos dados. O HDFS usa logs de transações e validação de soma de verificação para garantir a integridade em todo o cluster.
Os registros de transações acompanham todas as operações e são efetivos na auditoria ou na reconstrução do sistema de arquivos, caso ocorram problemas.
As validações de checksum são usadas para garantir o conteúdo de arquivos em HDFS. Quando um cliente solicita um arquivo, ele pode verificar o conteúdo examinando sua soma de verificação. Se a soma de verificação corresponder, a operação do arquivo pode continuar. Caso contrário, um erro é relatado. Os arquivos de Checksum estão ocultos para ajudar a evitar adulterações.
Os nós de dados usam discos locais no servidor de commodities para a persistência. Todos os blocos de dados são armazenados localmente, principalmente por motivos de desempenho. Os blocos de dados são replicados em vários nós de dados, portanto, a falha de um servidor pode não corromper um arquivo. O grau de replicação, o número de nós de dados eo espaço para nome HDFS são estabelecidos quando o cluster é implementado.
HDFS para dados grandes
HDFS aborda grandes desafios de dados ao quebrar arquivos em uma coleção relacionada de blocos menores. Esses blocos são distribuídos entre os nós de dados no cluster HDFS e são gerenciados pelo NomeNodo. Os tamanhos de bloco são configuráveis e normalmente são de 128 megabytes (MB) ou 256 MB, o que significa que um arquivo de 1GB consome oito blocos de 128MB para suas necessidades básicas de armazenamento.
HDFS é resiliente, então esses blocos são replicados em todo o cluster em caso de falha no servidor. Como o HDFS acompanha todas essas peças? A resposta curta é o sistema de arquivos metadata .
Metadados é definido como "dados sobre dados". "Pense nos metadados HDFS como um modelo para fornecer uma descrição detalhada do seguinte:
-
Quando o arquivo foi criado, acessado, modificado, excluído e assim por diante
-
Onde os blocos do arquivo estão armazenados no cluster < Quem tem o direito de visualizar ou modificar o arquivo
-
Quantos arquivos são armazenados no cluster
-
Quantos nós de dados existem no cluster
-
O local do log de transações para o cluster
-
HDFS metadados são armazenados no NameNode e, enquanto o cluster está em operação, todos os metadados são carregados na memória física do servidor NameNode. Como você poderia esperar, quanto maior o cluster, maior a pegada de metadados.
O que exatamente faz o servidor de um bloco? Verifique a seguinte lista:
Armazena os blocos de dados no sistema de arquivos local do servidor. O HDFS está disponível em muitos sistemas operacionais diferentes e se comporta de forma semelhante, seja no Windows, Mac OS ou Linux.
-
Armazena os metadados de um bloco no sistema de arquivos local com base no modelo de metadados no NameNode.
-
Realiza validações periódicas de somas de verificação de arquivos.
-
Envia relatórios regulares ao NameNode sobre quais blocos estão disponíveis para operações de arquivos.
-
Fornece metadados e dados aos clientes sob demanda. O HDFS oferece acesso direto aos nós de dados dos programas de aplicativos do cliente.
-
Encaminha dados para outros nós de dados com base em um modelo de "pipelining".
-
A colocação de blocos nos nós de dados é fundamental para a replicação de dados e suporte para o pipeline de dados. HDFS mantém uma réplica de cada bloco localmente. HDFS é sério sobre replicação de dados e resiliência.