martes, 25 de marzo de 2014

MapReduce: paradigma de hoy

En los últimos años mucha personas han tratado de dar solución al problema de procesamiento de grandes cantidades de datos (Big Data), pues este representa un problema practico en el que es necesario analizar toda esta información en un tiempo razonable. Muchos esfuerzos se han hecho para tratar de  solucionar este problema (e.g. supercomputadoras, paradigmas de multiprocesamiento, etc.), sin embargo, una de las soluciones más efectivas (gracias a la escalabilidad y costos) es el uso del computo distribuido.
El computo paralelo ha evolucionado a través del tiempo, y mientras que sus bases, la distribución de las operaciones lógica y de entrada-salida a través de procesadores y/o equipos, muchos paradigmas se ha explorado, pero el problema del sincronizado de datos a través de diferentes nodos ha continuado. Recientemente, un nuevo paradigma, el map-reduce, ha sido adoptado y evolucionado hasta convertirse en el indicado para compañías donde sus procesos están muy relacionados con el procesamiento extensivo de datos, como Google, Microsoft, y Amazon.
El paradigma de Map-reduce utiliza el concepto de map y reduce incluidos en los lenguajes derivados de LISP, que procesan independientemente datasets con el fin de producto nuevas instancias de estos, pero as pequeños. Básicamente, la idea es procesar datos en una función map, previamente definida por el usuario donde la información es indexada y procesada, y enviada a una función reduce, que también esta definida por el usuario, de tal forma que “agregue” las tuplas resultantes previamente procesadas de tal forma que estas sean presentadas de una forma útil al ser post-procesadas.

La ventaja de usar este nuevo paradigma es que la información puede ser dividida en diferentes datasets, procesados independientemente, y reducidos posteriormente en una función reduce especializada. Esto provee una alternativa para reducir costos al usar grandes clústeres formados de computadoras domesticas (de conveniencia) que podían superar a las grandes computadoras comerciales al ser comparadas en su relación desempeño/costo, además de proveer una infraestructura muy robusta, tolerante a fallas, en la que las optimizaciones correctas a una computadora maestra, que asigna los nodos que ejecutaran tareas de map y reduce, puede sencillamente reemplazar y/o compensar la falla de una computadora gracias al poder de la grid que maneja, proveyendo un clúster confiable compuesto de maquinas sencillas y que en si mismas no son confiables.

No hay comentarios:

Publicar un comentario