Distribución, gestión e informes de trabajos distribuidos

Recientemente tuve un juego conHadoop y quedé impresionado con su programación, administración e informe 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.

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 de tareas y sincronización. Por ejemplo, pueden involucrar la ejecución secuencial de tareas, pero es factible ejecutar algunas tareas simultáneamente:

               .-- B --.
        .--A --|       |--.
        |      '-- C --'  |
Start --|                 |-- Done
        |                 |
        '--D -------------'

Tareas intensivas de CPU que le gustaría distribuir pero que no proporcionan ninguna salida para reducir, por ejemplo, conversión / cambio de tamaño de imagen.

Entonces, ¿existe un marco / plataforma Java que proporcione tal entorno informático distribuido? ¿O es este tipo de cosas aceptables / alcanzables utilizando Hadoop? Y si es así, ¿hay patrones / pautas para este tipo de trabajos?

Respuestas a la pregunta(6)

Su respuesta a la pregunta