O que é o Hadoop Distributed File System (HDFS)? Arquitetura, recursos e operações
Publicados: 2020-02-03O Hadoop Distributed File System ou HDFS é o sistema de armazenamento primário do Hadoop. Ele armazena grandes arquivos de dados que são executados em hardware comum. Esse sistema de armazenamento é escalável, facilmente expansível e tolerante a falhas.
Quando há muitos dados armazenados em uma máquina física, o armazenamento é dividido em várias máquinas para evitar a perda de dados. O HDFS é um desses sistemas de armazenamento de arquivos distribuídos que gerencia as operações de armazenamento em muitas máquinas físicas. Aqui está um tutorial do HDFS para você entender melhor como esse sistema funciona. Vamos começar com sua arquitetura.
Índice
Arquitetura HDFS
O Hadoop Distributed File System possui uma arquitetura mestre-escravo com os seguintes componentes:
- Namenode : É o hardware commodity que contém o software namenode e o sistema operacional Linux/GNU. O software Namenode pode ser executado sem problemas em hardware comum sem encontrar nenhum problema. O sistema com namenode como componente funciona como o servidor mestre. Ele executa tarefas que incluem regular como os clientes estão acessando arquivos, gerenciando o namespace do sistema de arquivos e executando operações, incluindo abertura, fechamento e renomeação de diretórios e arquivos.
- Datanode : É um hardware de commodity que contém o software de nó de dados e Linux/GNU OS. Os nós em um cluster sempre terão nós de dados associados a eles. Esses nós são responsáveis por gerenciar o armazenamento do hardware/sistema da mercadoria. Algumas das tarefas que os nós de dados executam incluem operações de leitura/gravação de acordo com a solicitação e criação do cliente, replicação e exclusão de blocos com base nas instruções fornecidas pelo namenode.
- Block : Todos os dados do usuário são armazenados em arquivos HDFS. Cada arquivo pertencente a um determinado sistema de arquivos é dividido em um ou mais segmentos, que são armazenados em datanodes. Os segmentos de arquivo em que os arquivos são divididos são blocos. Assim, o menor dado que o HDFS é capaz de ler ou escrever é um bloco. Inicialmente, cada bloco tem 64 MB de tamanho. Mas, esse tamanho pode ser aumentado de acordo com as alterações de configuração do HDFS.
A arquitetura HDFS fornece uma imagem clara e inequívoca dos trabalhos HDFS. Ele consiste em vários datanodes, mas apenas um único namenode. Os metadados são armazenados no namenode enquanto o trabalhador real dos dois tipos de nós é o datanode. Os nós são organizados em diferentes racks nos quais os blocos de dados são armazenados para melhorar a tolerância a falhas e a confiabilidade dos dados. Os clientes precisam interagir com o namenode para ler/gravar um arquivo. O cluster possui vários datanodes que usam o disco local para armazenar os dados disponíveis. Datanode e namenode estão perpetuamente em contato um com o outro. O Datanode também é responsável por replicar dados usando o recurso de replicação para diferentes datanodes.
As operações de leitura e escrita no HDFS ocorrem no menor nível, ou seja, no nível do bloco. O conceito de replicação de dados é fundamental para o funcionamento do HDFS – a alta disponibilidade dos dados é garantida durante a falha do nó, criando réplicas de blocos e distribuindo-os em todo o cluster.
Operações HDFS
O sistema de arquivos HDFS e Linux são bastante semelhantes entre si. Assim, o HDFS nos permite realizar todas as operações que estamos acostumados a realizar com sistemas de arquivos locais – podemos criar um diretor, alterar permissões, copiar arquivos e muito mais. Também temos vários direitos de acesso a arquivos, incluindo leitura, gravação e execução.

Operação de leitura em HDFS: Se você quiser ler um arquivo armazenado em HDFS, terá que interagir com namenode. Como já mencionado, todos os metadados são armazenados no namenode. Depois de interagir com o namenode, ele fornecerá o endereço do datanode onde o arquivo que você está procurando está armazenado. Você pode interagir com o datanode cujo endereço lhe foi dado pelo namenode e, em seguida, ler as informações de lá.
Você interage com a API do sistema de arquivos, que solicita namenode para compartilhar o endereço do bloco. Antes de fornecer essas informações, o namenode verifica se você tem o direito de acessar esses dados ou não. Depois que essa verificação é feita, o namenode compartilha a localização do bloco ou nega o acesso devido a restrições.
Você recebe uma forma de token pelo namenode, que você deve mostrar ao respectivo datanode para acessar um arquivo. Essa é uma forma de mecanismo de segurança que o HDFS emprega para garantir que a pessoa certa esteja acessando os dados. O datanode só permitirá que você leia o arquivo depois de exibir o token.

Operação de escrita: A operação de escrita segue o mesmo padrão inicial. Você precisa solicitar o namenode para permitir que você escreva dados. Em troca, ele fornecerá a localização do datanode no qual a operação de gravação deve ser executada. Assim que você terminar de executar esta operação, o datanode começará a replicar esses blocos de dados gravados em outros datanodes. Assim que a replicação for concluída, você receberá uma confirmação. O mecanismo de autenticação na operação de gravação é o mesmo da operação de leitura.

Recursos HDFS
- Disponibilidade : Não há muitos sistemas de arquivos que vêm com a alta disponibilidade do HDFS. O sistema de arquivos segue um mecanismo de replicação de dados na forma de réplicas de blocos nos datanodes (escravos) ao longo de um cluster. Para acessar esses dados, você precisa interagir com datanodes que contêm os blocos de informações que estão procurando.
- Confiabilidade : O Hadoop Distributed File System é um sistema de armazenamento de dados altamente confiável. A quantidade de dados que podem ser armazenados em intervalos HDFS em petabytes. Ele usa um cluster para armazenar todos os seus dados, que são separados para formar blocos. Em seguida, ele usa os nós do cluster para armazenar esses blocos.
- Tolerância a falhas : Este recurso é a força de trabalho do HDFS em condições que não são tão propícias quanto normalmente são. O HDFS tolera falhas como nenhum outro sistema de arquivos. Ele protege seus dados dos efeitos de qualquer imprevisto, mesmo no futuro. Como já mencionado, a replicação dos dados é feita em diferentes máquinas. O que acontece quando qualquer uma dessas máquinas para de funcionar? Poderia ter sido um problema significativo com qualquer outro sistema, mas não HDFS. O HDFS permite que você acesse seus dados de qualquer outra máquina que também tenha uma cópia dos blocos de dados que você está procurando. Isso é chamado de tolerância a falhas verdadeira.
- Escalabilidade : o HDFS usa diferentes nós em um cluster para armazenar dados. Quando os requisitos de armazenamento aumentam, você sempre pode ir em frente e dimensionar o cluster. Esse é outro recurso exclusivo do HDFS. O sistema de distribuição de arquivos fornece dois mecanismos para dimensionar o cluster – escalabilidade horizontal e vertical.
- Replicação : A replicação é um recurso que diferencia o HDFS de outros sistemas de armazenamento. A replicação minimiza as instâncias de perda de dados devido a um evento desfavorável, como falha de nó, falha de hardware e outros. O processo de replicação é realizado regularmente e em diferentes máquinas. Portanto, não há perda de dados se uma máquina cair. Você pode usar qualquer outra máquina para obter seus dados.
Objetivos do HDFS
- Gerenciando grandes conjuntos de dados: Ao contrário de outros sistemas de distribuição de arquivos, o HDFS possui a arquitetura necessária para gerenciar aplicativos que apresentam grandes conjuntos de dados. Dependendo da enormidade dos conjuntos de dados em questão, ele pode ter centenas de nós para cada cluster.
- Detecção e recuperação de falhas: poucos podem superar o HDFS em seus recursos associados à detecção de falhas e, em seguida, lidar adequadamente com elas. Um grande número de hardware comum em questão torna o HDFS exposto a falhas frequentes de componentes. No entanto, isso não é uma desvantagem. Todo sistema que lida com esse hardware comum está sujeito a falhas. No entanto, a questão permanece se o sistema é ou não adepto de detectar essas falhas de forma rápida e automática e fornecer recuperação ao mesmo tempo. HDFS certamente é capaz.
- Maior rendimento: o HDFS processa cada tarefa com eficiência, pois a computação real é realizada perto dos próprios dados. Isso é especialmente muito importante quando estamos lidando com grandes conjuntos de dados. Este mecanismo aumenta o rendimento e elimina significativamente o problema do tráfego de rede.
Para concluir, gostaríamos de dizer que o HDFS pode armazenar grandes quantidades de dados de maneira confiável e sem sentir os efeitos de uma falha de hardware. Também é altamente tolerante a falhas, altamente disponível e altamente escalável.
Para viajar nas profundezas do Hadoop e se tornar um especialista, confira a certificação PG do upGrad & BITS Pilani em Big Data & Analytics. Obtenha experiência prática, um a um com especialistas do setor, mentor dedicado, status de ex-aluno do BITS Pilani e muito mais.
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.