Archivo de la etiqueta: hdfs

El «mercado de Hadoop» y MapR: el valor de las tecnologías Big Data

En un artículo anterior, hablábamos del nacimiento de esta era del Big Data. Y comentábamos, que el framework Hadoop había jugado en ello un papel fundamental. Desde entonces, su uso no ha dejado de crecer en el mundo empresarial.

El «mercado de Hadoop» está en pleno crecimiento. Hablamos de un mercado en el que las empresas, cogen el framework open source del que hablábamos, y desarrollan sus propias soluciones. Es una carrera entre tres principales «players»:

Con estas cifras, además de entender el dinamismo del sector ahora mismo, se deja entrever que las valoraciones de las que estamos hablando de tecnologías Big Data, no son nada pequeños. Y si utilizamos estas cifras para aproximarnos a su verdadero valor, creo que podemos pensar que valor, existe.

Vamos a hablar de MapR, solo por la reciente noticia del aumento de su capital nuevamente. Y lo haremos como excusa para entender qué empresas están detrás de todo ello, y cuál es su base de clientes. Una tecnología de procesamiento de datos masivos que se asienta sobre el paradigma MapReduce, y que ofrece a las empresas la posibilidad de procesamiento Batch y Tiempo real (ya hablaremos de ello).

Tecnologías MapR (Fuente: http://www.storagenewsletter.com/wp-content/uploads/sites/8/old/0icono13/mapr_der_540_01.jpg.pagespeed.ce.PJ1TlwAsX7.jpg)
Tecnologías MapR (Fuente: http://www.storagenewsletter.com/wp-content/uploads/sites/8/old/0icono13/mapr_der_540_01.jpg.pagespeed.ce.PJ1TlwAsX7.jpg)

Ellos se autodefinen como plataforma de datos de convergencia, en el sentido que te permite hacer «de todo» con los datos con un mismo paquete de módulos tecnológicos. Una empresa que ha duplicado en el último trimestre su cartera de clientes, que ya incluyen a empresas del tamaño de American Express, Audi, Ericsson, NTT, Philips o el banco Mizuho. Su modelo de negocio se asienta sobre las licencias y los servicios de soporte. Representan un 90% de sus ingresos totales. Y esto es lo que exponen en su propia web:

MapR proporciona, en el marco del universo Hadoop, una plataforma unificada que dispone de funcionalidades de misión crítica, que permite realizar desarrollos de producción en tiempo real. MapR cuenta con cerca de 700 clientes de los sectores de finanzas, gobierno, salud, Internet, industria, medios, retail y telecomunicaciones. Amazon, Cisco, Google, Teradata y HP también forman parte del ecosistema de partners de MapR.

¿Y cuál es su propuesta de valor? Básicamente, sobreponerse a las restricciones que tiene la distribución estándar de Hadoop, pero bajo una licencia que sigue siendo Apache. En lugar del HDFS del que hablábamos, ofrece MapRFS para una gestión de datos más eficiente, confiable y fácil de usar. Por ello, suelen decir que está más orientada a la «producción empresarial» que las dos anteriores.

Además, su módulo de integración de datos es realmente eficiente, permitiendo a las organizaciones integrar y procesar datos «legacy» así como nuevos, procedentes de diferentes plataformas. Una vez hecho esto, igualmente proveen soluciones de analítica avanzada.

El procesamiento de datos en el mundo de las empresas está en tanta transformación, que todas estas empresas proveedoras de soluciones de procesamiento de grandes volúmenes de datos, seguirán registrando cifras récord. La tendencia así parece demostrarlo. Aquellas que más están cambiando (aquellas que más competitividad están consiguiendo), son clientes de MapR, Hortonworks o Cloudera. Por ello, nada hace pensar que esta tendencia va a cambiar.

Paradigma batch para sistemas Big Data (I)

(venimos de un artículo introductorio a los tres paradigmas)

Cuando hablamos del verdadero momento en el que podemos considerar nace esta «era del Big Data», comentamos que se puede considerar el desarrollo de MapReduce y Hadoop como las primeras «tecnologías Big Data». Estas tecnologías se centraban en un enfoque de Batch Processing. Es decir, el objetivo era acumular todos los datos que se pudieran, procesarlos y producir resultados que se «empaquetaban» por lotes.

Con este enfoque, Hadoop ha sido la herramienta más empleada. Es una herramienta realmente buena para almacenar enormes cantidades de datos y luego poder escalarlos horizontalmente mientras vamos añadiendo nodos en nuestro clúster de máquinas.

Big Data Batch Processing (Fuente: http://www.datasciencecentral.com/profiles/blogs/batch-vs-real-time-data-processing)
Big Data Batch Processing (Fuente: http://www.datasciencecentral.com/profiles/blogs/batch-vs-real-time-data-processing)

Como se puede apreciar en la imagen, el «problema» que aparece en este enfoque es que el retraso en tiempo que introduce disponer de un ETL que carga los datos para su procesamiento, no será tan ágil como hacerlo de manera continua con un enfoque de tiempo real. El procesamiento en trabajos batch de Hadoop MapReduce es el que domina en este enfoque. Y lo hace, apoyándose en todo momento de un ETL, de los que ya hablamos en este blog.

Hasta la fecha la gran mayoría de las organizaciones han empleado este paradigma «Batch». No era necesaria mayor sofisticación. Sin embargo, como ya comentamos anteriormente, existen exigencias mayores. Los datos, en muchas ocasiones, deben ser procesados en tiempo real, permitiendo así a la organización tomar decisiones inmediatamente. Esas organizaciones en las que la diferencia entre segundos y minutos sí es crítica.

Hadoop, en los últimos tiempos, es consciente de «esta economía de tiempo real» en la que nos hemos instalado. Por ello, ha mejorado bastante su capacidad de gestión. Sin embargo, todavía es considerado por muchos una solución demasiado rígida para algunas funciones. Por ello, hoy en día, «solo» es considerado el ideal en casos como:

  • No necesita un cálculo con una periodicidad alta (una vez al día, una vez al de X horas, etc.)
  • Cálculos que se deban ejecutar solo a final de mes (facturas de una gran organización, asientos contables, arqueos de caja, etc.)
  • Generación de informes con una periodicidad baja.
  • etc.

Como el tema no es tan sencillo como en un artículo de este tipo podamos describir, en los últimos años han nacido una serie de herramientas y tecnologías alrededor de Hadoop para ayudar en esa tarea de analizar grandes cantidades de datos. Para analizar las mismas -a pesar de que cada una de ellas da para un artículo por sí sola-, lo descomponemos en las cuatro etapas de la cadena de valor de un proyecto de Big Data:

1) Ingesta de datos

Destacan tecnologías como:

  • Flume: recolectar, agregar y mover grandes cantidades de datos desde diferentes fuentes a un data store centralizado.
  • Comandos HDFS: utilizar los comandos propios de HDFS para trabajar con los datos gestionados en el ecosistema de Hadoop.
  • Sqoop: permitir la transferencia de información entre Hadoop y los grandes almacenes de datos estructurados (MySQL, PostgreSQL, Oracle, SQL Server, DB2, etc.)

2) Procesamiento de datos 

Destacan tecnologías como:

  • MapReduce: del que ya hablamos, así que no me extiendo.
  • Hive: framework creado originalmente por Facebook para trabajar con el sistemas de ficheros distribuidos de Hadoop (HDFS). El objetivo no era otro que facilitar el trabajo, dado que a través de sus querys SQL (HiveQL) podemos lanzar consultas que luego se traducen a trabajos MapReduce. Dado que trabajar con este último resultaba laborioso, surgió como una forma de facilitar dicha labor.
  • Pig: herramienta que facilta el análisis de grandes volúmenes de datos a través de un lenguaje de alto nivel. Su estructura permite la paralelización, que hace aún más eficiente el procesamiento de volúmenes de datos, así como la infraestructura necesaria para ello.
  • Cascading: crear y ejecutar flujos de trabajo de procesamiento de datos en clústeres Hadoop usando cualquier lenguaje basado en JVM (la máquina virtual de Java). De nuevo, el objetivo es quitar la complejidad de trabajar con MapReduce y sus trabajos. Es muy empleado en entornos complejos como la bioinformática, algoritmos de Machine Learning, análisis predictivo, Web Mining y herramientas ETL.
  • Spark: facilita enormemente el desarrollo de programas de uso masivo de datos. Creado en la Universidad de Berkeley, ha sido considerado el primer software de código abierto que hace la programación distribuida accesible y más fácil para «más públicos» que los muy especializados. De nuevo, aporta facilidad frente a MapReduce.

3) Almacenamiento de datos

Destacan tecnologías como:

  • HDFS: sistema de archivos de un cluster Hadoop que funciona de manera más eficiente con un número reducido de archivos de datos de gran volumen, que con una cantidad superior de archivos de datos más pequeños.
  • HBase: permite manejar todos los datos y tenerlos distribuidos a través de lo que denominan regiones, una partición tipo Nodo de Hadoop que se guarda en un servidor. La región aleatoria en la que se guardan los datos de una tabla es decidida, dándole un tamaño fijo a partir del cual la tabla debe distribuirse a través de las regiones. Aporta, así, eficiencia en el trabajo de almacenamiento de datos.

4) Servicio de datos

En esta última etapa, en realidad, no es que destaque una tecnología o herramienta, sino que destacaría el «para qué» se ha hecho todo lo anterior. Es decir, qué podemos ofrecer/servir una vez que los datos han sido procesados y puestos a disposición del proyecto de Big Data.

Seguiremos esta serie hablando del enfoque de «tiempo real», y haciendo una comparación con los resultados que ofrece este paradigma «batch».

Cuándo empieza esta era del Big Data: MapReduce

Comentábamos en un artículo anterior, que fue allá por 2012 cuando se empieza a popularizar el término Big Data en el acervo popular. Pero eso no quiere decir, que sea entonces cuando podamos decir que comienza esta era del Big Data. De hecho, los orígenes son bastante anteriores.

Dos ingenieros de Google, Jeffrey Dean y Sanjay Ghemawat, allá por 2004, publican un artículo titulado «MapReduce: Simplified Data Processing on Large Clusters«.

Dean Ghemawat

Hablan de un nuevo modelo de programación que permite simplificar el procesamiento de grandes volúmenes de datos. Lo bautizan como MapReduce. Básicamente es la evolución natural y necesaria que tenían dentro de Google para procesar los grandes volúmenes de datos que ya por aquel entonces manejaban (documentos, referencias web, páginas, etc.). Lo necesitaban, porque a partir de toda esa información, sacaban una serie de métricas que luego les ayudó a popularizar industrias como el SEO y SEM. Vamos, de lo que hoy en día vive Google (Alphabet) y lo que le ha permitido ser la empresa de mayor valor bursátil del mundo.

La idea que subyace a este nuevo modelo de programación es el siguiente: ante la necesidad de procesar grandes volúmenes de datos, se puede montra un esquema en paralelo de computación que permita así distribuir el trabajo (el procesamiento de datos) entre diferentes máquinas (nodos dentro de una red) para que se pueda reducir el tiempo total de procesamiento. Es decir, una versión moderna del «divide y vencerás«, que hace que ese trabajo menor en paralelo, reduzca sustantivamente lo que de otra manera sería un único, pero GRAN trabajo.

Distribución de trabajo a través del modelo MapReduce (Fuente: http://www.admin-magazine.com/HPC/Articles/MapReduce-and-Hadoop)
Distribución de trabajo a través del modelo MapReduce (Fuente: http://www.admin-magazine.com/HPC/Articles/MapReduce-and-Hadoop)

En aquel entonces, estos grandes «visionarios del Big Data» (luego volvemos a ello), se dieron cuenta que este problema que tenía Google en esos momentos, lo iban a tener otras cuantas aplicaciones. Así que decidieron desarrollar un modelo de programación que se desacoplara de las necesidades concretas de Google, y se pudiera generalizar a un conjunto de aplicaciones que pudieran luego reutilizarlo. Pensaron en un inicio a todos los problemas que pudiera tener el propio buscador. Pero se dan cuenta que quizás todavía hay un universo más amplio de problemas, por lo que se abtsrae y generaliza aún más.

De hecho, lo simplificaron tanto que dejaron la preocupación del programador en dos funciones:

  • Map: transforma un conjunto de datos de partida en pares (clave, valor) a otro conjunto de datos intermedios también en pares (clave, valor). Un formato, que hará más eficiente su procesamiento y sobre todo, más fácil su «reconstruccón» futura.
  • Reduce: recibe los valores intermedios procesados en formato de pares (clave, valor) para agruparlos y producir el resultado final.

Este paradigma lo adoptó Google allá por 2004. Y dado el rendimiento que tenía, se comenzó a emplear en otras aplicaciones (como decíamos ahora). Se comienzan luego a desarrollar versiones de código abierto en frameworks. Esto hace muy fácil su rápida adopción, y quizás deja una lección para la historia sobre cómo desarrollar rápidamente un paradigma.

Uno de los frameworks que comienza a ganar en popularidad es Apache Hadoop. Y, para muchos, aquí nace esta era del «Big Data». El creador del framework Hadoop se llama «Doug» Cutting, una persona con una visión espectacular. En cuanto leyó la publicación de Dean y Ghemawat se dio cuenta que si crease una herramienta bajo el paradigma MapReduce, ayudaría a muchos a procesar grandes cantidades de datos. Cutting acabó luego trabajando en Yahoo!, que es donde realmente empujó el proyecto Hadoop (qué vueltas da la vida…).

El ecosistema Hadoop consta de una serie de módulos como los que se pueden encontrar en la imagen debajo de estas líneas. Pero en su día, fueron dos sus principales componentes, y los que dan otro nuevo empuje a esta era del Big Data:

  • HDFS: una implementación open-source de un sistema distribuido de ficheros (que ya había descrito Google en realidad).
  • MapReduce: utilizando HDFS como soporte, la implementación del modelo de programación que hemos descrito al comienzo.
Ecosistema Apache Hadoop (Fuente: https://opensource.com/sites/default/files/resize/styles/image-full-size/public/images/life-uploads/hadoop-EcoSys_yarn-640x418.PNG)
Ecosistema Apache Hadoop (Fuente: https://opensource.com/sites/default/files/resize/styles/image-full-size/public/images/life-uploads/hadoop-EcoSys_yarn-640×418.PNG)

La historia sobre el origen y verdadero impulso a esta era del «Big Data», puede cerrarse con la salida de Yahoo! de Cutting en 2009. Se incorpora a Cloudera, empresa que comienza a dar servicio, soporte y formación de Hadoop a otras empresas. Para esa fecha, Hadoop ya era un ecosistema de módulos y aplicaciones, que merecen cada una un hilo aparte para entender las grandes aportaciones que hicieron las personas que hemos comentado en este artículo. Por cierto, mucha de esta historia la cuenta el propio Cutting en este hilo de Quora.

En definitiva, primero MapReduce, y luego el framework Hadoop, pueden ser considerados como el origen de esta era Big Data de la que tanto hablamos hoy en día. Y, las empresas de Internet (Google, Yahoo, hablaremos luego de Twitter, Facebook, Linkedin, etc.), las que propician la aparición de tecnologías de Big Data que luego son llevadas a otros sectores.