viernes, 7 de agosto de 2015

3-Arquitectura de HDFS

En HDFS se asume que el hardware no garantiza la fiabilidad y puede fallar. Es por esto que HDFS replica los datos en diferentes máquinas (Y de diferentes racks) de un clúster, como veremos detalladamente más adelante.


HDFS usa una arquitectura Master-Slave, compuesta por:
  • NameNode
  • DataNodes
  • SecondaryNameNode*
  • BackupNode*
  • StandByNode
*Prescindibles


-NameNode (Servidor maestro): Solo hay uno en el cluster. Es el encargado de regular el acceso a ficheros por parte de los clientes. Para que el acceso a datos sea lo más rápido posible, mantiene en memoria principal los metadatos del sistema de ficheros, controlando los bloques de ficheros a los que tienen acceso cada DataNode. Suele ser una máquina mucho más potente que las demás del clúster y que sobre todo tiene mucha memoria RAM.


-Gestiona:  
  • Persistencia.
  • Replicación.
  • Recuperación de fallos.
  • Estructura del HDFS.
  • Accesos a los recursos del HDFS.

Hadop Distributed File System


El NameNode opera en base a dos ficheros en los que almacena los metadatos sobre el HDFS:


-FSImage:
  1. Imagen de todo lo que contiene el HDFS (nombres, no datos).
  2. Asignaciones de bloques a archivos.
  3. Propiedades del sistema de archivos.
  4. Almacenado en un archivo del sistema operativo local.
  5. fstime: Momento en el que se crea el FSImage.
  6. Cargado en MEMORIA.


-EditLog:

  1. Log de transacciones.
  2. Almacena todos los cambios en ficheros realizados desde fstime.
  3. Metadatos del sistema.
  4. Almacenado en DISCO.



-CheckPointNode (Sustituto de los “antiguos” Secondary NameNode o BackUpNode): Se encarga de fusionar editLog y FSImage para inicializarlo, operación muy costosa ya que en grandes sistemas el EditLog puede crecer enormemente. El CPN realiza por cada x tiempo o por cada n número de operaciones una copia del EditLog, actualizando el check point que será usado para restaurar el sistema en caso de caída del NameNode.

El Check Point Node suele tener una capacidad equitativa de memoria respecto al NameNode, ya que se encarga de almacenar los datos necesarios para la restauración de este si cae.
No es un sustituto del NameNode por si este falla, de eso se ocupa el StandByNode.

HDFS

-StandByNode: Solo hay un NameNode por cluster, y es precisamente este el SPOF del sistema, o más bien, lo era hasta Hadoop 2.0, donde se introduce la figura del StandByNode, que no es otra cosa que un NameNode de respaldo por si cae el principal.

HDFS

-DataNodes (Servidores esclavos): Responsables de leer y escribir las peticiones de los clientes. Los ficheros están formados por bloques que se encuentran replicados por varios nodos.
Un datanode no puede comunicarse de forma directa con el NameNode, sino que lo hace a través de los valores devueltos por las funciones que invoca el NameNode. La comunicación entre procesos se hace a través de RPC, y mediante la comunicación entre nodos por el protocolo TCP/IP.
-Gestiona:
  • Creación y borrado de los bloques de datos.
  • Mapeo de bloques de datos.
  • Emisión de heartbeat (Sirve para conocer el estado de procesos en otra máquinas del cluster)
  • Envío de Blockreport.
  • Pipeline de replicación.


Siguiente entrada: Lectura y escritura en HDFS



Reacciones:

0 comentarios:

Publicar un comentario