2015-11-30 1 views
0

Je suis la programmation de mon spéculateur personnalisé, j'ai examiné la documentation et par défaut est "DefaultSpeculator.java" et est défini dans la classe "MRAppMaster.java" (function createSpeculator()) dans le noyau de Hadoop. Je veux savoir si vous pouvez mettre à jour/modifier le spéculateur en cours d'exécution lors de l'exécution de mon travail, car j'ai besoin de tester entre environ 5 spéculateurs.Exécuter spéculateur personnalisé dans Hadoop 2.6.0

Merci !!!

Répondre

1

L'exécution spéculative peut être activée et désactivée pour les tâches de mappage et réduire les tâches à l'échelle du cluster ou par tâche.

Le spéculateur est instancié dans MRAppMaster (maître d'application de Map-Reduce). Comme vous l'avez mentionné dans votre question, suivant est le morceau de code en fonction MRAppMaster::serviceInit(), qui instancie le spéculateur:

if (conf.getBoolean(MRJobConfig.MAP_SPECULATIVE, false) 
     || conf.getBoolean(MRJobConfig.REDUCE_SPECULATIVE, false)) { 
    //optional service to speculate on task attempts' progress 
    speculator = createSpeculator(conf, context); 
    addIfService(speculator); 
} 

Il vérifie l'JobConfig, pour voir si l'exécution spéculative est activée pour mapper ou réduire les tâches et crée le spéculateur.

Depuis que le spéculateur est créé à l'intérieur du MRAppMaster, vous pouvez activer votre spéculateur personnalisé pour chaque travail.

Après sont les propriétés d'exécution spéculatives:

  • mapreduce.map.speculative: Activer l'exécution spéculative pour les tâches de carte
  • mapreduce.reduce.speculative: Activer l'exécution spéculative pour réduire tâches
  • yarn.app.mapreduce.am.job.speculator.class: Classe de spéculateur
  • yarn.app.mapreduce.am.job.task.estimator.class: Classe de l'estimateur. Ceci est utilisé par le spéculateur pour estimer le temps d'exécution d'une tâche.
+0

merci pour la réponse !! – WilD