Distribué Travail de planification, de gestion et de reporting
J'ai récemment eu un jouer avec Hadoop et a été impressionné de planification, de gestion et de reporting des tâches MapReduce. Il apparaît pour la distribution et l'exécution de nouveaux emplois tout à fait transparente, permettant au développeur de se concentrer sur la mise en œuvre de leurs emplois.
Je me demande si quelque chose existe dans le Java domaine de l'exécution distribué des emplois qui ne sont pas facilement exprimé comme MapReduce problèmes? Par exemple:
- Des emplois qui exigent des tâches de coordination et de synchronisation. Par exemple, il peut s'agir de l'exécution séquentielle des tâches pourtant, il est possible d'exécuter certaines tâches simultanément:
.-- B --. .--A --| |--. | '-- C --' | Start --| |-- Done | | '--D -------------'
- CPU intensive des tâches que vous souhaitez distribuer mais ne fournit pas de sorties de réduction de la conversion d'image/redimensionnement par exemple.
Donc, il y a un framework Java/plate-forme qui fournit un environnement informatique réparti? Ou est ce genre de chose acceptable/réalisable à l'aide de Hadoop - et si oui, existe-il des modèles/lignes directrices pour ces sortes d'emplois?
OriginalL'auteur teabot | 2009-12-16
Vous devez vous connecter pour publier un commentaire.
Depuis, j'ai trouvé Spring Batch et Spring Batch Intégration qui semblent s'adresser à beaucoup de mes exigences. Je vais vous laisser savoir comment je reçois sur.
OriginalL'auteur teabot
Prendre un coup d'oeil à Quartz. Je pense qu'il prend en charge des choses comme la gestion de travaux à distance et le regroupement de plusieurs machines pour l'exécution des travaux.
OriginalL'auteur Upgradingdave
Je suppose que vous êtes à la recherche d'un moteur de workflow pour les tâches gourmandes en CPU (également savoir "scientifique flux de travail", par exemple http://www.extreme.indiana.edu/swf-survey). Mais je ne suis pas sûr de savoir comment distribué voulez-vous qu'il soit. Habituellement, tous les moteurs de workflow ont un "single point of failure".
OriginalL'auteur Alexey Kalmykov
Je crois que pas mal de problèmes, peut être exprimé comme la carte-réduire les problèmes.
Pour les problèmes que vous ne pouvez pas modifier pour l'adapter à la structure de votre pouvez regarder la mise en place de votre propre utilisation de Java ExecutorService. Mais il sera limité à une JVM et il sera très faible niveau. Il facilitera la coordination et la synchronisation.
OriginalL'auteur Fried Hoeben
ProActive Planificateur semble pour répondre à vos exigences, en particulier le complexe de flux de travail que vous avez mentionné avec des tâches de coordination.
Il est open source et basé sur Java. Vous pouvez l'utiliser pour exécuter quoi que ce soit, Hadoop emplois, scripts, code Java,...
Disclaimer: je travaille pour le société derrière elle
OriginalL'auteur Youri
Essayer Redisson cadre. Il fournit facile d'api à exécuter et à l'annexe
java.util.concurrent.Callable
etjava.lang.Runnable
tâches. Voici de la documentation sur distribué Exécuteur testamentaire de service et Le planificateur de serviceOriginalL'auteur Nikita Koksharov