Crear apps con Big Data
Cómo desarrollar apps con Big Data gracias a Hadoop
¿Qué es Hadoop, y por qué lo usamos al desarrollar apps de Big Data?
A día de hoy, en el desarrollo de apps, se trabaja con grandes volúmenes de datos y la información a nivel mundial está creciendo exponencialmente en los últimos años. Trabajar con volúmenes de datos tan grandes puede llegar a ser un problema, ya que se deben controlar muchos factores (seguridad, alta disponibilidad, costes, almacenamiento...) para ello existen los frameworks que nos ofrecen una solución centralizada a todos los problemas posibles. Un framework es un entorno de trabajo que su único objetivo es hacer el trabajo más fácil e intuitivo a los programadores, así mismo también te guía en la forma en la que debes trabajar.
Hadoop es un framework libre de apache que permite el proceso distribuido de grandes volúmenes de datos entre diferentes nodos. Está diseñado para poder escalar servidores individuales a miles de máquinas, cada una ofrece un procesamiento y almacenamiento local.
En la creación de apps con big data, esto toma mucha fuerza, ya que los desarrolladores de aplicaciones buscamos la alta seguridad de datos y el rápido procesamiento de datos para aumentar considerablemente la velocidad de la aplicación.
Como ves, Hadoop es un framework muy completo y muchas empresas como Facebook, Ebay, Oracle, Yahoo, Netflix, Salesforce... han resuelto sus problemas de gestión de grandes volúmenes de datos con Hadoop.
¿Cómo funciona Hadoop?
En la imagen de arriba se puede ver como está distribuido todo el ecosistema de Hadoop y algunas de sus características más relevantes.
Nosotros, como desarrolladores de apps, explicaremos las que más se adaptan a nuestro sector y pondremos algún ejemplo.
Lo más importante, la base de Hadoop es HDFS (“Hadoop Distributed File System”) y Yarn/MapReduce:
HDFS es el sistema de ficheros por defecto de Hadoop, facilita el acceso a datos y hay una alta disponibilidad de ellos, ya que por defecto un dato se replica en 3 servidores distintos, esto es importante, ya que a los desarrolladores de apps nos interesa que los datos estén bien protegidos.
Yarn y MapReduce son los encargados de la gestión y del procesamiento de datos del servidor, donde dependiendo de la versión de Hadoop se necesitará Yarn o MapReduce. En la versión 1.0 MapReduce se encarga de la gestión del servidor como del procesamiento de los datos. Pero en la versión 2.0 se separó la gestión del servidor con el procesamiento de los datos, aumentando así el rendimiento de nuestra aplicación móvil, web, base de datos…
Por otra parte, vamos a darle importancia a dos herramientas del ecosistema de Hadoop, ya que son las herramientas que utilizaremos para desarrollar la demo:
Hive es una infraestructura que se basa en data warehousing que pertenece al ecosistema de Hadoop. Este sistema tiene un objetivo bien definido que, no es otro que ofrecer un exhaustivo resumen de análisis, datos y consultas. Por otra parte, Hbase para el procesamiento de datos en base de datos no relacionales.
Hue es una interfaz gráfica que le pone una UI a Hadoop para que sea más intuitivo a la hora de trabajar. Esto es muy interesante, porque te permite gestionar tu aplicación mediante una interfaz visual.
Demo
La idea de la siguiente demo, es trabajar sobre una tabla de productos y mostrar unos gráficos de los resultados obtenidos. La demo no se realizará con muchos productos, con 20 es suficiente para entender la capacidad del framework.
Para ello lo primero que deberíamos hacer es importar la base de datos a nuestro servidor y configurarlo para que Hive trabaje sobre esa base de datos o bien se puede configurar para que trabaje sobre una base de datos remotamente.
Una vez tengamos la conexión con la base de datos, desde la interfaz gráfica (HUE) de nuestro servidor, podemos hacer una consulta a nuestra base de datos para obtener los productos de dicha tabla:
Obtenemos todos los registros de nuestra tabla productos y si por ejemplo queremos hacer un gráfico, podemos ir a la pestaña “Charts” del menú y esto automáticamente nos genera uno.
En este gráfico de líneas definimos que aparezcan los 50 primeros registros que encuentre y que nos genere el gráfico según el precio de los productos.
O bien podemos hacer lo mismo, pero limitando los resultados a 5 y con un gráfico de sectores circulares:
¿Cómo desarrollar una app utilizando big data?
Si has llegado hasta aquí, habrás visto que el big data tiene muchas ventajas en la creación de apps. En Abalit Technologies, contamos con un equipo de desarrolladores expertos en el desarrollo de apps big data. Y no solo eso, nuestro equipo de desarrollo puede gestionar servidores Hadoop. Por lo que, si tienes cualquier duda o alguna idea para desarrollar una app big data estaremos encantados de ayudarte, puedes contactarnos sin ningún tipo de compromiso y pedir presupuesto de forma totalmente gratuita.
Conclusión y opinión
Mi opinión es que el desarrollo de apps con big data está a la orden del día y ya no únicamente la emplean grandes empresas, las PYMES cada vez más se están adaptando a las nuevas tecnologías e implementan el big data en sus apps móviles. Estamos hablando de una tecnología relativamente económica de desarrollar con la que consigues un sinfín de beneficios.
Personalmente, lo que más me gusta es el análisis de datos, ya que si tenemos una app o una idea de desarrollar una app multiplataforma y el día de mañana cuenta con miles de clientes podemos obtener datos acerca de todos ellos de manera visual y con una gran rapidez, por ejemplo, queremos saber la edad que predomina en la app para poder lanzar productos atractivos en nuestro e-commerce, la cantidad de usuarios que hablan el castellano, obtener los usuarios que más han gastado en la aplicación…
¿A qué esperas para sumarte?