GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak spustit program Hadoop MapReduce na Ubuntu 16.04

V tomto blogu vám ukážu, jak spustit program MapReduce. MapReduce je jednou ze základních částí Apache Hadoop, je to zpracovatelská vrstva Apache Hadoop. Než vám tedy ukážu, jak spustit program MapReduce, dovolte mi stručně vysvětlit MapReduce.

MapReduce je systém pro paralelní zpracování velkých datových souborů. MapReduce redukuje data na výsledky a vytváří souhrn dat. Program mapreduce má dvě části – mapovač a redukci. Poté, co mapper dokončí svou práci, spustí se pouze redukce.

Mapovač: Mapuje vstupní páry klíč/hodnota na sadu mezilehlých párů klíč/hodnota.

Redukce: Redukuje sadu mezilehlých hodnot, které sdílejí klíč, na menší sadu hodnot.

V podstatě v programu wordcount mapreduce poskytujeme vstupní soubor(y) - libovolný textový soubor, jako vstup. Když se program mapreduce spustí, níže jsou procesy, kterými prochází:

Rozdělení: Rozdělí každý řádek ve vstupním souboru na slova.

Mapování: Tvoří pár klíč-hodnota, kde slovo je klíč a 1 je hodnota přiřazená každému klíči.

Náhodné přehrávání: Společné páry klíč-hodnota se seskupí.

Snížení: Hodnoty podobných klíčů se sečtou.

Spuštění programu MapReduce

Program MapReduce je napsán v Javě. A většinou vývojáři používají k programování Eclipse IDE. V tomto blogu vám tedy ukážu, jak exportovat program mapreduce do jar souboru z Eclipse IDE a spustit jej na clusteru Hadoop.

Můj program MapReduce je v mém Eclipse IDE.

Nyní, abychom spustili tento program MapReduce na hadoop clusteru, exportujeme projekt jako soubor jar. Vyberte možnost Soubor v eclipse ide a klikněte na Exportovat. V možnosti Java vyberte soubor Jar a klikněte na Další.

Vyberte projekt Wordcount a zadejte cestu a název souboru jar, ponechám si jej wordcount.jar, dvakrát klikněte na Další.

Nyní klikněte na Procházet a vyberte hlavní třídu a nakonec klikněte na Dokončit, abyste vytvořili soubor jar. V případě, že se zobrazí varování, jak je uvedeno níže, klikněte na OK.

Zkontrolujte, zda je váš cluster Hadoop aktivní nebo ne.

Příkaz: jps

hadoop@hadoop-VirtualBox:~$ jps

3008 NodeManager

3924 Jps

2885 ResourceManager

2505 DataNode

3082 JobHistoryServer

2716 SecondaryNameNode

2383 NameNode

hadoop@hadoop-VirtualBox:~$

Máme náš vstupní soubor na HDFS pro program počítání slov.

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

Nyní spusťte soubor wordcount.jar pomocí níže uvedeného příkazu.

Poznámka: Protože jsme vybrali hlavní třídu při exportu wordcount.jar , není třeba hlavní třídu v příkazu zmiňovat.

Příkaz: 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:~$

Po úspěšném spuštění programu přejděte do HDFS a zkontrolujte soubor součásti ve výstupním adresáři.

Níže je výstup programu wordcount.

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

Závěr

Tento příklad je v Javě, program MapReduce můžete napsat i v pythonu. Úspěšně jsme spustili program Hadoop MapReduce na Hadoop Cluster na Ubuntu 16.04. Kroky ke spuštění programu Mapreduce v jiných prostředích Linuxu zůstávají stejné. Ujistěte se, že před spuštěním programu by měl být váš cluster Hadoop spuštěn a také váš vstupní soubor by měl být přítomen v HDFS.


Ubuntu
  1. Jak přidat odkládací soubor na Ubuntu

  2. Jak zkompilovat a spustit program C v Ubuntu

  3. Jak nainstalovat program One Gui na server Ubuntu?

  1. Jak změnit název hostitele na Ubuntu 18.04

  2. Jak nainstalovat Hadoop na Ubuntu 18.04 nebo 20.04

  3. Jak nainstalovat g ++ na Ubuntu

  1. Jak odstranit soubor na Ubuntu Linux

  2. Jak nastavit Hadoop Multi-Node Cluster na Ubuntu

  3. Jak spustit soubor Jar v Ubuntu Linux