Распределенное планирование заданий, управление ими и отчетность

StackOverflow https://stackoverflow.com/questions/1914884

Вопрос

Недавно я поиграл с Хадуп и был впечатлен его планированием, управлением и отчетностью заданий MapReduce.По-видимому, это делает распространение и выполнение новых заданий довольно плавным, позволяя разработчику сконцентрироваться на реализации своих заданий.

Мне интересно, существует ли что-нибудь в домене Java для распределенного выполнения заданий, которые нелегко выразить как проблемы MapReduce?Например:

  • Задания, требующие координации задач и синхронизации.Например, они могут включать последовательное выполнение задач, но некоторые задачи возможно выполнять одновременно:

                   .-- B --.
            .--A --|       |--.
            |      '-- C --'  |
    Start --|                 |-- Done
            |                 |
            '--D -------------'
    
  • Задачи, требующие больших затрат процессора, которые вы хотели бы распространять, но не предоставляющие никаких результатов для уменьшения - например, преобразование изображений / изменение размера.

Итак, существует ли Java-фреймворк / платформа, которая предоставляет такую распределенную вычислительную среду?Или такого рода вещи приемлемы / достижимы с использованием Hadoop - и если да, существуют ли какие-либо шаблоны / рекомендации для такого рода заданий?

Это было полезно?

Решение

С тех пор я нашел Весенняя партия и Интеграция весенних партий которые, по-видимому, удовлетворяют многим моим требованиям.Я дам вам знать, как у меня дела.

Другие советы

Взгляните на Кварц.Я думаю, что он поддерживает такие вещи, как удаленное управление заданиями и кластеризация нескольких машин для выполнения заданий.

Я предполагаю, что вы ищете механизм документооборота для задач с интенсивным использованием процессора (также знаете "научный документооборот", например http://www.extreme.indiana.edu/swf-survey).Но я не уверен, насколько распространенным вы хотите его видеть.Обычно все механизмы документооборота имеют "единую точку отказа".

Я полагаю, что довольно много проблем можно выразить в виде проблем с уменьшением карты.

Для проблем, которые вы не можете изменить, чтобы они соответствовали структуре, вы можете посмотреть на настройку своих собственных с помощью Java Служба исполнителя.Но это будет ограничено одной JVM, и это будет довольно низкий уровень.Однако это позволит упростить координацию и синхронизацию.

Упреждающий Планировщик кажется, соответствует вашим требованиям, особенно сложным рабочим процессам, которые вы упомянули при координации задач.Он имеет открытый исходный код и основан на Java.Вы можете использовать его для запуска чего угодно, заданий Hadoop, скриптов, Java-кода...

Отказ от ответственности:Я работаю на Компания за этим

Попробуй Редиссон рамки.Он предоставляет простой API для выполнения и планирования java.util.concurrent.Callable и java.lang.Runnable задачи.Вот документация о распределенном Услуги исполнителя и Служба планировщика

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top