GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come eseguire il programma Hadoop MapReduce su Ubuntu 16.04

In questo blog, ti mostrerò come eseguire un programma MapReduce. MapReduce è una delle parti principali di Apache Hadoop, è il livello di elaborazione di Apache Hadoop. Quindi, prima di mostrarti come eseguire un programma MapReduce, lascia che ti spieghi brevemente MapReduce.

MapReduce è un sistema per l'elaborazione parallela di grandi set di dati. MapReduce riduce i dati in risultati e crea un riepilogo dei dati. Un programma mapreduce ha due parti:mappatore e riduttore. Dopo che il mappatore ha terminato il suo lavoro, iniziano solo i riduttori.

Mapper : Mappa le coppie chiave/valore di input su un insieme di coppie chiave/valore intermedie.

Riduttore : Riduce un insieme di valori intermedi che condividono una chiave a un insieme più piccolo di valori.

Fondamentalmente, nel programma wordcount mapreduce, forniamo file di input - qualsiasi file di testo, come input. All'avvio del programma mapreduce, di seguito sono riportati i processi che attraversa:

Separazione : Divide in parole ogni riga nel file di input.

Mappatura : Forma una coppia di valori chiave, dove word è la chiave e 1 è il valore assegnato a ciascuna chiave.

Rimescolamento : Le coppie di valori chiave comuni vengono raggruppate insieme.

Ridurre : I valori di chiavi simili vengono sommati.

Esecuzione del programma MapReduce

Un programma MapReduce è scritto in Java. E principalmente Eclipse IDE viene utilizzato per la programmazione dagli sviluppatori. Quindi, in questo blog, ti mostrerò come esportare un programma mapreduce in un file jar dall'IDE di Eclipse ed eseguirlo su un cluster Hadoop.

Il mio programma MapReduce è presente nel mio IDE Eclipse.

Ora per eseguire questo programma MapReduce su un cluster hadoop, esporteremo il progetto come file jar. Seleziona l'opzione File in Eclipse ide e fai clic su Esporta. Nell'opzione Java, seleziona Jar file e fai clic su Avanti.

Seleziona il progetto Wordcount e fornisci il percorso e il nome del file jar, lo tengo wordcount.jar, fai clic su Avanti due volte.

Ora fai clic su Sfoglia e seleziona la classe principale e infine fai clic su Fine per creare il file jar. Nel caso in cui ricevi un avviso come di seguito, fai semplicemente clic su OK.

Controlla se il tuo cluster Hadoop è attivo e funzionante o meno.

Comando: jps

hadoop@hadoop-VirtualBox:~$ jps

3008 NodeManager

3924 Jps

2885 ResourceManager

2505 DataNode

3082 JobHistoryServer

2716 SecondaryNameNode

2383 NameNode

hadoop@hadoop-VirtualBox:~$

Abbiamo il nostro file di input su HDFS per il programma di conteggio parole.

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:~$

Ora esegui il file wordcount.jar usando il comando seguente.

Nota: Dato che abbiamo selezionato la classe principale durante l'esportazione di wordcount.jar , non c'è bisogno di menzionare la classe principale nel comando.

Comando: hadoop jar conteggio parole.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:~$

Dopo che il programma è stato eseguito correttamente, vai su HDFS e controlla il file della parte all'interno della directory di output.

Di seguito è riportato l'output del programma di conteggio parole.

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:~$

Conclusione

Questo esempio qui è in Java, puoi anche scrivere un programma MapReduce in Python. Abbiamo eseguito con successo un programma Hadoop MapReduce su un cluster Hadoop su Ubuntu 16.04. I passaggi per eseguire un programma Mapreduce su altri ambienti Linux rimangono gli stessi. Assicurati che prima di eseguire il programma, il tuo cluster Hadoop sia attivo e funzionante, inoltre il tuo file di input dovrebbe essere presente in HDFS.


Ubuntu
  1. Come modificare il nome host su Ubuntu 18.04

  2. Come aggiungere un file di scambio su Ubuntu

  3. Come compilare ed eseguire il programma C in Ubuntu

  4. Come installare un programma Gui su Ubuntu Server?

  5. Come installare g++ su Ubuntu

Come installare CouchPotato su Ubuntu

Come eseguire file .bin e .run in Ubuntu

Come rinominare i file in Ubuntu 20.04

Come eseguire programmi Java in Ubuntu

Come installare Monitorix su Ubuntu 16.04

Come eseguire Memtest in Ubuntu 22.04