miércoles, 24 de octubre de 2012

El BIGDATA como tecnología disruptiva en una sociedad en transición a una civilización tipo 1

El físico y futurólogo  Michio Kaku  basado en  la escala de Kardashov , ha afirmado que la humanidad esta en un proceso de transición desde una civilización tipo 0 hacia una civilización tipo 1 y que Internet es el germen del sistema de comunicaciones  de una civilización tipo 1,  este tipo de afirmaciones que en algunos casos parece descabellado para muchos, en mí concepto tiene mucho sentido, ya que en los últimos año he  visto como  internet ha permitido  la globalización y la digitalización de la información.
 Este desarrollo que en su comienzo se contemplo como  un simple avance tecnológico en sistemas militares, hoy se ha convertido en una mutación estructural y en todo un fenómeno disruptivo, introduciendo innovadores servicios que han transformado la sociedad en los últimos 20 años, pero a su vez a creado una  gigante cantidad de datos digitales diseminados en la red de redes (internet) , que como sociedad hemos buscando  como explotarlos en beneficio de la humanidad.

En un comienzo para explotar esta información se utilizaron  herramientas tradicionales las cuales no son aptas tanto por el volumen de datos digitales que se generan como por su baja estructura,  es por esto que en los últimos años la comunidad científica  han estado continuamente desarrollando herramientas para el manejo de altos volumes de informacion no estructurada que nos ofrezcan la manera de obtener conocimiento a partir de sistemas predictivos que tomen decisiones por nosotros de forma automática. Es en estas herramientas para el manejo de grandes volúmenes de información que se han desarrollado un conjunto de tecnologías y saberes que conforman  el BigData , que como esencia (BigData)  es una solución de  innovación disruptiva  que pretende  evolucionar el germen de las comunicaciones de una civilización planetaria(internet), ya que nos permitirá  de manera estratégica la predicción a través de la información, siendo la predicción una palabra fascinante que será  un componernte de supervivencia en nuestra sociedad futura.

Espero que el BigData nos permita sacarle el valor a  toda esa gran cantidad de información ubicua, ya que como tecnología es la que promete proporcionar información precisa y objetiva sobre el comportamiento real de las personas y los sistemas. Lo que permitirá  anticipar los  efectos y, consecuentemente influir sobre los mismos.

Confió  que esta tecnología nos permita evolucionar ha una sociedad planetaria y no al exterminio de nosotros mismo.

Estos son algunos de los videos que complementan esta  apreciación:
Micho Kaku y los tipos de civilizaciones.
Conferencia sobre Innovación Disruptiva.

Otros Posts:

Por José A. Cuartas M. con No comentarios

lunes, 8 de octubre de 2012

Una alternativa para respaldar la información, las redes peer to peer

Las soluciones tradicionales de respaldo de información como Direct Attached Storage (DAS), Network Attached Storage (NAS) o  Storage Area Network (SAN) son los principales conceptos de diseño que se utilizan para respaldar la información. Estas soluciones se basan generalmente en servidores robustos y dedicados donde se instalan un software especializado para realizar los respaldos,   generalmente se  complementan con soluciones de cintas magnéticas para “mejorar”  la durabilidad de los datos. Estas soluciones hacen del  respaldo de información un procedimiento muy costoso,  que necesita de un personal especializado para su mantenimiento, es por esto que se han creado nuevas alternativas que utilizan el paradigma P2P y que están inspiradas principalmente por crecimiento en el volumen de almacenamiento y la cantidad de recursos disponibles en equipos de computo personales.

Los sistemas P2P de almacenamiento (P2PSS) han surgido como una solución escalable horizontalmente, auto-reparable y económica, que garantizan la fiabilidad y disponibilidad de los datos, aunque aumenta exponencialmente el tráfico o consumo de ancho de banda, se disminuye en un gran porcentaje los costos primarios en la adquisición de los discos duros, el consumo de energía generados por la  construcción del datacenter, el enfriamiento y funcionamiento de los equipos, más la mano de obra capacitada.

Estos sistemas se basan en la fragmentación de información y el almacenamiento distribuido, es decir los archivos de datos se dividen en bloques de tamaño fijo o fragmentos que se almacena en los diferentes computadores personales de la red peer to peer(P2P) ,  donde el número de nodos o computadores  conectados en cualquier momento es mayor al número de fragmentos asociados con un archivo de datos.

La infraestructura P2PSS  se diseña con el concepto  de que un nodo no es confiable ya que la conectividad  es intermitente  debido a  varios factores como la falla del equipo, la perdida del servicio de conectividad, la denegación de servicios(DoS), cortes de energía,  entre otros, por consiguiente los datos se conciben como nómadas y están separados generalmente de la ubicación física donde se generan, es por esto que estos sistemas tiene la información distribuida en diferentes lugares  y utilizan estrategias como  la redundancia en los fragmentos de datos a través de técnicas como la replicación o los  códigos de correcion de errores (ECC) (erasure codes ) para distribuir los fragmentos redundantes en diferentes nodos de la red, este tipo de tácticas es la que permite mejorar el acceso a los archivos ya que se puede realizar descargas en forma paralela de los fragmentos de datos de un archivo, además de aumentar  la durabilidad, persitencia y disponibilidad  de la información.

Los datos en estas infraestructuras están protegidos mediante técnicas criptográficas en combinación con procedimientos de almacenamiento de cache con una sincronización transparente entre los equipos y la compresión de datos, esto es con el fin de mejorar la seguridad e integridad, el rendimiento y la disponibilidad de la información desde cualquier lugar y a cualquier hora, generando un tipo de computación ubicua para el respaldo de la información.

Estos son algunas de las iniciativas P2P de almacenamiento y respaldo de información:
Otros Posts:


Por José A. Cuartas M. con No comentarios

lunes, 1 de octubre de 2012

Una forma de tolerancia a fallos, como se replica HDFS en Hadoop

En un contexto de alto volumen de procesamiento de datos, el factor limitante es la velocidad que se consume al transferir los  datos entre los nodos(ancho de banda), por consiguiente se hace necesario poder realizar medidas de este consumo en los sistema de almacenamiento distribuido como los sistemas de archivos distribuidos para definir las politicas de replicación.
Una de las formas  mas comunes es medir el ancho de banda  entre dos nodos, como una medida de la distancia para la replicación, la cual es muy difícil de hacer en la práctica, otra manera es la que utiliza  el sistemas de archivo de Hadoop, el HDFS,  que en lugar de medir el ancho de banda entre los nodos,  adopta un enfoque sencillo en el que el red se representa como un árbol donde los niveles en el árbol se describen como el centro de datos, el rack , y el nodo o equipo, y define las distancias para la ubicación de bloques  utilizando la jerarquía del árbol. Con este enfoque tipo árbol el HDFS busca  un equilibrio en la colocación del bloque y sus replicas para obtener el menor consumo de ancho de banda, el menor retardo en las trasferencias de bloques , la maxima velocidad de lectura( Utilizando el paralelismo consultando las diferentes replicas), y la mayor tolerancia a fallos por bloque.

Por consiguiente Hadoop utiliza la siguiente estrategia por defecto con base en el enfoque anterior  para la distribución de replicas, la cual proporciona al HDFS un buen equilibrio entre la disponibilidad   y el ancho de banda por transferencia, y es la siguiente; la primera réplica de un bloque se ubica en el mismo nodo donde se almacena , la segunda copia se sitúa  en un equipo o nodo que este fuera del rack de la primera replica  y la tercera réplica se dispone en el mismo rack donde se ubica la segunda replica pero en un equipo o nodo diferente. Esta estrategia es una experiencia que se deriva de los siguiente extremos que ocurren en una configuración de replicas distribuidas:
  • Cuando  toda las replicas se ubican en el mismo rack,  se disminuye el "ancho de banda"  pero aumenta la probabilidad de fallo,  además,  las operaciones de lecturas o balanceo de carga son mas lentas ante clientes concurrentes.
  •  Cuando se desea una altísima redundancia se ubica cada replica de bloque en diferentes  centros de datos. El tener este tipo de configuración aumenta el consumo de ancho de banda de manera exponencial.
El sistema HDFS  se ejecuta  en un clúster de equipos que esta disperso por varios racks y en muchos casos en diferentes  centros de datos, donde la comunicación entre nodos debe pasar en muchos casos por varios equipos activos como swiches de red, esto hace de la replicación un tema de constante afinamiento, al cual se le deben definir políticas que permitan una buena distribución y optimización  de las replicas de bloques que contiene los datos. Estas políticas a su vez se deben adaptar a los cambios de infraestructura que tiene el clúster, es por esto que HDFS tiene un sistema de comunicación donde  cada DataNode envía pulsaciones (heartbeats) periódicamente al NameNode, estas pulsaciones son mensaje con información el nombre del nodo , la cantidad de bloques que contiene. Cuando  estos mensajes se dejan de trasmitir   permite detectar la perdida de conectividad de un DataNode, con el fin de que el NameNode pueda empezar  una re-replicación de bloques.

El NameNode en  el sistema HDFS maneja un factor de replicación que el sistema  constantemente le  realiza un  seguimiento, en caso de que el factor este en su nivel mínimo para un DataNode o no se reciben mensajes de un DataNode, el HDFS  inicia una replicación adicional de los bloques que tenia este DataNode en otro  nodo DataNode, esto es con el fin de estabilizar el factor de replicación, y así mantener la disponibilidad de datos.

Aunque Hadoop es un sistema que aplica la gran mayoría de los avances en sistemas distribuidos y computación en paralelo para el manejo de grandes volúmenes de información, su desarrollo aún no esta terminado y la administración de sus metadatos son su punto de fallo más visible. 

Otros Posts:

Por José A. Cuartas M. con No comentarios

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

    viernes, 31 de agosto de 2012

    In-Memory ya no es una fantasía, es algo real

    Tradicionalmente, los sistemas de almacenamiento como las bases de datos utilizan los discos duros electromecánicos como almacenamiento persistente , Este tipo de dispositivo  en el  proceso de lectura o escritura de datos hacen uso de los componentes mecánicos, los cuales están sujetos a varias limitaciones en su velocidad y rendimiento en el proceso de lectura y escritura de datos, generando un retardo muy alto cuando  se consultan grandes cantidades de información.

    Debido a los retardos causados por el disco duro electromecánicos para el manejo de grandes cantidades de datos, se ha visto un aumento en el uso de la tecnología de almacenamiento in-memory que utilizan las memorias flash y otras tecnologías para mejora  el rendimiento de las aplicaciones. Este tipo de tecnología es conocida como la computación in-memory, la cual   está teniendo un impacto en los entornos de BIG DATA, facilitando el acceso a las aplicaciones de análisis de grandes volúmenes de datos en “tiempo real”.

    Aunque los sistemas de almacenamiento in-memory no son nuevos, estos se han vuelto el centro de atención en la ultimas década, pero históricamente estos sistemas  surgieron  específicamente para satisfacer las necesidades de rendimiento y disponibilidad de recursos en los sistemas embebidos, buscando que la información este   completamente almacenado  en la memoria principal para  “nunca” tener  que ir a un almacenamiento secundario como los disco electromecánicos donde se  persiste la información. En su defecto la tecnología  in-memory utiliza frecuentemente las memorias flash para el almacenamiento persistente.

    Los  sistemas  in-memory en comparación con los sistemas tradicionales de almacenamiento tiene varias ventajas, como ejemplo tenemos el caso de que un sistema tradicional utilice un sistemas de cache para mejorar las operaciones de lectura, este sistema de cache  genera una fuente significativa de  complejidad y de consumo de recursos como la CPU y RAM, ya que la aplicación de cache debe llevar a cabo tareas de sincronización entre la cache y el disco duro, tener un sistema de búsqueda de datos y actualizaciones de cache para referencias futuras, además de los encabezados o metadatos  que se adiciona a los datos para la transferencia de los mismos, lo cual no ocurre en sistemas in-memory los cuales tiene una arquitectura que esta adaptada para disminuir la complejidad y el consumo de recursos.

    Debemos tener en cuenta que los sistemas de  almacenamiento in-memory, tienen la capacidad  de cargar y almacenar datos  y la metadata en la memoria RAM(memoria de acceso aleatorio), incrementando en gran medida el tiempo de respuesta y permitiendo reducir la cantidad de procesamiento en metadata, lo cual permite hacer   mas directo y eficiente  la interacción entre los datos a procesar en la CPU.

    Esta es una parte de la evolución de los sistemas relacionales a las nuevos retos a los que se enfrenta los sistemas de almacenamiento.


    Otros Posts:

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