Imagen de avatar anacareaga
Ana Lilia Careaga

“Hadoop: el elefante de peluche del Big Data”

Ana Lilia Careaga Mercadillo,   octubre   de 2015

Abstract

When you talk about Big Data, you cannot go very further without running into the yellow elephant´s room: Hadoop. This free software and open source platform managed by Apache Foundation has been very helpful not just in storing but in managing vast amount of information. But what exactly makes it so special? Basically because you can store enormous data   sets   across a   distributed network of clusters and servers where it is possible to run analysis applications (Analytics). But also,   it is so special for its unusual name itself that came from the name that Doug Cutting´s kid gave to his stuffed yellow elephant. Easy to spell, short and meaningless but always reminding us the great meaning of parenthood.


Introducción


Hadoop es el nombre de un elefante amarillo de peluche, juguete favorito del hijo de 2 años de Douglas Cutting,  creador de la maravillosa tecnología de Big Data conocida bajo ese nombre. Ahora su hijo tiene 13 años y pide a su padre lealtad con el nombre de su elefante amarillo. No hay muchos juguetes de peluche suave que hayan sido tan protagónicos como Hadoop al punto de ser una marca reconocida de software; pero de alguna manera, al adoptar Cutting este elefante que perteneció a su hijo nos invita a reflexionar, más allá de la herramienta del Big Data, el significado de ser padres.

Así como es imposible saber lo que es Big Data hasta hacer uso de sus herramientas como Hadoop, no se puede saber lo que es ser padre hasta vivirlo. Sabrás lo que es ser padre cuando sientas en lo más hondo de tu ser el latido de ese pedacito de tu corazón sobre tu pecho henchido del más grande amor y legítimo orgullo y cuando comprendas que el fruto de tu sueño es ahora una realidad viva y palpitante con ternura en piel y mirada inocente ante tu regocijo. Y así, conforme tus hijos van creciendo irás alimentándolos con el vino dulce del infinito amor que te dará momentos de inmensa felicidad pero a veces también de dolor porque todo lo que les va sucediendo en su vida se verá repercutido en ti, a pesar de que tengan su propia alma y corazón. Sin embargo, saber  y experimentar lo que es ser padre no nos convierte automáticamente en saber ser padres.  Los hijos no llegan con un manual para educarlos; la educación es un proceso imperfecto que se va aprendiendo sobre la marcha. Educar es enseñar a los hijos a ser libres con responsabilidad y permitirles que tengan sus propios errores y su propia visión del mundo; sus propios sueños y sus propias pasiones. Ser padres no es cosa fácil. Alguna vez leí una de las anécdotas más famosas sobre la vida de Sigmund Freud, cuando  un día recibió la visita de una madre preocupada que le hizo la pregunta: “¿Cómo debo educar a mi hijo?” Al escucharla Freud,  el creador del psicoanálisis, le contestó: “Como le dé la gana. De todos modos estará mal”. En ese momento se me hizo cruel esta anécdota pero cuando se va viviendo la difícil tarea de ser padre es posible comprender estas palabras, porque cuando crecen los hijos enjuician a los padres y muchas veces nunca serán perdonados o quizá, en el mejor de los casos,  hasta que ellos mismos experimentan la paternidad. Es por ello que  pienso que debemos perdonar las limitaciones de nuestros padres al mismo tiempo que pedir perdón a nuestros hijos de las nuestras. No hay padres perfectos ni hijos perfectos. Más allá de buscar la educación perfecta, es importante vernos en el espejo y observar los valores que estamos transmitiendo con nuestro ejemplo. Los niños aprenden más del ejemplo que de las palabras. La única escuela de padres es la vida misma pero lo primero que debemos saber es que cada hijo tiene su propia alma y propio corazón. Aunque seamos responsables de ellos mientras están pequeños, ellos no nos pertenecen y como bien dicen “los hijos son prestados”. Los padres solo damos el permiso para la vida pero su alma no nos pertenece.

Entonces, ¿cuál  sería nuestra actitud correcta ante la tarea de educar al hijo que comienza a caminar? ¿Le permitimos hacer lo que quiera, porque tiene su propia alma y corazón? ¿Seguimos el sueño de Rousseau[1] con su “Emilio” [2]y su educación natural? Si bien este tratado pedagógico ha sido la base para muchas teorías educativas modernas como el constructivismo, los que hemos sido padres sabemos que no podemos dejar al niño educarse por “la naturaleza” y dejarlo hacer lo que quiera porque simplemente si lo hacemos así no llegaría a sobrevivir. La realidad es que, nosotros, como padres estamos llamados a dar    no solo un amor incondicional sino una formación profunda, correcta y clara a nuestros hijos. Primero, con algunas normas de protección y seguridad como no tocar cosas calientes y no asomarse por la ventana y después con algunas normas de salud como lavarse las manos antes de comer o cepillarse los dientes. Posteriormente, poco a poco también debemos enseñar ciertas normas de comportamiento o modales como usar los cubiertos al comer para poder convivir en sociedad. Simultáneamente a muchos sucesos, nuestros hijos comienzan a hablar y, en ese momento, sus ojos van brillando día con día de manera diferente y muy pronto, su mundo interior y su corazón, comienza abrirse no solo con su mirada y su sonrisa, sino con esas primeras palabras que nos hacen temblar de emoción cuando nos dicen “mamá y papá”. A partir de este momento, como nos decía un psicólogo de un kínder Montessori, “los hijos crecen con, sin y a pesar de los papás”….pero sabemos que nuestra misión se extiende  más allá de la supervivencia. La educación de los hijos es uno de los más grandes retos que se tienen en la vida familiar porque no se limita únicamente a la educación escolar o académica sino a la educación moral, cívica y de principios fundamentales de respeto y responsabilidad. Quizá la mayor alegría y satisfacción que puede tener un padre es haber criado un buen ser humano. El problema es que ahora todos estamos envueltos en un estado de gran confusión. Por un lado, el modelo familiar ha cambiado por lo que tratar de emplear los mismos esquemas de formación que emplearon nuestros padres con nosotros ya no son suficientes. La vida de nuestros hijos está expuesta a acelerados cambios generados en gran parte por los desarrollos tecnológicos y por otra por la influencia que ejercen los medios de comunicación donde se son exigen modelos ideales de éxito, belleza, poder y dinero. Lo primero compromete a los hijos a una escasa tolerancia a la frustración y a una mente “multi-tasking” pero de poca concentración, y lo segundo compromete a los padres a esforzarse por obtener los recursos económicos suficientes para alcanzar esos ideales aunque eso implique dejar a los hijos en un hogar de padres ausentes. Desafortunadamente, la combinación de todas estas variables hace sentir a los niños y jóvenes vulnerables y frecuentemente se ven tentados a conseguir momentos de placer inmediatos como la droga y el alcohol que les ofrezcan un “reward” pasajero a pesar de que el costo que tengan que pagar después sea su vida misma.

Los padres de hoy, como los de siempre, tenemos buenos deseos de hacer lo mejor para nuestros hijos, sin embargo, sentimos poca certeza y dudas sobre lo que debe ser una formación sólida para nuestros hijos en un mundo tan cambiante como el de la actualidad. Con frecuencia vacilamos en distinguir entre lo bueno y lo malo; si poner o no límites, si prohibir o relajar ciertos comportamientos de nuestros hijos. Esta situación debe llevarnos a una reflexión seria y buscar respuestas y soluciones que quizá no sean tan diferentes a las vividas por la historia de la humanidad. Porque, al final, no se trata de ser padres perfectos ni de tener hijos perfectos; se trata de una inspiración amorosa y realista de padres que se esfuerzan por estrechar vínculos de afecto y cariño con sus hijos y de hijos que se esfuerzan por seguir los pasos de sus padres. Quienes hemos tenido la dicha de tener unos padres que nos enseñaron a respetar a los demás, a ser honestos y justos y amar a Dios, nunca tendremos la capacidad de darles las gracias como se merecen. Quienes no tuvieron esa dicha,   hoy tienen la oportunidad de ser esos padres para sus hijos y  enseñarles no solo la formación académica sino los principios éticos más elevados que  forman a un buen ser humano merecedor de este maravilloso misterio de la vida.

Probablemente quizá por ello  Doug Cutting, después de un día lleno de cantos y juegos al ver  a su hijo pequeño abrazar a su elefante amarillo  Hadoop por la noche cuando todo estaba en oscuridad y únicamente irradiaba un leve resplandor blanco, se invadió  de ternura al verlo respirar tranquilo, dormido…. y  decidió inmortalizar ese momento paternal a través de una tecnología que ha permanecido viva más de una década.

El juego constituye un elemento básico en la vida de un niño, que además de divertido resulta necesario para su desarrollo creativo. Seguramente todos los niños del  mundo han tenido su “Hadoop” con su nombre y significado propio.  Por otro lado, el software Hadoop es  un sistema único que, a manera de juego, nos permite almacenar, analizar y procesar grandes volúmenes de datos del orden de petabytes [3]que se requieren manejar en el Big Data.

¿Quieres saber más sobre Hadoop y la tecnología del Big Data?


Continúa leyendo…


………………………………………………………………………………………………

Comenzando con lo básico:  ¿qué es Big Data?

Big Data o Data Science como se conoce ahora es un término de moda. De hecho, ya escribí anteriormente un artículo sobre este tema pero dada  su importancia y  extensión, amerita revisar algunos conceptos importantes antes de entrar de lleno con Hadoop.

No existe una definición exacta de Big Data pero se describe como el tratamiento informatizado de grandes cantidades de información que no pueden ser capturados, tratados, gestionados ni procesados en un tiempo razonable con el software habitual. Su historia remonta a finales de los años noventa,  cuando John Mashey, informático teórico, escribió un artículo que tituló “Big Data and the Next Wave of Infrastress” [4](Big Data y la próxima ola de “infrastress”). Mashely se refirió particularmente al estrés que sufrirían tanto infraestructuras físicas como humanas por el imparable acrecentamiento de los datos que, a manera de tsunami se veía llegar del horizonte. En su artículo predijo que las herramientas de software serían insuficientes tanto para la gestión como para el almacenamiento de la información,  y por supuesto, tuvo razón.  De acuerdo con IBM, el 90% de los datos en el mundo de hoy se ha creado en los últimos dos años” y en los próximos 5 años se duplicará esta cantidad. Los datos vienen de todas partes, por lo que para nada nos resulta extraño este gran volumen cuando pensamos en la gran cantidad de páginas web, videos, imágenes, redes sociales, apps, Internet de las cosas, etc. que están disponibles a la distancia de un simple “clic”. Según el informe 2014 de OBS (Online Business School), en Internet, cada minuto se enviaron  200 millones de correos electrónicos, se descargaron 47,000 aplicaciones, se publicaron 30 horas de video en YouTube y se vieron más de un millón de videos. De acuerdo con esta misma fuente  [5], el Big Data en el 2015  se describe con “7 Vs”Volumen, Velocidad, Variedad,  Veracidad, Variabilidad, Valor y Visualización que aportan esos datos a algún sector u  organización. En 2015 el 80% de las organizaciones mundiales  han  invertido  o tienen planeado invertir en Big Data en los próximos dos años. En realidad, no es nuevo su concepto puesto que siempre ha existido la información que se deriva de los procesos internos de los negocios; lo nuevo es la capacidad de convertir esos datos en información que pueda ser empleada como herramienta para la toma de decisiones y elaboración de estrategias de negocios. Pero su aplicación resulta ser infinita porque puede ser empleada sobre cualquier tipo de datos (los que se generan por la Web y Social Media, transacciones, biométrica, comunicaciones máquina/máquina y la generada por el hombre) que puedan ser modelados con ecuaciones matemáticas aplicando las leyes de la física donde se desea predecir algún resultado; por ejemplo en la Medicina, Economía, Finanzas, Mercadotecnia, Sociología y Deportes.

Los tamaños del “Big Data”, es decir qué tan grande puede ser esta cantidad de información están en constante movimiento. Por ejemplo, en 2012 se hablaba de una dimensión que abarcaba desde algunos terabytes hasta varios petabytes. Actualmente, en 2015 se habla de una dimensión de “exabytes”[6], pero en poco tiempo llegará a los “zettabytes” (1021) o inclusive “yottabytes”( 1024) . Estos datos son de diferentes tipos y representan un gran potencial para ayudar a las empresas y países a competir y avanzar; pero al no existir herramientas y computadoras para analizarlos y extraerles su valor, hubo la necesidad de crear esta nueva tecnología denominada “Big Data” desarrollada tanto por las tradicionales grandes empresas generadoras del software (IBM, HP, SAP, Oracle, Microsoft, Apache como algunas que han nacido explícitamente para ello (Cloudera, Hortonworks, 10Gen, entre muchas otras más).[7]

Funciones del Data Scientist o “científico de los datos”. El especialista en Big Data

En términos generales, sus funciones  pueden dividirse en tres:

· Data Wrangling: Se especializa en la captura y almacenamiento de la información. Es el procedimiento manual de convertir  la información en bruto o “raw data” en información con un  formato que pueda ser analizado.  Esta actividad ocupa el 80% del tiempo de trabajo del Data Scientist”.

  • · Data Analysis:   Se refiere a la obtención de valor a partir de la información en bruto o del  “raw data” y para ello se requieren matemáticos y físicos  que puedan modelar esa información matemáticamente y de esta manera poder obtener resultados útiles y precisos.
  • · Data Visualization: Se refiere al visualizado  “bello” (“Beautiful Visualization”) de los resultados para que de esta manera los usuarios puedan comprenderlos fácilmente.

Conociendo a  Apache Hadoop, la herramienta de almacenamiento de Big Data


Hadoop es un software o “framework” de código abierto escrito en Java que se utiliza para almacenar, procesar y analizar grandes volúmenes de datos distribuidos en diferentes “clusters”[8] de información. La historia de Hadoop está relacionada necesariamente  con  la de Google. De hecho,  Hadoop nace cuando Google requiere urgentemente una herramienta que le ayude a procesar la cantidad de datos que iba creciendo a un ritmo exponencial. Como Google era  incapaz de poder indexar la web al nivel que le estaba exigiendo el mercado, decide distribuir su información. De esta acción se derivó no solo el lemadivide y vencerás” sino también la creación de lo que posteriormente se conocería bajo el nombre de Hadoop.

Hadoop, se basa en un gran número de equipos de cómputo, cada uno de los cuales  procesa una porción  importante de información. La grandiosidad de esta solución es que, a pesar de que cada computadora funciona de forma autónoma e independiente, todas actúan en conjunto, como si fueran una sola supercomputadora de dimensiones increíbles. Google publica en 2006 los detalles de su solución que llamó “Big table Reduce” y en ese momento la comunidad Open Source muestra interés en participar  explotando todas sus posibilidades, conocimiento y experiencia desarrollando varias soluciones    en el entorno Apache  como HDFS Apache y Apache MapReduce, las cuales posteriormente se conocieron bajo el nombre de Hadoop. A partir de este momento muchas empresas IT comienzan a emplearlo al mismo tiempo que participan en su desarrollo como Yahoo, Facebook, e-Bay, Twitter entre muchas más.

Las principales ventajas de Hadoop son las siguientes:

  • Permite realizar programación  paralela facilitando a los desarrolladores su trabajo
  • Distribuye archivos en nodos creando un ecosistema flexible para sus usuarios
  • Ejecuta procesos en paralelo
  • Monitoreo de datos a través de sus módulos de control
  • Facilidad en realizar consultas y potencialidad de agregar add-ons para facilitar el almacenamiento de la información.

Arquitectura de Hadoop

La arquitectura de Hadoop es  distribuida y Master-Slave (maestro-esclavo); consiste básicamente de un paquete denominado Hadoop Common que contiene el código fuente de sus más importantes componentes: el sistema de archivos como HDFS y el motor MapReduce para realizar cálculos.


Los archivos que se requieren para correr Hadoop tienen un formato de archivos con terminación .jar; el nodo maestro puede ser de varios tipos: jobtracker, tasktracker, namenode o datanode. El nodo esclavo  también denominado computenode consiste en un datanode y un tasktracker.


Sistema de Archivos Distribuidos  HDFS (Hadoop Distributed File System)

Un sistema de archivos distribuidos o HDFS está diseñado para contener una gran cantidad de datos y facilitar el acceso de éstos a muchos clientes distribuidos a través de una red. Fue creado a partir de GFS (Google File System) pero se optimizó para poder manejar grandes flujos de información estructurada o no estructurada y trabajar con archivos grandes en sus lecturas y escrituras. Tiene una gran escalabilidad y disponibilidad con gran tolerancia a las fallas.[9] Sus elementos más importantes son:

  • Namenode: Regula el acceso a los archivos y solo existe uno en el cluster. Mantiene en memoria toda la metadata [10]del sistema de archivos y control de los bloques que tiene cada DataNode
  • DataNode: Son responsables de leer y escribir los archivos del cliente y están formados por bloques replicados en diferentes nodos.

MapReduce

El modelo que propone MapReduce es muy sencillo. El programador sólo se encargará de implementar dos funciones: map y reduce, las cuales   serán aplicadas a los datos de entrada.  Con ello, tareas como particiones de los datos de entrada, asignación y despliegue de trabajos de nodos maestros o esclavo, sincronización de procesos y tratamiento de caídas del sistema quedarán a cargo del entorno de ejecución y con ello se libera al programador de estos trabajos. En resumen, con MapReduce se separa el qué se distribuye del cómo.

MapReduce es en realidad un proceso batch que permite realizar trabajos en paralelo sobre los grandes volúmenes de información. MapReduce se suele conocer también como Job o JobTracker. MapReduce está compuesto por  las dos fases mencionadas anteriormente: Map y Reduce que se aplican sobre cada par de datos (clave, valor).   Map agrupa todos los pares generados con la misma clave en todas las listas y posteriormente crea una lista por cada clave que se generó. Reduce realiza en forma paralela una colección de valores.

Evolución de Hadoop: Hadoop 2.0: YARN (Yet Another Resource Manager)

El principal problema de Hadoop 1.0 es que solo admite a MapReduce. A pesar de que este modelo es apropiado para el análisis de grandes cantidades de datos, hay  ocasiones que es necesario realizar otro tipo de análisis. Para  resolver este inconveniente surgió, en la versión 2.0  un nuevo componente fundamental: YARN (Yet Another Resource Manager) por lo que Apache Hadoop YARN es considerado como la evolución  Hadoop 2.0 que separa los componentes de procesamiento con  la gestión de recursos. La arquitectura de Hadoop 2.0 /YARN provee una plataforma de procesamiento más general y no se restringe al  MapReduce.


¿Quién emplea Hadoop?

Hadoop es muy utilizado en tecnología,  finanzas, telecomunicaciones, gobierno, salud, investigación científica, medios de comunicación y  entretenimiento, entre muchas áreas más. Con Hadoop, las empresas pueden explorar datos complejos mediante el análisis personalizado adaptado a sus datos y necesidades. Hadoop es compatible con las tres principales empresas de software de bases de datos: Oracle, Microsoft e IBM. Por otro lado, Hadoop también es compatible y empleado en infraestructuras como la de Amazon Web Services, Apple, Facebook, Twitter, LinkedIn, Netflix y muchas más.

Para más información, consulta:

https://hadoop.apache.org/

Conclusiones

Érase una vez, un elefante amarillo solitario. Quería jugar con otros elefantes, pero no tenía con quien jugar. Un día, un hombre llegó a la ciudad con ese elefante y lo nombró Hadoop. Hadoop no era un elefante de la normalidad, no. Él era un elefante  que le gustaba la agrupación. Pronto llegaron otros elefantes a su alrededor; algunos no jugaron con él todo el tiempo pero otros sí. Como a veces algunos elefantes dormían, buscó a otros para hacer las tareas durante la noche. Cuando un elefante cluster se enfermó, Hadoop creó la manera de irse al siguiente cluster disponible porque había miles; cada uno se comportaba de la misma manera. Invitó a jugar con él a programadores sin experiencia de desarrollo en entornos distribuidos y les permitió manejar la información con gran escalabilidad, flexibilidad y a un bajo costo porque tenían archivos replicados. Esto fue muy divertido para Hadoop y nunca estuvo sólo un día más.



[1] Jean-Jacques Rousseau (1712-1778) fue un  filósofo, escritor, músico, botánico y naturalista franco-helvético definido como un ilustrado, a pesar de las profundas contradicciones que lo separaron de los principales representantes de la  Ilustración.

[2] Emilio, o De la educación es un tratado filosófico sobre la naturaleza del hombre escrito por  Jean-Jacques Rousseau en 1762, quien la creía la “mejor y más importante de todas sus obras.”1 El texto aborda temas políticos y filosóficos concernientes a la relación del individuo con la sociedad, particularmente señala cómo el individuo puede conservar su bondad natural. En su Emilio, Rousseau propone, mediante la descripción del mismo, un sistema educativo que permita al “hombre natural” convivir con esa sociedad corrupta.

[3] Un petabyte es una unidad de almacenamiento de información cuyo símbolo es PB, y equivale a 10 elevado a la 15 bytes

[4] Mashey, J. R. (1998). Big Data and the Next Wave of InfraStress, presentado en el SGI Nueva York, Nueva York

[5] Citado  en http://www.obs-edu.com/noticias/estudio-obs/en-2020-mas-de-30-mil-millones-de-dispositivos-estaran-conectados-internet/

[6] Un byte son 8 bits. Un exabyte es una unidad de medida de almacenamiento de Datos cuyo símbolo es el ‘EB’, equivale a 10 elevado a la 18 bytes

[7] Careaga, Ana Lilia  disponible en http://comunidad.ingenet.com.mx/anacareaga/2015/01/26/hana-la-profetisa-del-big-data/

[8] El término clúster (del inglés cluster, “grupo” o “raíz”) se aplica a los conjuntos o conglomerados de computadoras unidas entre sí normalmente por una red de alta velocidad y que se comportan como si fuesen una única computadora.

[9] Citado en https://developer.yahoo.com/hadoop/tutorial/module2.html

[10] Metadata(del  griego  meta, ‘después de, más allá de y  del latín datum, “lo que se da” ), literalmente “sobre datos”, son datos que describen otros datos

Deja un comentario