Hace poco tuve un juego con Hadoop y quedé impresionado con su programación, administración y generación de informes de los trabajos de MapReduce. Parece que la distribución y ejecución de nuevos trabajos es bastante fluida, lo que permite al desarrollador concentrarse en la implementación de sus trabajos.Programación, administración e informes de trabajos distribuidos
Me pregunto si existe algo en el dominio de Java para la ejecución distribuida de trabajos que no se expresan fácilmente como problemas de MapReduce. Por ejemplo:
Trabajos que requieren coordinación y sincronización de tareas. Por ejemplo, es posible que implican la ejecución secuencial de tareas, sin embargo, es factible para ejecutar algunas tareas concurrentemente:
.-- B --. .--A --| |--. | '-- C --' | Start --| |-- Done | | '--D -------------'
CPU tareas intensivas que le gustaría distribuir, pero no proporcionan ninguna salida para reducir - conversión de la imagen/cambio de tamaño, por ejemplo.
Entonces, ¿existe un marco/plataforma Java que proporcione un entorno informático tan distribuido? ¿O este tipo de cosas son aceptables/alcanzables con Hadoop? De ser así, ¿existen patrones/pautas para este tipo de trabajos?
¿Cómo funciona Spring Batch para ayudar a paralelizar el trabajo en un clúster como lo hace Hadoop? – Marquez