martes, 25 de septiembre de 2012

Hadoop y su sistema de archivo distribuido HDFS, pura infraestructura para BigData

Datos! Vivimos en la era de los datos. No es fácil medir el volumen total de datos almacenados electrónicamente pero su constante  crecimiento   exponencial, ha hecho que los avances tecnológicos en áreas de almacenamiento y distribución de grandes cantidades de información estén en constante desarrollo, aunque en algunos casos, las tecnologías de almacenamiento persistente como los discos duros electromecánicos  no estén alineados con  esta constante, pues los disco duros presentan un rápido aumento en la capacidad de almacenamiento, pero las velocidades de acceso o transferencia de datos de los disco duros  no ha crecido de la misma forma.

Este crecimiento exponencial  de información digital y las limitaciones en transferencias de datos en las tecnologías de almacenamiento, ha permitido  crear soluciones como Hadoop  que nos permiten  realizar de manera eficiente el procesamiento,  la lectura y la escritura de grandes cantidades de datos en paralelo y en múltiplex discos, donde los discos estan ubicados en diferentes maquinas.

Hadoop  tiene un  componente que gestiona los  archivos de gran tamaño,  archivos que crecen por encima  de la capacidad  de almacenamiento de una única máquina física, por lo cual este componerte se encarga de dividir el archivo para distribuir las diferentes divisiones entre varias máquinas, el nombre del componente  es HDFS.

HDFS o Hadoop Distributed File System  es un  sistema de archivos distribuidos que se encarga del almacenamiento a través de una red de máquinas, el cual esta diseñado para almacenar archivos de gran tamaño con una filosofía de escribir solo una vez y permitir múltiples lecturas, esta filosofía  encaja comunmente con una aplicación Map/Reduce  o apliciones  tipo araña web (web crawler).

El HDFS  no requiere de un hardware altamente confiable sino de maquinas comunes del mercado, aunque este tipo de maquinas aumenta la probabilidad de fallo de nodo o maquina, debido a la posibilidad de que una pieza como el disco duro, la memoria o tarjetas de red se averíen, el sistema de archivos tiene la capacidad de  realizar una replicación de datos (copias redundantes de los datos guardados en varias maquinas), con el fin de que en el caso de fallo de un nodo se utilice  una copia disponible de otro nodo o maquina,  evitando así la  pérdida de datos y poder seguir trabajando sin interrupción perceptible para el usuario.

Al igual que en un sistema de archivos de un solo disco, los archivos en HDFS se dividen  en  porciones  del  tamaño de un bloque , que se almacenan como unidades independientes, esta abstracción de bloque es la que nos permite que un archivo puede ser mayor en capacidad que cualquier unidad de disco de una sola maquina, facilitando el poder almacenar un archivo en múltiples discos de la red de computadores al dividirlo en bloques. Además, los bloques encajan bien con la replicación, proporcionando  tolerancia a fallos y alta disponibilidad. En el sistema de archivos HDFS cada bloque se  replica en un pequeño número de máquinas separadas físicamente (normalmente tres). Permitiendo que en casos de que  un bloque no está disponible sea porque  esta  corrupto o se daño una maquina o una de sus partes principales , una copia de este bloque  se puede leer desde otra ubicación de una manera transparente para el cliente.

HDFS implementa la replicación utilizando  el concepto de bloque de disco como se menciono anteriormente, el cual es la  cantidad mínima de datos que se pueden leer o escribir en un disco. En este caso el sistema de archivos HDFS  tiene un bloque por defecto  de 64 MB como unidad  de tamaño básico para la partición de un archivo , siendo  este muy superior al de los discos.  La razón de su gran tamaño  es minimizar el costo de búsquedas, ya que este tamaño presenta  tiempos de búsqueda de bloque en disco inferior   al tiempo de  transferencia  de bloque desde el disco a la memoria RAM. Para mejorar  la  velocidad de transferencia de bloque  a memoria RAM se debe realizar una disposición de los siguientes bloques del archivo en forma secuencial y no aleatoria en el disco, permitiendo por la secuencia de bloques un flujo continuo o streaming  de datos hacia la memoria.

HDFS tiene una característica de los sistemas distribuidos contemporáneos que es la separación de los datos de los metadatos, esto es con el fin de simplificar la administración de almacenamiento, ya que en el caso de HDFS  los bloques tiene un tamaño fijo y no almacenan información de los metadatos, lo que facilita el calculo para determinar la capacidad de bloques por unidad de disco, sin tener que preocuparse por el espacio que genera la información  de metadatos como los permisos de creación, modificación  y tiempos de acceso para los archivos, el árbol de directorios,  entre otros,  el cual se almacena en maquinas(nodos) separadas de los datos.

Para realizar esta separación de los datos de los metadatos el sistema HDFS tiene dos tipo de nodos operativos que funcionan con un patrón maestro esclavo, el maestro es el NameNodes  y el esclavo es el DataNodes:

  • El Namenodes  gestiona  y almacena la información sobre cada archivo o metadatos, como la ubicación de los bloques que componen el archivo en los datanodes, el arból de directorios, los permisos, el nombre del archivo entre varias funciones más, se debe tener en cuenta que los metadatos son modificables y ocupan  poca memoria, por consiguiente, se busca que los metadatos siempre estén en la memoria RAM para un rápido acceso y sincronización.
  • El datanodes son los caballos de batalla del sistema de archivos HDFS, estos se encargan de  almacenar y recuperar bloques, además, periódicamente le informan  al namenode las listas de bloques que se están almacenando(sincronización).

En conclusión este sistema de archivo esta en constante desarrollo, con una gran adopción por parte de comunidad BIG DATA, la cual ha echo del HDFS el estándar de facto en las soluciones de grandes volúmenes de información.

Otros Posts:

    Por José A Cuartas M con No comentarios

    0 comentarios:

    Publicar un comentario

    • Popular
    • Categorias
    • Archivo