Tutorial 1: Utiliser Combiner

Hadoop

Tutorial 1: Utiliser Combiner

 

Au début, on commence par un simple travail de Hadoop.

 

On suppose qu’on a de gros fichiers où chaque ligne contient le degré de température et qu’on veut obtenir le maximum et le minimum.

 

Je vous entends dire pourquoi map réduire je peux le faire dans un programme Java séquentiel!

 

ok alors combien de temps faut-il pour obtenir le résultat d’un fichier de plus de 4 Go par exemple !!

 

On commence par l’installation de Hadoop

 

Ensuite, vous devriez démarrer le démon Hadoop en appelant ces scripts:

  • start-dfs.sh
  • start-yarn.sh

 

Vous devez créer des répertoires dans hdfs et copier les fichiers d’entrée dans votre système de fichiers Hadoop local.

 

Alors téléchargez ces deux fichiers d’entrée (ce sont de petits fichiers juste pour les tests)

 

Après cela, créez des chemins dans hdfs en appelant: hdfs dfs -mkdir -p / training / lab1 / input /

 

Ensuite, copiez-les sur hdfs en appelant cette commande : hdfs dfs -copyFromLocal / training / lab1 / input /

 

Par exemple, si vous avez téléchargé les fichiers dans Téléchargements / lab1 / input /, la ligne de commande doit alors être: hdfs dfs -copyFromLocal ~ / Téléchargements / lab1 / input / * / training / lab1 / input /

 

Maintenant que tout est déjà configuré, commencez le codage.

 

 

Vous voyez maintenant le mappeur, bien avant de creuser dans les codes, une petite explication sera meilleure.

 

Dans notre cas, le rôle du mappeur est de filtrer les données et de préparer les données pour les réducteurs.

 

 

Exportez le fichier jar en tant que fichier exécutable et spécifiez MinMaxJob en tant que classe principale, puis ouvrez le terminal et exécutez le travail en appelant: hadoop jar nameOfTheJar.jar

 

Par exemple, si vous attribuez à jar le nom lab1.jar, la ligne de commande sera : hadoop jar lab1.jar

 

Vous pouvez consulter le résultat en appelant: hdfs dfs -cat / training / lab1 / output / part-r-00000

 

Après avoir codé ce premier laboratoire, examinez-le et essayez de l’optimiser.

 

Dans le travail précédent, on a deux fichiers et chaque fichier sera traité par un mappeur

 

NB: si la taille du fichier est supérieure à 128 Mo, le fichier sera divisé en plusieurs parties et chaque partie sera traitée par un mappeur.

 

Chaque mappeur écrit une paire de (clé, valeur) (key, value) qui sera transférée via le réseau aux réducteurs.

 

Qu’en est-il de limiter la taille des données à transférer? Peut-on par exemple compter les valeurs min et max dans chaque partie?

 

Oui on peut le faire. Mais pas à l’intérieur du mappeur, car la fonction map sera appelée sur chaque ligne et on ne sait pas si la valeur est min ou max…

 

C’est ainsi que Combiner entre en action. Le rôle du combineur est de prendre certaines mesures pour limiter la taille des données à transférer (dans notre cas, compter min et max).

 

 

Et bien sûr, nous devons parler du combiner

 

 

 

Avatar for Nizar Ellouze

Author: Nizar Ellouze

No Comments

Post a Comment

Comment
Name
Email
Website