O ecossistema Hadoop tem como pilares os seguintes componentes: o HDFS, YARN e MapReduce e possui integração com o Spark. O HDFS é um componente de armazenamento do Hadoop, otimizado para altas taxas de transferência e que funciona melhor na leitura e escrita de grandes arquivos (terabytes ou mais). Os dados no HDFS podem estar ou não estruturados.
Dentre as características do HDFS estão a escalabilidade e disponibilidade graças a replicação de dados e tolerância a falhas. O HDFS replica os arquivos um número configurado de vezes e é tolerante a falhas tanto em hardware quanto em software. O HDFS segue a arquitetura master-slave e eus componentes principais podem ser identificados na imagem ao lado, sendo eles:
• Namenode: Responsável por armazenar os metadados (informações sobre quais datanodes são responsáveis por quais blocos de dados de cada arquivo);
• Datanode: Componentes nos quais são armazenados os dados.
• SecondaryNameNode: utilizado para auxiliar o NameNode a manter seu serviço. Sua função é realizar pontos de checagem (checkpointing) do NameNode em intervalos pré-definidos, de modo a garantir a recuperação de metadados e atenuar o seu tempo de reinicialização.
• Além disso, podemos ter o Namenode Standby cujo objetivo é ter alta disponibilidade (HA) dos metadados do cluster. O recurso de Alta Disponibilidade do NameNode Standby permite que você execute NameNodes redundantes no mesmo cluster. Isso elimina o NameNode como um possível ponto único de falha. NameNode HA evita isso facilitando um failover rápido para um ou mais NameNodes de backup durante uma falha de máquina ou um failover iniciado pelo administrador durante a manutenção planejada.
O YARN trata-se de uma plataforma de gerenciamento de recursos responsável pelo gerenciamento dos recursos computacionais em cluster, assim como pelo agendamento dos recursos. E o MapReduce e Spark tratam-se de modelos de programação para processamento em larga escala.
Em cima da estrutura principal (HDFS + YARN + MAP REDUCE) do Hadoop é possível trabalhar com vários outros componentes de softwares onde temos como destaque as ferramentas de Ciência e Análise de Dados que podem ser aplicadas no ambiente Hadoop.