sábado, 18 de julio de 2015

2-Componentes de Hadoop: Núcleo

2.1-HDFS (Hadoop Distributed File System)



HDFS es un sistema de almacenamiento distribuido usado por Hadoop, basado en el GFS (Google file System), desarrollado en Java, escalable y portatil. Permite conectar máquinas de bajo coste formando clústers en los que se almacena la información.
El espacio de almacenamiento en HDFS es la suma de la capacidad de almacenamiento total de los discos de cada máquina que forma el clúster, haciendo transparente el sistema distribuido y considerándolo como un único disco duro local.


Es un sistema de archivos basado en bloques, los cuales son la cantidad minima de información con la que trabaja y es capaz de manejar bloques de gran tamaño: el bloque típico en HDFS está entre 64 y 128 MB y para que nos hagamos una idea, el sistema NTFS de windows trabaja con bloques de 512 bytes, 131.702 veces más pequeños que uno de 64 MB. Los bloques NO tienen porqué residir en el mismo nodo, aunque sean del mismo fichero. Los bloques son tan grandes para aumentar la eficiencia de las búsquedas, ya que es más costoso leer varios bloques pequeños reduciendo el tráfico disco-memoria principal que llevar uno grande de disco a memoria.
Un archivo puede estar dividido en varios bloques, para aumentar el rendimiento, estos deben estar almacenado secuencialmente en disco (Uno a continuación del otro)




HDFS produce mucho tráfico en la red por la replicación que hace de los bloques para mantener una fuerte resistencia a fallos.
Ha sido diseñado para mantener la coherencia de los datos, de hecho los commit no se consideran completos hasta que los datos no se escriben en al menos dos volúmenes.
En este sistema de archivos se permiten las operaciones típicas de crear, borrar, renombrar, mover etc los ficheros, solo que el borrado es un poco “especial”: cada fichero borrado es movido a una especie de papelera de la que es posible recuperarlo durante un tiempo.

2.1.1-Resumen de las características generales de HDFS



  • Tolerancia a fallos y recuperación automática en caso de haberlos.
  • Coherencia de datos.
  • Replicación de datos.
  • Procesamiento de los datos donde están almacenados sin necesidad de moverlos**.
  • Facilidad de procesamiento a través de sistemas heterogéneos de SO y hardware.
  • Escalabilidad de procesamiento y almacenamiento.
  • Archivos accedidos en escritura por un único cliente cada vez.
  • Bloques de datos de gran tamaño (64 MB por defecto)
  • Bajo rendimiento con ficheros pequeños
  • Arquitectura cliente servidor.
  • Más apropiado para aplicaciones en las que se lea mucho y se escriba poco.

**Con HDFS se hace posible ejecutar los cálculos en la máquina que contiene los datos (mover el algoritmo) en lugar de mover los datos donde son solicitados.

En la próxima entrada, hablaré sobre la arquitectura de HDFS.


Reacciones:

0 comentarios:

Publicar un comentario