Las principales Técnicas Big Data y sus Aplicaciones

hadoopArtículo sobre Machine Learning, Hadoop y MapReduce. Abordo la parte más tecnológica de Big Data a un nivel muy introductorio, aunque poniendo el foco en la utilidad. También es una invitación a la reflexión para las personas que van a tener que acometer este tipo de proyectos por primera vez. ya sean técnicos, gestores o futuros beneficiarios de los mismos. Como siempre, te invito a que me conozcas a través de mi perfil de LinkedIn, ya que uno de mis objetivos con el Blog es aumentar mis contactos.

Machine Learning

Es una técnica para conseguir el aprendizaje automático basado en datos. Típicamente hay dos tipos de aprendizaje, el supervisado y el no supervisado.

Como ejemplo del supervisado, el análisis de sentimiento en redes sociales se basa en clasificar las opiniones en favorables o desfavorables (puede haber más de dos tipos). Se parte de unos casos de entrenamiento que se han catalogado manualmente para que el programa pueda generalizar a partir de ellos. Esto requiere tratamiento del lenguaje natural y aplicación práctica de cálculos estadísticos.

En el caso del no supervisado, podemos pensar en la segmentación de clientes, agrupando los que tienen características comunes. De nuevo se utiliza la estadística para obtener esa medición de cercanía o distancia, pero sin recurrir a una clasificación previa realizada por una persona.

Matemáticamente, y también desde el punto de vista de los algoritmos, ya hay un amplio cuerpo de conocimiento previo a la explosión Big Data: Redes neuronales, minería de datos, aplicaciones prácticas de teorías como las de Bayes y Shannon, regresión, algoritmos de clustering como el de K-means, árboles de decisión, etc.

Hadoop y MapReduce

sintetizadorApache Hadoop es un framework abierto pensado para almacenar y tratar grandes volúmenes de datos, basándose en el proceso paralelo (distribuido). Inicialmente para responder a las necesidades de los grandes buscadores y redes sociales, que requieren a la vez buenos tiempos de respuesta y tolerancia a fallos. De aquí que esté tan asociado a la problemática Big Data.

Como repositorio de datos distribuido, a nivel técnico conviene recordar el teorema CAP. Nos indica que en un sistema distribuido no podemos conseguir simultáneamente las tres características siguientes:

  • Consistencia (todos los nodos comparten la misma información simultáneamente)
  • Disponibilidad (la petición a un nodo siempre obtiene respuesta sobre si se ha resuelto o no satisfactoriamente)
  • Tolerancia a particiones (el sistema funciona aunque falle una parte de la conectividad entre nodos)

En Hadoop y en general en bases de datos noSQL como MongoDB se intenta llegar a un compromiso para equilibrar las tres características, pero es importante saber cuál es la que no se va a cumplir en un caso extremo.

MapReduce es el motor de procesamiento de Hadoop. El ejemplo más básico que se menciona siempre es el de contar repeticiones de palabras en un total de documentos. Existirán varios nodos map donde cada uno recibe un grupo de documentos, podemos suponer que aleatorio. Cada Map va emitiendo una lista de palabras encontradas. Estas listas pasan a la fase Reduce que se encargará de sumar para cada palabra las veces que ha sido encontrada, también con varios nodos reduce en paralelo. El sistema asegura que si diferentes nodos Map han emitido la misma palabra, esa palabra va a parar al mismo nodo Reduce. Y si un nodo falla, otro le sustituye, siempre sujeto al teorema CAP.

Volviendo a los repositorios de datos,  MapReduce se puede utilizar también para paralelizar las tareas clásicas de bases de datos como filtro, join y agregación, sin necesidad de partir de un motor relacional o de un lenguaje SQL.

Un dato importante a tener en cuenta es que este proceso es válido para operaciones que cumplen las propiedades asociativa y conmutativa, como sumas y multiplicaciones de números reales. Aquí es donde encontramos el enlace natural entre el machine learning y el mundo Hadoop, aunque sean técnicas que se han desarrollado en momentos diferentes del tiempo, ya que muchas funciones estadísticas sí que cumplen con las dos propiedades, o se busca una aproximación.

SONY DSCLa evolución de las telecomunicaciones es motor de Big Data y de Internet of Things
 

Para reflexionar

  • Estas tecnologías están en continua evolución. Por ejemplo en este artículo de BigData4success  ¿Ha muerto Hadoop ya? nos indica que Hadoop puede verse sustituido, o al menos complementado, por otras tecnologías como Spark y Cloud Dataflow.
  • También las bases de datos tradicionales, más orientadas a transacciones ACID (por ejemplo operaciones financieras), se encuentran con estos modelos noSQL. El teorema CAP es de ayuda para entenderlo, ya que las bases de datos transaccionales suelen basarse en la consistencia y disponibilidad, mientras que por ejemplo MongoDB se encuadra en consistencia más tolerancia a particiones.
  • Como podemos ver, se integran técnicas más tradicionales con otras novedosas. Además de las ya mencionadas también es de aplicación buena parte de Business Intelligence y sus herramientas analíticas, para que el usuario pueda sacar partido real de los datos.
  • Evidentemente se van a necesitar técnicos con conocimientos de todo esto. Pero no hay que obsesionarse con la especialización, se trata también de conceptualizar y saber pasar de unas tecnologías a otras en el menor tiempo posible. Espero que el mercado entienda esto.
  • Son por lo tanto proyectos de mayor incertidumbre que otros más convencionales. La prueba de varios modelos y el aprendizaje durante el proyecto forman parte del mismo. Por ello, como ya comenté en otro artículo, las metodologías ágiles como Scrum son muy indicadas. Y si hay que comprometer fechas, reservar un tiempo para la experimentación y el aprendizaje.

Si te ha parecido interesante, no dejes de visitar otros artículos que he escrito previamente, como el de los sitios más destacados de formación Big Data en España y Online.

Anuncios
Esta entrada fue publicada en Gestión, Tecnología y etiquetada , , , , , , , . Guarda el enlace permanente.

2 respuestas a Las principales Técnicas Big Data y sus Aplicaciones

  1. Juan V. dijo:

    Muy interesante. Quizás añadir un par de cosas. He oído decir a gente que lleva tiempo trabajando con estos entornos, que spark y storm, efectivamente están desbancado a hadoop.
    Mencionas los algoritmos de machine learning o clasificación, en este punto hay que tener en cuenta que no todos los algoritmos son paralelizables ya que algunos de ellos necesitan del dataset entero para poder obtener el resultado, no se puede ejecutar el algoritmo particionado.

  2. José Julio López dijo:

    Muchas gracias por las puntualizaciones, y siéntete libre de hacer otros comentarios, que nos enriquecen a todos. Yo por ejemplo de storm no recuerdo haber escuchado nada, mientras que el tema de spark se menciona con frecuencia.

Deje una Respuesta

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