Posts Tagged ‘MapReduce’

Nubes virtuales

miércoles, julio 22nd, 2009

En una entrada anterior mencionaba lo caro que puede ser mantener un data center. Una alternativa para los usuarios finales serían las nubes virtuales, creadas a través de la donación de ciclos no utilizados de computadores personales. La idea no es nueva, y de hecho tuvo mediano éxito con la plataforma BOINC, usada por proyectos como SETI@home.

La verdad no me queda claro cuál sería la diferencia entre una nube virtual y un servicio de Internet computing (como BOINC), excepto—tal vez—la interfaz proporcionada al usuario final.

Y hablando de BOINC y MapReduce, MapReduce es uno de los 13 enanos identificados por investigadores de Berkeley. Estos «enanos» representan diferentes métodos algorítmicos que capturan patrones computacionales y de comunicaciones. La idea es que estos patrones puedan ser usados para evaluar modelos y arquitecturas de programación paralela. En la página que describe el «enano» MapReduce hay un comentario que indica que BOINC puede ser visto como un «specification framework» para problemas MapReduce (que indica es básicamente una generalización del enano antes llamado Monte Carlo).

Sistemas de recomendación con Hadoop

miércoles, julio 22nd, 2009

Uno de los grupos de la materia de graduación me comentó que estaba teniendo problemas implementando un sistema de recomendaciones usando Mahout (específicamente, Taste), debido a que tenían problemas de insuficiencia de memoria. Debe haber una manera de solucionar el problema, pero como alternativa pienso que podrían analizar utilizar el algoritmo descrito en el paper «Pairwise Document Similarity in Large Collections with MapReduce«. Encontré una entrada en un blog detallando el uso de este algoritmo, y un tutorial que muestra cómo implementarlo usando Elastic MapReduce.

Tip de rendimiento: reutilizar la JVM entre tareas Map

martes, junio 16th, 2009

En un e-mail de la lista core-user de hadoop, alguien preguntó lo siguiente:

Subject: Can I share datas for several map tasks?
Hi,
I want to share some data structures for the map tasks on a same node(not through files), I mean, if one map task has already initialized some data structures (e.g. an array or a list), can other map tasks share these memorys and directly access them, for I don’t want to reinitialize these datas and I want to save some memory. Can hadoop help me do this?

Eason.Lee sugirió:

I think you can just define the data structures in your map classinit it in
setup(Context context) and use it in your map method
hope it is helpful!

Pero si lo que se quiere es que los mappers que se levanten en el mismo nodo re-utilicen la estructura de datos creada por el primer Map task levantado en ese nodo, entonces la solución—planteada por Sharad Agarwal de Yahoo!—es re-utilizar la JVM:

You can enable jvm reuse across tasks. See mapred.job.reuse.jvm.num.tasks in mapred-default.xml for usage. Then you can cache the data in a static variable in your mapper.

¿Morirán las datawarehouses?

viernes, mayo 22nd, 2009

En un paper escrito por alguna gente de Greenplum, los autores argumentan que en la época de la Big Data (muchos muchos datos a ser procesados), los esquemas tradicionales de datawarehousing y business intelligence se vuelven obsoletos. Ellos proponen otra alternativa que han denominado análisis de datos MAD (Magnetic, Agile, Deep). En el paper, dan un ejemplo real de Fox Interactive Media, que antes de la propuesta planteada por Greenplum, recurría a un complejo proceso de datawarehousing+exportar resultados+procesamiento intermedio con scripts+procesamiento con MapReduce (Hadoop). La alternativa de ellos combina SQL y MapReduce en la base de datos de manera nativa, y a decir de los autores, les permitió «volverse locos» (go MAD) con el análisis de datos.

NOTA a los alumnos de la materia: creo que este paper es de interés para todos. Léanlo (no es necesario que lo entiendan al 100%) para poder discutirlo la próxima clase.

Más sobre los AWS

viernes, mayo 22nd, 2009

El Elastic MapReduce de Amazon promete facilitar el proceso de levantar clusters Hadoop. Todavía no he tenido la oportunidad de probar este nuevo servicio, así que opté por registrarme al Webinar de la próxima semana.

Otro nuevo servicio interesante es el AWS Import/Export que permite enviar los data sets vía correo tradicional en lugar de usar la red. Esto resolvería el problema descrito en otra entrada anterior.

Lo mejor del Cloud Slam ’09

martes, mayo 19th, 2009

Del 20 al 24 de abril se llevó a cabo el congreso Cloud Slam, en el cual hubieron conferencias a cargo de varios expertos en cloud computing. Estuve revisando la lista de las presentaciones (con vídeos), y pienso que las siguientes son de particular interés para los estudiantes de la materia de graduación:

Amazon anuncia lo nuevo en EC2

martes, mayo 19th, 2009

Amazon acaba de anunciar algunas novedades de EC2. Entre ellas, encuentro muy interesante el Amazon CloudWatch, que nos permitirá monitorear los trabajos y el rendimiento de los procesos MapReduce que ejecutemos en EC2.

Información útil en el blog de Cloudera

martes, mayo 19th, 2009

La gente de Cloudera frecuentemente publica información que nos será de gran utilidad en la materia. Por ejemplo, hay una entrada que ayuda a despejar muchas dudas comunes sobre Hadoop y otra que proporciona 10 tips para desarrolladores que deseen usar MapReduce (Hadoop).

Microsoft usa Hadoop

lunes, mayo 11th, 2009

En un comentario en este blog, Romeo Cabrera enlazó una noticia sobre el nuevo proyecto de búsqueda Web de Microsoft: Kumo. Con su nueva máquina de búsquedas Microsoft busca reposicionarse en el mercado de las búsquedas Web, liderado por Google y Yahoo!. Después de ocupar un distante tercer puesto por mucho tiempo, por fin se han dado cuenta que el enfoque MapReduce/GFS/BigTable de Google (el cual inspiró la combinación open source Hadoop/HDFS/HBase financiada principalmente por Yahoo!) es actualmente la mejor manera de atacar el problema del procesamiento masivo de datos (crucial para búsquedas Web).

En el 2007 Yahoo! logró mejorar considerablemente sus búsquedas y consecuentemente recuperar parte del mercado. Un elemento clave en el rediseño de las búsquedas de Yahoo! fue la adopción de Hadoop y otras tecnologías open source inspiradas en los desarrollos (propietarios) de Google. El resultado fue bueno para Yahoo! pero malo para Microsoft, que continuó perdiendo terreno. Como solución al problema, Microsoft intentó comprar Yahoo! en el 2008, pero la compra no se concretó. En vista de esto, vemos ahora a Microsoft invirtiendo en Kumo y cediendo por fin ante las ventajas del open source.

Difusión sobre Hadoop

miércoles, abril 22nd, 2009

Allan Avendaño nos ayudó en la difusión del uso de Hadoop para ambientes de cloud computing, dictando una charla en el Flisol. El resumen, material de la charla y hoja de vida de Allan están disponibles en la página del evento.