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

    viernes, 14 de septiembre de 2012

    El Big Data tiene su propio Hype Cycle de Gartner

    Las previsiones, estimaciones y la evolución del mercado  para la tendencia del Big Data han sido incluidos este año como un Hype Cycle de Gartner. Se puede resaltar en el grafico que tecnologías como Columna-Store, Cloud Computing, las bases de datos in-memory serán las tres principales tecnologías de transformación en los próximos cinco años.

    Esta tendencia del Big  Data es representada por 50 tecnologías, y en los últimos años muchas  compañías están viendo los beneficios del análisis de grandes volúmenes de información y han comenzado a usar y a participar de la evolución de productos enfocados al Big Data,  como es el caso del proyecto de la fundación apache  Hadoop, en el cual hay   empresas como Yahoo, eBay Inc., Facebook Inc., y Twitter Inc, que participan directamente de su desarrollo, además, la tendencia del Big Data ha creado varios emprendimientos o StartUp enfocados a prestar servicios  o crear nuevos productos como es el caso de Cloudera HadaptNimblestorage , Vertica, Platfora , YeswareHortonworks , Voltdb, Pure storage ,  entre muchos otros, esperamos que en el mundo hispano se empiecen a crear este nuevo tipo de emprendimientos.

    Sin lugar a duda el Big Data esta revolucionando muchas áreas en la industria de la computación, pero  la tendencia principal del Big Data en mi concepto,  es desarrollar tecnologias para la  sociedad de la información, con las cuales se busca generar el Santo Grial que es information valuation o “la información de valor” , que no es otra cosa que  la administración del conocimiento en toda su expresión.

    “La información de valor” es la que nos permitira  el  intercambio de conocimientos futuro con el fin de aumentar la eficiencia, la productividad, optimizar los procesos de negocio, evitar errores en el futuro de nuestra sociedad, entre muchos otros beneficios para nuestra aldea global.

    Otros Posts:


    Por José A. Cuartas M. con No comentarios

    lunes, 10 de septiembre de 2012

    El NewSQL esta reinventado el OLTP para adaptarse al BIG DATA


    Las bases de datos OLTP son tecnologías que fueron revolucionarios en las décadas pasadas, estas bases de datos eran optimizadas para disco duros electromecánicos , pero en estos momentos donde la tendencia son sistemas que maneja grandes cantidades de información con tiempos respuestas "cero" y que el volumen y procesamiento de información  está por encima de las capacidades de una maquina , se hace necesario soluciones de administración de información escalables horizontalmente y de alta velocidad que  permitan el beneficio de un sistema relacional pero en una arquitectura distribuida, esto es con el fin de permitir el continuo crecimiento de las necesidades en datos de la sociedad de la información como el BIG DATA, y esto es lo que pretende el NewSQL.

    El NewSQL son proyectos que   intentan reinventar las bases de datos relacionales, buscando resolver  el problema de escalabilidad además de implementar  nuevas características innovadoras, pero manteniendo las ventajas del modelo tradicional. Los proyectos de NewSQL están diseñados para concurrencia masiva, ya que estos aprovechan las modernas arquitecturas de CPU con múltiples núcleos. Estos sistemas tambien optimizan el uso de memoria para un mayor rendimiento y paralelismo, el NewSQL busca que los datos se mantengan  en la memoria principal (en lugar de en el disco) para una mayor velocidad de acceso, lo que elimina la gestión de memoria intermedia, además, el almacenamiento orientado a disco y las estructuras de índice son innecesarias cuando la base de datos es capaz de residir estrictamente en la memoria . En este tipo de proyectos los datos se replican automáticamente entre varios equipos, generando una alta disponibilidad, lo que elimina el registro que se maneja en los motores relacionales.

    El NewSQL  están renovando los sistemas de almacenamiento pero sin dejar a un lado el lenguaje SQL, la  integridad referencial y el manejo de las transacciones  con características ACID, donde ACID  le permite a los motores  relacionales mantener la  atomicidad, coherencia, aislamiento y durabilidad de los datos en una transacción.

    Estos son algunos de los proyectos de NewSQL:

    En definitiva la persistencia poliglota llego para quedarse y el NewSQL ya hace parte de esto.

    Otros Posts:

    Por José A. Cuartas M. con 1 comentario

    miércoles, 5 de septiembre de 2012

    Las BBU son sin duda algo necesario para el Big Data

    Cuando se trata de consultar o procesar datos en los sistemas de información ya los minutos son eternidades, además,  la información digital  es de carácter estratégico en cualquier sector o ámbito de la vida, por consiguiente  se hace necesario utilizar dispositivos que permitan obtener información de manera determinística, confiable y  en tiempo real, es por esto que tendencias como  Big Data la cual se  apoya de tecnologías que son el estado de arte en la tecnologia, tienen como propósito manejar grandes volúmenes de información con diferentes tipos de formatos,  esto es con el fin de permitir análisis en tiempo real para realizar la toma de  decisión de manera instantáneas.

    Entre las varias tecnologías que hacen parte del Big Data están las baterías para respaldar  la información contenida en  las memorias volátiles como la cache de disco o la memoria  RAM, esta tecnología es conocida como Battery Backup Unit (BBU), y es aplicada en sistemas donde  los datos están por encima de las capacidades de almacenamiento de  la  memoria primaria(RAM), como regla,  en el Big Data  el conjunto de datos están por encima de la capacidad de almacenamiento de cada maquina.

    Este tipo de baterías resuelve el inconveniente cuando la potencia eléctrica  se pierde en la maquina y los datos no se han trasladado al disco duro o almacenamiento secundario, permitiendo preservar la integridad de los datos que están en la memoria. Estas baterías también aceleran el rendimiento de E/S, ya que E/S no tiene que esperar que el proceso de escritura tenga que ir al disco duro, tan solo con que los datos estén en la memoria cache es suficiente, siendo la cache una memoria de alta velocidad . Este modo de operación se denomina "write-back caching" y puede ser habilitado en el sistema de archivos de un sistema operativo o en los motores de bases de datos.

    En conclusión hasta que no haya una medio de almacenamiento persistente con características en  tiempo como las que maneja la memoria RAM  y en costo como los discos duros, el efecto de baja velocidad es simplemente inevitable. La única estrategia que puede emplear es proporcionar sistemas de alimentación ininterrumpida como la BBU, y elegir sabiamente hardware y el sistema operativo, por lo que los fallos inesperados del sistema se reducen al mínimo.

    Otros Posts:

    Por José A. Cuartas M. con No comentarios
    • Popular
    • Categorias
    • Archivo