Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-04-14 GMT+08:00

Relación entre HDFS y otros componentes

Relación entre HDFS y HBase

HDFS es un subproyecto de Apache Hadoop, que se utiliza como sistema de almacenamiento de archivos para HBase. HBase se encuentra en la capa de almacenamiento estructurado. HDFS proporciona soporte altamente confiable para almacenamiento de capa inferior de HBase. Todos los archivos de datos de HBase se pueden almacenar en el HDFS, excepto algunos archivos de registro generados por HBase.

Relación entre HDFS y MapReduce

  • HDFS cuenta con alta tolerancia a fallas y alto rendimiento, y se puede implementar en hardware de bajo costo para almacenar datos de aplicaciones con conjuntos de datos masivos.
  • MapReduce es un modelo de programación utilizado para el cálculo paralelo de grandes conjuntos de datos (mayores de 1 TB). Los datos computados por MapReduce provienen de múltiples orígenes de datos, como FileSystem locales, HDFS y bases de datos. La mayoría de los datos provienen del HDFS. El alto rendimiento de HDFS se puede utilizar para leer datos masivos. Después de ser computados, los datos se pueden almacenar en HDFS.

Relación entre HDFS y Spark

Los datos calculados por Spark provienen de múltiples fuentes de datos, como archivos locales y HDFS. La mayoría de los datos provienen de HDFS que pueden leer datos a gran escala para la computación paralela. Después de ser computados, los datos se pueden almacenar en HDFS.

Spark implica Driver y Executor. El Driver programa las tareas y el Executor ejecuta las tareas.

Figura 1 muestra cómo se leen los datos de un archivo.

Figura 1 Proceso de lectura de archivos
El proceso de lectura de archivos es el siguiente:
  1. Driver se interconecta con HDFS para obtener la información del File A.
  2. El HDFS devuelve la información de block detallada acerca de este archivo.
  3. Driver establece un grado paralelo basado en la cantidad de datos de block y crea varias tasks para leer los blocks de este archivo.
  4. Executor ejecuta las tareas y lee los blocks detallados como parte del conjunto de datos distribuido resistentes (RDD).

Figura 2 muestra cómo se escriben los datos en un archivo.

Figura 2 Proceso de escritura de archivos
El proceso de escritura de archivos es el siguiente:
  1. Driver crea un directorio donde se va a escribir el archivo.
  2. Basándose en el estado de distribución de RDD, se calcula el número de tasks relacionadas con la escritura de datos, y estas tareas se envían al Executor.
  3. Ejecutor ejecuta estas tareas y escribe los datos RDD calculados en el directorio creado por 1.

Relación entre HDFS y ZooKeeper

Figura 3 muestra la relación entre ZooKeeper y HDFS.

Figura 3 Relación entre ZooKeeper y HDFS

Como cliente de un clúster de ZooKeeper, ZKFailoverController (ZKFC) supervisa el estado de NameNode. ZKFC solo se implementa en el nodo donde reside NameNode y en el NameNodes HDFS activo y en espera.

  1. El ZKFC se conecta a ZooKeeper y guarda información como nombres de host en ZooKeeper bajo el directorio de znode /hadoop-ha. NameNode que crea el directorio primero se considera como el nodo activo, y el otro es el nodo en espera. NameNodes lee la información de NameNode periódicamente a través de ZooKeeper.
  2. Cuando el proceso del nodo activo finaliza de forma anormal, NameNode en espera detecta cambios en el directorio /hadoop-ha a través de ZooKeeper y, a continuación, se hace cargo del servicio del NameNode activo.