Bit - loader

Welcome to real world: Big Data con Hadoop Clústers en Azure


Netmind - Welcome to real world: Big Data con Hadoop Clústers en Azure    Artículo |
Xavier Saladié | 25/03/15

Todos somos críticos. Hace unos (pocos) años había que ser muy influyente para poder opinar y que nuestra opinión fuese tenida en cuenta. Actualmente, cualquiera tiene Twitter, Facebook,  Instagram… y la información, sea buena o mala, corre de pantalla en pantalla a muchos Megabytes por segundo. Que levante la mano quien no haya mirado las críticas de un restaurante o un hotel antes de ir por primera vez. Si, por ejemplo, queremos conocer la percepción de nuestros clientes sobre nuestro negocio debemos estar muy al tanto de TODAS las redes sociales. Pero estas redes son sólo una de las posibles fuentes.

Big Data para poder medir

Con cada vez más dispositivos conectados a Internet y con el auge de las redes sociales entre otros motivos, ha surgido la necesidad de ser capaz de capturar grandes volúmenes de información desde fuentes muy diversas, en formatos diferentes, con muy altas frecuencias de refresco o incluso en tiempo real, para llevar a cabo su análisis en un periodo muy corto de tiempo y poder obtener conclusiones. Éstas son las 3 V’s de Big Data: Variedad, Velocidad y Volumen aunque probablemente podríamos encontrar algunas más.big-data-hadoop-1El objetivo es ser capaces de medir cómo nos perciben nuestros clientes casi constantemente, dado que una mala crítica, en boca de ciertas fuentes, puede crecer como una bola de nieve en cuestión de minutos y, transcurrido este tiempo, convertirse en muy difícil o incluso imposible de detener, con el impacto que eso supondría en nuestro negocio.

Teniendo en cuenta que cada fuente de información tiene sus propios formatos de datos y que necesitamos de conclusiones casi inmediatas, no podemos permitirnos el uso de herramientas tradicionales (SSIS + SSAS + SSRS + …) que requieren de un importante lapso de tiempo antes de que seamos capaces de obtenerlas. Y es que para cuando dispongamos de ellas, el contexto habrá cambiado por completo.

Para que los análisis suficientemente rápidos y versátiles requerimos de hardware y software especializado. Aquí es donde entran en juego, soluciones específicamente diseñadas para poder dar respuesta a dichos escenarios.

Big Data con Hadoop

Microsoft Azure dispone de una solución Software as a Service (SaaS) con la que podemos crear nuestros propios clústers Hadoop. Así podremos llevar a cabo estos análisis en hardware a medida corriendo sobre máquinas Windows o Linux (éste último aún disponible como Preview) usando técnicas de MapReduce sobre los datos de nuestro interés.

Desde la opción de creación rápida podemos crear un clúster con 1,2,4 u 8 nodos de datos (Mappers). A estos Mappers, Azure les agregará dos nodos principales (Reducer).

La operación, una vez confirmada, nos llevará unos 25 minutos. Si queremos tener mayor control sobre algunos detalles: cuántos nodos creamos, en qué ubicación geográfica o en qué tipo de máquinas virtuales, deberemos hacerlo mediante la creación personalizada. Una vez creado el clúster y habilitada la opción de conexión mediante Escritorio Remoto, podremos conectarnos a uno de nuestros Reducers del clúster (de hecho solo veremos uno) vía RDP y acceder a la funcionalidad del HDFS (Sistema de ficheros distribuido de Hadoop) para alojar allí los datos y tratarlos con la funcionalidad de MapReduce.

big-data-hadoop-2La técnica de MapReduce

La técnica de MapReduce consiste en escribir un programa (el Mapper) que se encarga de dividir la tarea de tratamiento de datos en N subtareas sobre volúmenes de datos mucho menores (1/N del total), para poder trabajar en paralelo desde los diferentes nodos del clúster,  de manera que el tiempo total se reduzca significativamente. Cuantos más nodos tengamos trabajando en paralelo sobre subconjuntos diferentes de datos, menor será el tiempo “lineal” dedicado a este análisis. Pero dado que los subconjuntos analizados son diferentes necesitaremos consolidar la información generada por cada uno de los Mappers de algún modo. Para ello deberemos escribir otro programa (el Reducer) que se encargue de analizar las conclusiones de cada Mapper y generar las conclusiones finales. Dado que cada Mapper sólo tiene visibilidad sobre un reducido conjunto de datos, el Reducer debe proporcionar la visión general sobre todos ellos.

El fundamento en el que se basan las técnicas de MapReduce es similar al de la Programación Paralela. Y es que, en principio, cualquier operación compleja sobre un gran volumen de datos puede dividirse en N subtareas similares con una pequeña proporción de los datos, siempre y cuando haya un último proceso de “agregado” de las conclusiones de dichas subtareas.

Las rutinas de tipo MapReduce se pueden programar en multitud de lenguajes y para ellos disponemos de diferentes SDK’s.

Datos preparados para ser explotados

Los datos resultantes del análisis pueden prepararse para ser explotados desde aplicaciones a medida, con complementos para Excel como PowerQuery o PowerPivot o utilizando herramientas orientadas a desarrolladores como SSRS o SSAS, en cualquier caso mediante un driver ODBC que se conecta a nuestro clúster y nos permite enlazarnos a las conclusiones o a los datos tratados.

Para clarificar un poco el escenario, las herramientas y sus utilidades, podemos encontrar ejemplos que vienen preinstalados en el clúster (calcular el número PI con una cierta precisión o contar ocurrencias de palabras en un texto). Aunque si queremos probar algunos ejemplos reales bastante más útiles como éste mapa de calor con palabras clave alimentado desde Twitter necesitaremos escribir un poco de código.

big-data-hadoop-3

De todo ello podemos encontrar abundante información (técnica y no técnica) en el mismo portal de Azure.

Si quieres probarlo y no dispones de una suscripción a Azure, sólo necesitas una cuenta de correo y darte de alta desde http://azure.microsoft.com/en-us/pricing/free-trial/. Dispondrás de 30 días y un límite de crédito de 150€. Suficientes para poder ejecutar un clúster de 6 nodos (4 de datos y 2 principales) todos ellos en máquinas A3 (4 cores y 7 GB de RAM) durante unas 100 horas consecutivas. Cabe destacar que a diferencia de las Máquinas Virtuales Azure, los clústers de HDInsight no contemplan la opción de detener los equipos, aunque podremos mantener su almacenamiento, y por tanto nuestros datos y conclusiones, una vez eliminados.

Ahora que ya sabes cómo hacerlo, ¿a qué esperas?


Xavier Saladié

Xavier Saladié es Lead Expert en SQL Server y Desarrollo en .NET en Netmind. Es instructor acreditado por Microsoft desde el año 2005 y de ITIL desde el año 2013. Dispone de las certificaciones ITIL Expert, MCSE Cloud Platform and Infrastructure, MCSE Data Platform, MCSE Business Intelligence, MCPD Windows Developer, MCPD Web Developer, MCITP Sharepoint Administrator, MS Microsoft Project 2016 y MCSA SQL Server. Dispone de más de 20 años de experiencia en formación y ha dirigido múltiples proyectos de consultoría y optimización para arquitecturas de soluciones para varias organizaciones.

Nuestro sitio utiliza cookies para análisis. Si no estás seguro de ello, echa un vistazo a nuestra política de privacidad.