Планировщик заданий Java с открытым исходным кодом: удаленное взаимодействие, распределение нагрузки, отработка отказа, зависимость DAG?
Я ищу Java Job Scheduler с открытым исходным кодом, который позволяет отправлять различные виды работ (не только с флопом) и распределяет их по многим машинам. Он также должен отслеживать задания и повторять попытки на разных узлах в случае сбоя любого задания или сбоя подчиненного узла. Я также был бы признателен за распределение нагрузки, аналогичное OpenMP или MPI. В идеале вы должны быть в состоянии передать граф зависимостей Job, и задания будут обрабатываться топологически упорядоченным образом, и параллелизация должна выполняться, где это возможно.
Самое близкое совпадение, которое я знаю, это Quartz, но это позволяет планировать только отдельные задания по времени, и в нем нет возможностей удаленного взаимодействия, отработки отказа, балансировки нагрузки и обработки зависимостей.
Такое решение может быть построено поверх Quartz и MOM-сервера, например, ActiveMQ, но я хотел бы убедиться, что сначала ничего нет, прежде чем создавать это.
Вероятно, подойдет и порт MapReduce для Java.