Buenas,
Spark
1) Spark es una generalización de MapReduce que va más allá
2) Hace uno intensivo de la memoria, pero no es un sistema de procesado exclusivamente en memoria. De hecho, si el dataset no cabe en memoria, se usa disco sin problemas.
3) Al menos para el input y el output, se hace uso del HDFS. Las partes intermedias se procesan usando Spark.
4) Lo bueno, es que los datos en ciertos casos se pueden cachear en memoria, y no se envían por red si no es necesario. Esto es muy bueno para algoritmos iterativos. Especialmente para algoritmos de grafos. Implementar un Pregel con Spark es trivial.
5) Sin embargo, hay muchos otros algoritmos en los que la representación de los datos ha de cambiar entre fase y fase (primero agrupados de una manara, luego de otra, etc) en las que no aporta mucho tener los datos en memoria... al final habrá fase de suffle muy potente a lo MapReduce.
6) Programado con Scala.
7) Es batch oriented, como Hadoop.
En conclusión, es algo bastante interesante sobre todo para algoritmos de Grafos, donde se produce una aceleración muy importante, pero no lo veo algo tan diferente como para merecer la pena desde el punto de vista generalista, a no ser que sea en casos muy concretos. Más aún con la tendencia en Hadoop de virar hacia Tez (
http://wiki.apache.org/incubator/TezProposal). ¿Qué opináis? ¿Habéis usado Spark? ¿Para qué casos?
Oferta Big Data
Por otro lado, me gustaría comentaros que ha llegado a mis oidos la posibilidad de una oferta de trabajo en una gran multinacional en Madrid en el terreno del Big Data. Me parece una oferta muy interesante. Si alguien está interesado, que se ponga en contacto privadamente conmigo.
Un saludo!
Iván