web-dev-qa-db-fra.com

méthodes de configuration et de nettoyage du mappeur/réducteur dans Hadoop MapReduce

Les méthodes d'installation et de nettoyage sont-elles appelées dans chaque tâche de mappeur et de réducteur, respectivement? Ou sont-ils appelés une seule fois au début des tâches générales de mappeur et de réducteur? 

18
kee

Ils sont appelés pour chaque tâche. Par conséquent, si vous avez 20 mappeurs en cours d'exécution, la configuration/le nettoyage sera appelé pour chaque tâche.

Un des pièges est la méthode d'exécution standard pour Mapper et Reducer n'intercepte pas les exceptions autour des méthodes map/reduction. Ainsi, si une exception est levée dans ces méthodes, la méthode de nettoyage ne sera pas appelée.

21
Chris White

Une clarification est utile. Les méthodes d'installation/de nettoyage sont utilisées pour l'initialisation et le nettoyage au niveau de la tâche. Dans une tâche, la première initialisation a lieu avec un seul appel à la méthode setup (), puis tous les appels à la fonction map () [ou réducteur ()] sont effectués. Après cela, un autre appel unique sera fait à la méthode cleanup () avant de quitter la tâche.

5
user3163904

Elle s'appelle tâche par mappeur ou tâche de réduction. Voici le code hadoop.

public void run(Context context) throws IOException, InterruptedException {
    setup(context);
    try {
      while (context.nextKey()) {
        reduce(context.getCurrentKey(), context.getValues(), context);
      }
    } finally {
      cleanup(context);
    }
  }
3
KaiZhao

Selon la documentation de mapreduce , La configuration et le nettoyage sont appelés pour chaque tâche de mappeur et de réducteur.

1
Dheeraj Verma

sur le réducteur, vous pouvez au travail faire job.setNumReduceTasks (1); et ainsi, la configuration et le nettoyage du réducteur ne seront exécutés qu'une seule fois.

1
Astronaut