GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment exécuter le programme Hadoop MapReduce sur Ubuntu 16.04

Dans ce blog, je vais vous montrer comment exécuter un programme MapReduce. MapReduce est l'une des parties centrales d'Apache Hadoop, c'est la couche de traitement d'Apache Hadoop. Donc, avant de vous montrer comment exécuter un programme MapReduce, laissez-moi vous expliquer brièvement MapReduce.

MapReduce est un système de traitement parallèle de grands ensembles de données. MapReduce réduit les données en résultats et crée un résumé des données. Un programme mapreduce comporte deux parties - mappeur et réducteur. Une fois que le mappeur a terminé son travail, seuls les réducteurs démarrent.

Mappeur : Il mappe les paires clé/valeur d'entrée à un ensemble de paires clé/valeur intermédiaires.

Réducteur : Il réduit un ensemble de valeurs intermédiaires qui partagent une clé à un ensemble plus petit de valeurs.

Fondamentalement, dans le programme wordcount mapreduce, nous fournissons un ou plusieurs fichiers d'entrée - n'importe quel fichier texte, en entrée. Lorsque le programme mapreduce démarre, voici les processus par lesquels il passe :

Fraction : Il divise chaque ligne du fichier d'entrée en mots.

Cartographie : Il forme une paire clé-valeur, où mot est la clé et 1 est la valeur attribuée à chaque clé.

Mélange : Les paires clé-valeur communes sont regroupées.

Réduire : Les valeurs des clés similaires sont additionnées.

Exécution du programme MapReduce

Un programme MapReduce est écrit en Java. Et surtout Eclipse IDE est utilisé pour la programmation par les développeurs. Donc, dans ce blog, je vais vous montrer comment exporter un programme mapreduce dans un fichier jar à partir d'Eclipse IDE et l'exécuter sur un cluster Hadoop.

Mon programme MapReduce est là dans mon Eclipse IDE.

Maintenant, pour exécuter ce programme MapReduce sur un cluster hadoop, nous allons exporter le projet sous forme de fichier jar. Sélectionnez l'option Fichier dans eclipse ide et cliquez sur Exporter. Dans l'option Java, sélectionnez le fichier Jar et cliquez sur Suivant.

Sélectionnez le projet Wordcount et donnez le chemin et le nom du fichier jar, je le garde wordcount.jar, Cliquez deux fois sur Suivant.

Maintenant, cliquez sur Parcourir et sélectionnez la classe principale et enfin cliquez sur Terminer pour créer le fichier jar. Si vous recevez un avertissement comme ci-dessous, cliquez simplement sur OK.

Vérifiez si votre cluster Hadoop est opérationnel et fonctionne ou non.

Commande : jps

hadoop@hadoop-VirtualBox:~$ jps

3008 NodeManager

3924 Jps

2885 ResourceManager

2505 DataNode

3082 JobHistoryServer

2716 SecondaryNameNode

2383 NameNode

hadoop@hadoop-VirtualBox:~$

Nous avons notre fichier d'entrée sur HDFS pour le programme de comptage de mots.

hadoop@hadoop-VirtualBox:~$ hdfs dfs -put input /

hadoop@hadoop-VirtualBox:~$ hdfs dfs -cat /input

This is my first mapreduce test

This is wordcount program

hadoop@hadoop-VirtualBox:~$

Exécutez maintenant le fichier wordcount.jar en utilisant la commande ci-dessous.

Remarque : Puisque nous avons sélectionné la classe principale lors de l'exportation de wordcount.jar , il n'est donc pas nécessaire de mentionner la classe principale dans la commande.

Commande : hadoop jar wordcount.jar /input /output

hadoop@hadoop-VirtualBox:~$ hadoop jar wordcount.jar /input /output

16/11/27 22:52:20 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:
8032

16/11/27 22:52:22 WARN mapreduce.JobResourceUploader: Hadoop command-line option 
parsing not performed. Implement the Tool interface and execute your application 
with ToolRunner to remedy this.

16/11/27 22:52:27 INFO input.FileInputFormat: Total input paths to process : 1

16/11/27 22:52:28 INFO mapreduce.JobSubmitter: number of splits:1

16/11/27 22:52:29 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_14802
67251741_0001

16/11/27 22:52:32 INFO impl.YarnClientImpl: Submitted application application_14802
67251741_0001

16/11/27 22:52:33 INFO mapreduce.Job: The url to track the job: http://hadoop-Virtu
alBox:8088/proxy/application_1480267251741_0001/

16/11/27 22:52:33 INFO mapreduce.Job: Running job: job_1480267251741_0001

16/11/27 22:53:20 INFO mapreduce.Job: Job job_1480267251741_0001 running in uber mo
de : false

16/11/27 22:53:20 INFO mapreduce.Job:  map 0% reduce 0%

16/11/27 22:53:45 INFO mapreduce.Job:  map 100% reduce 0%

16/11/27 22:54:13 INFO mapreduce.Job:  map 100% reduce 100%

16/11/27 22:54:15 INFO mapreduce.Job: Job job_1480267251741_0001 completed 
successfully

16/11/27 22:54:16 INFO mapreduce.Job: Counters: 49

          File System Counters

                    FILE: Number of bytes read=124

                    FILE: Number of bytes written=237911

                    FILE: Number of read operations=0

                    FILE: Number of large read operations=0

                    FILE: Number of write operations=0

                    HDFS: Number of bytes read=150

                    HDFS: Number of bytes written=66

                    HDFS: Number of read operations=6

                    HDFS: Number of large read operations=0

                    HDFS: Number of write operations=2

          Job Counters

                    Launched map tasks=1

                    Launched reduce tasks=1

                    Data-local map tasks=1

                    Total time spent by all maps in occupied slots (ms)=21062

                    Total time spent by all reduces in occupied slots (ms)=25271

                    Total time spent by all map tasks (ms)=21062

                    Total time spent by all reduce tasks (ms)=25271

                    Total vcore-milliseconds taken by all map tasks=21062

                    Total vcore-milliseconds taken by all reduce tasks=25271

                    Total megabyte-milliseconds taken by all map tasks=21567488

                    Total megabyte-milliseconds taken by all reduce tasks=25877504

          Map-Reduce Framework

                    Map input records=2

                    Map output records=10

                    Map output bytes=98

                    Map output materialized bytes=124

                    Input split bytes=92

                    Combine input records=0

                    Combine output records=0

                    Reduce input groups=8

                    Reduce shuffle bytes=124

                    Reduce input records=10

                    Reduce output records=8

                    Spilled Records=20

                    Shuffled Maps =1

                    Failed Shuffles=0

                    Merged Map outputs=1

                    GC time elapsed (ms)=564

                    CPU time spent (ms)=4300

                    Physical memory (bytes) snapshot=330784768

                    Virtual memory (bytes) snapshot=3804205056

                    Total committed heap usage (bytes)=211812352

          Shuffle Errors

                    BAD_ID=0

                    CONNECTION=0

                    IO_ERROR=0

                    WRONG_LENGTH=0

                    WRONG_MAP=0

                    WRONG_REDUCE=0

          File Input Format Counters

                    Bytes Read=58

          File Output Format Counters

                    Bytes Written=66

hadoop@hadoop-VirtualBox:~$

Une fois le programme exécuté avec succès, accédez à HDFS et vérifiez le fichier de pièce dans le répertoire de sortie.

Vous trouverez ci-dessous la sortie du programme de comptage de mots.

hadoop@hadoop-VirtualBox:~$ hdfs dfs -cat /output/part-r-00000

 This    2
 first     1
 is        2
 mapreduce   1
 my      1
 program        1
 test     1
 wordcount     1
 hadoop@hadoop-VirtualBox:~$

Conclusion

Cet exemple ici est en Java, vous pouvez également écrire un programme MapReduce en python. Nous avons exécuté avec succès un programme Hadoop MapReduce sur un cluster Hadoop sur Ubuntu 16.04. Les étapes pour exécuter un programme Mapreduce sur d'autres environnements Linux restent les mêmes. Assurez-vous qu'avant d'exécuter le programme, votre cluster Hadoop doit être opérationnel et votre fichier d'entrée doit également être présent dans HDFS.


Ubuntu
  1. Comment changer le nom d'hôte sur Ubuntu 18.04

  2. Comment ajouter un fichier d'échange sur Ubuntu

  3. Comment compiler et exécuter le programme C dans Ubuntu

  4. Comment installer un programme Gui sur Ubuntu Server ?

  5. Comment installer g ++ sur Ubuntu

Comment installer CouchPotato sur Ubuntu

Comment exécuter des fichiers .bin et .run dans Ubuntu

Comment renommer des fichiers dans Ubuntu 20.04

Comment exécuter des programmes Java dans Ubuntu

Comment installer Monitorix sur Ubuntu 16.04

Comment exécuter Memtest dans Ubuntu 22.04