Sommaire

MapReduce du point de vue du développeur Java

Bien que les exemples de cette section soient principalement issus de programmes écrits en Java, les principes de fonctionnement de MapReduce restent valables quel que soit le langage de programmation utilisé.

1. Les entrées-sorties

Dans MapReduce, les données sont toujours lues ou écrites selon le format <key, value> (<clef, valeur>). Cette façon de procéder peut paraître réductrice, mais en fait :

  • On s’aperçoit à l’usage qu’il est possible, avec un peu d’expérience et d’astuce, de traiter beaucoup de problèmes de cette manière, y compris, par exemple, la recherche du plus court chemin dans un graphe orienté acyclique.

  • Le fait d’imposer une structure unique et simple aux enregistrements, tant en lecture qu’en écriture, contribue à l’efficacité d’Hadoop au niveau des entrées-sorties.

Les données lues par le mapper sont définies au niveau du driver. La définition des données comprend :

  • Leur localisation (fichier ou répertoire).

  • Le type des enregistrements, qui est défini par la InputFormatclasse InputFormat.

  • La détermination de la taille des InputSplits : InputSplitun InputSplit définit le volume des données qui seront lues à chaque opération de lecture :

  • L’InputSplit a le plus souvent la taille d’un ...