Relação entre HDFS e outros componentes
Relação entre HDFS e HBase
O HDFS é um subprojeto do Apache Hadoop, que é usado como o sistema de armazenamento de arquivos para o HBase. O HBase está localizado na camada de armazenamento estruturado. O HDFS fornece suporte altamente confiável para armazenamento de camada inferior do HBase. Todos os arquivos de dados do HBase podem ser armazenados no HDFS, exceto alguns arquivos de log gerados pelo HBase.
Relação entre HDFS e MapReduce
- O HDFS possui alta tolerância a falhas e alta taxa de transferência e pode ser implementado em hardware de baixo custo para armazenar dados de aplicações com conjuntos de dados massivos.
- MapReduce é um modelo de programação usado para computação paralela de grandes conjuntos de dados (maiores que 1 TB). Os dados computados pelo MapReduce vêm de várias fontes de dados, como FileSystem locais, HDFS e bancos de dados. A maioria dos dados vem do HDFS. A alta taxa de transferência do HDFS pode ser usada para ler dados massivos. Depois de computados, os dados podem ser armazenados no HDFS.
Relação entre HDFS e Spark
Os dados calculados pelo Spark vêm de várias fontes de dados, como arquivos locais e HDFS. A maioria dos dados vem do HDFS, que pode ler dados em larga escala para computação paralela. Depois de computados, os dados podem ser armazenados no HDFS.
O Spark envolve o Driver e o Executor. O Driver agenda tarefas e o Executor executa tarefas.
Figura 1 mostra como os dados são lidos de um arquivo.
- O Driver se interconecta com o HDFS para obter as informações do Arquivo A.
- O HDFS retorna as informações de bloco detalhadas sobre esse arquivo.
- O Driver define um grau paralelo com base na quantidade de dados do bloco e cria várias tarefas para ler os blocos desse arquivo.
- O Executor executa as tarefas e lê os blocos detalhados como parte do Conjunto de dados distribuído resiliente (RDD).
Figura 2 mostra como os dados são gravados em um arquivo.
- O Driver cria um diretório onde o arquivo deve ser gravado.
- Com base no status de distribuição do RDD, o número de tarefas relacionadas à gravação de dados é calculado e essas tarefas são enviadas ao Executor.
- O Executor executa essas tarefas e grava os dados RDD calculados no diretório criado em 1.
Relação entre HDFS e ZooKeeper
Figura 3 mostra a relação entre o ZooKeeper e o HDFS.
Como cliente de um cluster de ZooKeeper, o ZKFC (ZKFailoverController) monitora o status do NameNode. O ZKFC é implementado apenas no nó em que reside o NameNode e nos NameNodes de HDFS ativos e em espera.
- O ZKFC se conecta ao ZooKeeper e salva informações como nomes de host em ZooKeeper no diretório /hadoop-ha. O NameNode que cria o diretório primeiro é considerado como o nó ativo e o outro é o nó em espera. NameNodes lê as informações NameNode periodicamente através do ZooKeeper.
- Quando o processo do nó ativo termina anormalmente, o NameNode em espera detecta alterações no diretório /hadoop-ha por meio do ZooKeeper e, em seguida, assume o serviço do NameNode ativo.