O que é HDFS (sistema de arquivos distribuídos Hadoop)
Quando trabalhamos com nosso computador, salvamos arquivos, imagens ou vídeos no disco rígido integrado. Porém, quando trabalhamos com uma grande quantidade de dados, não podemos armazená-los em um único computador, pois ocupariam mais memória do que possuem.
Introdução ao HDFS
Aqui enfrentamos problemas diferentes. O que aconteceria se um dos computadores quebrasse? Perderíamos uma parte dos nossos dados. Por esta razão, os sistemas de arquivos distribuídos devem ser tolerantes a falhas para evitar perda de dados.
O Hadoop integra seu próprio sistema de arquivos chamado Hadoop Distributed Filesystem ou mais conhecido como HDFS. Este sistema está em conformidade com o que foi mencionado acima. É capaz de armazenar milhões e milhões de dados em uma rede distribuída de computadores e também é tolerante a falhas, evitando que dados sejam perdidos durante um erro em um dos nós.
Neste artigo do blog apresentaremos o HDFS para entender sua importância, suas características e o fluxo de dados entre estruturas de big data.
Recursos do sistema de arquivos Hadoop
Arquivos muito grandes
Clusters de computadores Hadoop podem armazenar arquivos que ocupam muita memória. Hoje, existem sistemas Hadoop que executam aplicações com muitos petabytes de dados.
Salvo em blocos
Os arquivos no HDFS são divididos em blocos de cerca de 128 MB de memória. Esses blocos são duplicados e armazenados em nós diferentes. Ter múltiplas cópias do mesmo bloco permite que os dados sejam recuperados se um dos nós quebrar.
Adequado para todos os tipos de hardware
O Hadoop pode ser executado em clusters criados com computadores de diversos fabricantes. Está desenhado para ser fácil de instalar e poder utilizar de forma simples, de forma que pareça que estamos trabalhando com um único computador.
Alta escalabilidade
O HDFS é dimensionado horizontalmente, adicionando mais nós (computadores) ao sistema de cluster. O HDFS oferece suporte a milhares de nós e pode expandir aplicativos distribuídos com rapidez e segurança.
Acesso de alta latência
Aplicativos que exigem baixa latência não funcionam bem com HDFS, pois esse sistema foi projetado para entregar uma grande quantidade de dados. Existem outros sistemas de armazenamento de dados cujo acesso é mais rápido, como o HBase, um banco de dados distribuído não relacional orientado a colunas.
Tolerante a falhas
HDFS é um sistema redundante. Isso significa que para cada bloco são geradas 3 cópias e armazenadas em servidores diferentes. Isso permite que se algum dos computadores perder a informação, ela possa ser recuperada rapidamente.
Componentes do sistema HDFS
NomeNode
O NameNode é o nó mestre responsável por organizar e gerenciar todo o cluster. Contém os metadados que especificam em qual DataNode cada bloco de informações é armazenado.
Além disso, o NameNode também gerencia o acesso aos DataNodes dos clientes.
Se o NameNode travar, as informações do bloco não poderão ser recuperadas e as informações do HDFS serão perdidas. Para evitar isso, um NameNode sobressalente alternativo pode ser habilitado e assumirá o controle quando o principal falhar.
Nós de dados
Os datanodes são os escravos do sistema. Eles armazenam e recuperam blocos de dados quando solicitados pelo Namenode ou pelo cliente.
Fluxo de dados entre o cliente e o HDFS
Para entender como funciona uma aplicação que usa um sistema de arquivos distribuído como o HDFS, é importante entender como ocorre o fluxo de dados entre o HDFS, o cliente, o namenode e os datanodes.
Quando o cliente solicita permissão para ler arquivos, é feita uma chamada ao namenode e ele prossegue para determinar a localização dos blocos de informações nos datanodes.
Uma vez encontrados, os datanodes são classificados por sua topologia por proximidade do cliente.
As informações do primeiro bloco são enviadas ao cliente e uma vez finalizado, a conexão com o datanode é fechada e a conexão com o datanode do próximo bloco é aberta.
Isso acontece de forma transparente para o cliente, onde ele vê um fluxo contínuo de dados.
Se durante o processo surgir um erro com o datanode de um determinado bloco, então será pesquisado o próximo datanode com aquele bloco de informação mais próximo do cliente. Isto é o que permite que o HDFS seja tolerante a falhas.
Aplicativos de big data suportados pelo Hadoop Distributed Filesystem
Muitas estruturas de big data funcionam com o sistema de arquivos distribuído do Hadoop por baixo. Alguns desses programas são Spark, Hive, Pig ou Mahout.
Todas essas estruturas desempenham o papel de clientes. Eles chamam o HDFS para recuperar os dados necessários e realizar diferentes operações neles antes de mostrá-los ao usuário.
Por exemplo, o Mahout usa dados armazenados no HDFS para criar modelos de aprendizado de máquina ou o Hive para extrair dados com instruções SQL semelhantes à linguagem natural humana.
Melhores cursos para aprender Hadoop e HDFS
Agora que você já sabe do que se trata o HDFS, quer aprender como implementá-lo de forma prática em seus próprios projetos?
Abaixo mostramos alguns dos cursos online onde você pode aprender em profundidade essa tecnologia big data, HDFS e Hadoop.
- O Hadoop prático definitivo: domine seu big data!
- Introdução ao Big Data com Hadoop do zero