Puis-je forcer mes réducteurs (phase de copie) à démarrer uniquement lorsque tous les mappeurs sont terminés

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

Question

J'ai un job hadoop avec une phase de carte assez longue et je souhaite que d'autres jobs courts soient exécutés en priorité. Pour cela, j'ai défini la priorité de mon long travail avec hadoop job -set-priority job_id LOW.

Le problème est que, pour mon long travail, la phase de copie des réducteurs démarre même si seulement 30% de mes tâches cartographiques sont terminées.

Ma grille est alors en quelque sorte bloquée car tous les créneaux de réduction sont occupés par le travail de priorité LOW. Les autres petits travaux peuvent faire leurs phases cartographiques mais ils n'obtiendront jamais de réducteur tant que mon long travail ne sera pas terminé.

Une idée? Merci. J.

Était-ce utile?

La solution

J'ai trouvé la réponse à ma question: il y a un paramètre de conf de travail qui fait exactement le travail:

mapred.reduce.slowstart.completed.maps= 0,90

les tâches de réduction ne commencent que lorsque 90% des cartes sont terminées. La valeur par défaut est 0,05.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top