Hadoop File System foi desenvolvido usando sistema de arquivos distribuído design. É executado em hardware de consumo. Ao contrário de outros sistemas distribuídos, HDFS é altamente tolerante a falhas, proporciona uma e projetado com hardware de baixo custo.
HDFS armazena grande quantidade de dados e permite um acesso mais fácil. Para armazenar dados tão grandes, os arquivos são armazenados em várias máquinas. Esses arquivos são armazenados de forma redundante para resgatar o sistema de possíveis perdas de dados em caso de falha. HDFS também faz com que os aplicativos disponíveis para processamento paralelo.
Abaixo está a arquitetura de um Hadoop File System.
HDFS segue a arquitetura mestre-escravo e possui os seguintes elementos.
O namenode é a commodity hardware que contém o sistema operacional GNU/Linux e o namenode software. Trata-se de um software que pode ser executado em hardware de consumo. O sistema tendo o namenode age como o master server e ele não as seguintes tarefas:
O datanode é uma commodity hardware com o sistema operacional GNU/Linux e datanode software. Para cada nó (Commodity hardware/Sistema) em um cluster, haverá um datanode. Esses nós gerenciar o armazenamento de dados do seu sistema.
Em geral, os dados do usuário são armazenados nos arquivos da HDFS. O arquivo em um sistema de arquivo será dividido em um ou mais segmentos e/ou dados armazenados em cada um nós. Esses arquivos são chamados segmentos como blocos. Em outras palavras, o montante mínimo de dados que HDFS pode ler ou escrever é chamado de bloco. O tamanho de bloco padrão é de 64MB, mas pode ser aumentada conforme a necessidade de mudança na configuração HDFS.
Detecção e recuperação de falhas: Desde HDFS inclui um grande número de hardware de consumo, a falha de componentes é freqüente. Portanto HDFS devem dispor de mecanismos que permitam rápida e detecção automática de falhas e recuperação.
Grandes datasets : HDFS deveria ter centenas de nós por cluster para gerenciar as aplicações de grandes conjuntos de dados.
Hardware em dados: UMA tarefa solicitada pode ser feito de forma eficiente, quando o cálculo realiza-se perto dos dados. Especialmente nos casos em que grandes conjuntos de dados são envolvidos, ela reduz o tráfego de rede e aumenta a produtividade.