RSS

Fases en Big Data y librerías Hadoop

28 Ago

hadoop logoEn los anteriores post hemos visto una breve introducción sobre Big Data y una librería como es Hadoop que permite manejar grandes volúmenes de datos. Además hemos hablado sobre las bases de Hadoop, en especial sobre MapReduce y el sistema de ficheros distribuidos HDFS.  Si quieres puedes echarle un vistazo pinchando en cualquiera de los siguientes enlaces:

Recuerdo que se puede leer estas mismas entradas en mi otro blog java4developers.com

El motivo principal de este post es la relación entre las fases que existen en Big Data a la hora de procesar los datos y los frameworks y/o librerías que se han ido desarrollando bajo el ecosistema de Hadoop que se ejecutan durante esas mismas fases. En este post me quiero centrar más en la parte de Big Data y quizá dedicarle más adelante algún post más extenso a algunas de las librerías más utilizadas que han surgido bajo el paraguas Hadoop.

Fases en Big Data

En este apartado no voy a hablar de las fases que deben seguir las empresas como manera de adoptar Big Data dentro de sus organizaciones de lo que habla aquí y aquí, sino de los pasos que hay que seguir a la hora de procesar grandes volúmenes de  información.

En este sentido según donde lo leamos podemos encontrar que cada uno define distinto número de pasos a la hora de solucionar un problema Big Data. Haciendo un pequeño estudio he podido encontrar distintos blogs hablando desde 4 a 7 pasos en función del grado de detalle que le quiera dar cada uno, personalmente me parece que el número de pasos da un poco igual. Para hacer este post me voy a quedar con la división que realiza The Computing Research Association acerca Big Data en el siguiente paper (en inglés) que aconsejo leer:

  1. Adquisición de datos y grabación. Es la primera fase de cualquier solución Big Data o de cualquier otro tipo de solución. Sin datos que consumir no tendríamos problema que tratar. Para ello es necesario definir que datos vamos a necesitar desde nuestra fuente de información, como puede ser los de nuestras aplicaciones, proveniente de una red social o a través de simples ficheros de datos. Una vez definidos estos datos necesitaremos grabarlos en nuestros sistemas para tratarlos en fases posteriores.
  2. Extracción y preprocesamiento de la información. Una vez adquiridos los datos a tratar se necesita una segunda fase durante la cual debemos de estructurar estos datos para que sean posteriormente procesados y analizados. Para ello debemos ‘limpiar’ los datos recogidos durante la fase 1 de manera que se obtenga un subconjunto estructurado de los mismos con la información relevante a tratar.
  3. Representación, agregación e integración de datos. En la fase anterior se ha hablado de estructurar los datos como algo necesario en cualquier solución Big Data, esto es así, pero el siguiente paso es encontrar las relaciones entre los distintos datos que conforman el conjunto de la información que tenemos disponible en nuestro problema. Previamente a realizar el análisis de los datos se necesitará desde almacenar nuestros datos estructurados en bases de datos o sistemas que se utilizarán en la siguiente fase.
  4. Procesamiento de peticiones, modelado de datos y análisis. Como vimos en el primer post de esta serie el término Big Data está muy relacionado con el término Data Mining ó minería de datos en español. Esta área se encarga de una multitud de tareas, pero quizá una breve descripción sería manipular, procesar, modelar, analizar y extraer la información que se necesite dado un problema determinado. La minería de datos se fundamenta en procesos algorítmicos y estadísticos para resolver esta serie de tareas.
  5. Interpretación de los datos. Una vez extraída la información que se haya creído relevante de fases anteriores se necesita interpretar estos datos. La interpretación de estos datos dará el resultado final del problema. Hay que tener en cuenta que los datos extraídos pueden tener distinto tipo de interpretaciones posibles en función del ámbito del problema donde se quiera mover uno. Esta es un área de la que también esta encargada la minería de datos.

Relación entre fases en Big Data y el ecosistema Hadoop

En este punto se va a hablar de manera breve de a que fase dentro de la resolución de un problema Big Data corresponden las librerías creadas entorno al ecosistema Hadoop. He dado mi interpretación sobre que fases caería cada librería, obviamente algunos podrían caer en distintas fases, alguna persona no podría estar de acuerdo con esta relación o  echar a faltar alguna librería. Si es este alguno de los casos o lo es otro podéis usar los comentarios🙂

  1. Adquisición de datos y grabación. En función del tipo y el origen de los datos podemos encontrar varias librerías que podrían encuadrarse en esta fase. Si hablamos de datos no estructurados previamente, como pueden ser ficheros de logs, los framework más utilizados probablemente sean Flume y Chukwa. Sin embargo si estamos tratando con datos provenientes de una base de datos relacional Sqoop es la herramienta más utilizada.Otra de las librerías interesante a mencionar en este primer apartado es StormStorm es un sistema de procesamiento de eventos en streaming que permite manejar datos en tiempo real a diferencia de Hadoop que lo hace en match. Aunque no entra dentro del ecosistema Hadoop como tal creo que era interesante mencionarlo en este post.
  2. Extracción y preprocesamiento de la información. En esta fase quizá coincidirían las librerías de las que se ha hablado en la fase anterior. Hay que tener en cuenta que a parte grabar/almacenar los datos estas librerías suelen tener opciones para hacer un filtrado previo de los mismos dando además de la estructura conveniente para que sirvan de entrada a Hadoop.
  3. Representación, agregación e integración de datos. En esta fase he decidido incluir varios frameworks, librerías o sistemas que no tienen mucho que ver en cuanto a sus funciones pero que me parece que podrían encuadrar más o menos en esta fase:
    • HDFS. Previamente al tratamiento de la información por parte de Hadoop necesitamos que los datos preprocesados sean almacenados en un sistema distribuido de ficheros. Este es el rol que cumple HDFS como componente core dentro de Hadoop.
    • Avro. Se trata de un sistema de serialización de datos que permite codificar los datos que va a manejar Hadoop. Nos va a permite definir los datos que vamos a serializar, además de definir interfaces a la hora de parsear información.
    • Bases de datos. Creo que las bases de datos pueden encajar mejor dentro de la siguiente fase.
  4. Procesamiento de peticiones, modelado de datos y análisis. Dentro de esta fase voy a incluir dos familias distintas de frameworks, las bases de datos y frameworks para ejecutar consultas sobre las bases de datos.
    • Bases de datos. Con el auge del Big Data, han crecido las bases de datos NoSQL en contraposición a las bases de datos relacionales. No es intención de este post explicar las bases de datos NoSQL (puedes leer más sobre ellas aquí), pero si diremos que una de las ventajas que da este tipo de bases de datos frente a las relacionales es que no tienen esquema de datos fijo. Esto nos da una serie de ventajas (aunque también problemas) sobre las bases de datos relacionales  que encajan muy bien con la filosofía Big Data. Por ejemplo no nos vamos a tener que preocupar de comprobar el esquema cada vez que escribamos un registro en la base de datos, y cuando tratamos con millones de registros esto puede ser una ventaja muy considerable. Dentro de estas bases de datos podemos hablar de HBaseCassandraDynamoDB y un largo etcera. Recomiendo echarle un vistazo a las web oficiales de cada proyecto.
    • Frameworks de consultas. Quizá los dos más conocidos (yo no conozco más tampoco😉 ) en este apartado sean Hive y Pig. Aunque sirven para lo mismo más o menos, tiene dos enfoques algo distintos. Hive es un framework que permite crear tablas, insertar datos y realizar consultas con un lenguaje similar a como se podría realizar con queries SQL. La diferencia fundamental con SQL es que utiliza MapReduce para ejecutar todas esas queries. Por otro lado Pig permite manejar datos mediante un lenguaje textual propio de sentencias llamado Pig Latin. Este lenguaje permite paralelizar la ejecución de sentencias para crear, consultar o listar datos de manera sencilla mediante comandos predefinidos.
  5. Interpretación de datos. Dentro de esta fase quizá la herramienta más conocida sea MahoutMahout es una librería de minería de datos que permite realizar clustering, algoritmos de regresión ó implementar modelos estadísticos sobre los datos de salida ya procesados.

En los siguientes posts tengo la intención de hablar un poco más sobre algunos de las librerías que hemos visto en este post. Como ya he dicho si no estás de acuerdo con la división realizada o crees que se puede incluir algún framework más sientete libre de dejar un comentario.

 
2 comentarios

Publicado por en 28 agosto, 2013 en Big Data

 

Etiquetas: , , , ,

2 Respuestas a “Fases en Big Data y librerías Hadoop

  1. mobile application development uk

    8 septiembre, 2014 at 2:25 pm

    Hi this is kinda of off topic but I was wondering if blos use WYSIWYG editors or if you have to manually code witrh HTML.
    I’m starting a blog skon but have no coding skills so I wanted
    to get advice from someone with experience. Any help ould bbe enormously appreciated!

     
    • hop2croft

      4 octubre, 2014 at 7:27 pm

      Hi,

      just using the HTML editors WordPress gives. It has lots of templates and tools without require any coding skills.

       

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: