在Apache Hadoop(多节点群集)中运行Map-Reduce作业
我們將在這里描述在多節點集群中的Apache Hadoop中運行MapReduce Job的過程。 要在多節點群集中設置Apache Hadoop ,可以閱讀設置Apache Hadoop多節點群集 。
為了進行設置,我們必須在每臺計算機上使用以下配置Hadoop:
- 在所有節點的conf / mapred-site.xml中添加以下屬性
注意:最后三個是附加設置,因此我們可以忽略它們。
- 古騰堡項目
為了演示MapReduce,我們將使用WordCount示例作業,該作業讀取文本文件并計算單詞出現的頻率。 輸入是文本文件,輸出是文本文件,其每一行包含一個單詞和出現頻率的計數,以制表符分隔。
從以下站點下載示例輸入,所有電子文本均應采用純文本us-ascii編碼。
- 科學概要,卷。 1(共4個),作者:J。Arthur Thomson
- 達芬奇的筆記本
- 尤利西斯(James Joyce)
- 《孫子兵法》提高了6美分。 卑詩省孫子
- 亞瑟·柯南·道爾爵士的《福爾摩斯歷險記》
- 魔鬼字典,安布羅斯·比爾斯(Ambrose Bierce)
- 大英百科全書,第11版,第4卷,第3部分
請谷歌搜索這些文本。 將每個電子書下載為純文本UTF-8編碼的文本文件,并將文件存儲在所選的本地臨時目錄中,例如/ tmp / gutenberg。 使用以下命令檢查文件:
$ ls -l /tmp/gutenberg/- 接下來,我們在集群中啟動dfs和mapred層
通過發出以下命令jps進行檢查,以檢查數據節點,名稱節點和任務跟蹤器,作業跟蹤器在所有節點中均正常運行。
- 接下來,我們將本地文件(這里是文本文件)復制到Hadoop HDFS
如果文件被成功復制,我們將看到類似以下內容–找到2個項目
drwxr-xr-x – hduser supergroup 0 2013-05-21 14:48 /Users/hduser/gutenberg此外,我們檢查文件系統在/ Users / hduser / gutenberg中的內容:
$ hadoop dfs -ls /Users/hduser/gutenbergFound 7 items-rw-r--r-- 2 hduser supergroup 336705 2013-05-21 14:48 /Users/hduser/gutenberg/pg132.txt -rw-r--r-- 2 hduser supergroup 581877 2013-05-21 14:48 /Users/hduser/gutenberg/pg1661.txt -rw-r--r-- 2 hduser supergroup 1916261 2013-05-21 14:48 /Users/hduser/gutenberg/pg19699.txt -rw-r--r-- 2 hduser supergroup 674570 2013-05-21 14:48 /Users/hduser/gutenberg/pg20417.txt -rw-r--r-- 2 hduser supergroup 1540091 2013-05-21 14:48 /Users/hduser/gutenberg/pg4300.txt -rw-r--r-- 2 hduser supergroup 447582 2013-05-21 14:48 /Users/hduser/gutenberg/pg5000.txt -rw-r--r-- 2 hduser supergroup 384408 2013-05-21 14:48 /Users/hduser/gutenberg/pg972.txt- 我們開始我們的MapReduce工作
讓我們運行MapReduce WordCount示例:
$ hadoop jar hadoop-examples-1.0.4.jar wordcount /Users/hduser/gutenberg /Users/hduser/gutenberg-output注意:假設您已經在HADOOP_HOME目錄中。 如果沒有,
$ hadoop jar ABSOLUTE/PATH/TO/HADOOP/DIR/hadoop-examples-1.0.4.jar wordcount /Users/hduser/gutenberg /Users/hduser/gutenberg-output或者,如果您已經在/ usr / local / hadoop中安裝了Hadoop,
hadoop jar /usr/local/hadoop/hadoop-examples-1.0.4.jar wordcount /Users/hduser/gutenberg /Users/hduser/gutenberg-output輸出如下:
13/05/22 13:12:13 INFO mapred.JobClient: map 0% reduce 0% 13/05/22 13:12:59 INFO mapred.JobClient: map 28% reduce 0% 13/05/22 13:13:05 INFO mapred.JobClient: map 57% reduce 0% 13/05/22 13:13:11 INFO mapred.JobClient: map 71% reduce 0% 13/05/22 13:13:20 INFO mapred.JobClient: map 85% reduce 0% 13/05/22 13:13:26 INFO mapred.JobClient: map 100% reduce 0% 13/05/22 13:13:43 INFO mapred.JobClient: map 100% reduce 50% 13/05/22 13:13:55 INFO mapred.JobClient: map 100% reduce 100% 13/05/22 13:13:59 INFO mapred.JobClient: map 85% reduce 100% 13/05/22 13:14:02 INFO mapred.JobClient: map 100% reduce 100% 13/05/22 13:14:07 INFO mapred.JobClient: Job complete: job_201305211616_0011 13/05/22 13:14:07 INFO mapred.JobClient: Counters: 26 13/05/22 13:14:07 INFO mapred.JobClient: Job Counters 13/05/22 13:14:07 INFO mapred.JobClient: Launched reduce tasks=3 13/05/22 13:14:07 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=118920 13/05/22 13:14:07 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0 13/05/22 13:14:07 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0 13/05/22 13:14:07 INFO mapred.JobClient: Launched map tasks=10 13/05/22 13:14:07 INFO mapred.JobClient: Data-local map tasks=10 13/05/22 13:14:07 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=54620 13/05/22 13:14:07 INFO mapred.JobClient: File Output Format Counters 13/05/22 13:14:07 INFO mapred.JobClient: Bytes Written=1267287 13/05/22 13:14:07 INFO mapred.JobClient: FileSystemCounters 13/05/22 13:14:07 INFO mapred.JobClient: FILE_BYTES_READ=4151123 13/05/22 13:14:07 INFO mapred.JobClient: HDFS_BYTES_READ=5882320 13/05/22 13:14:07 INFO mapred.JobClient: FILE_BYTES_WRITTEN=6937084 13/05/22 13:14:07 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=1267287 13/05/22 13:14:07 INFO mapred.JobClient: File Input Format Counters 13/05/22 13:14:07 INFO mapred.JobClient: Bytes Read=5881494 13/05/22 13:14:07 INFO mapred.JobClient: Map-Reduce Framework 13/05/22 13:14:07 INFO mapred.JobClient: Reduce input groups=114901 13/05/22 13:14:07 INFO mapred.JobClient: Map output materialized bytes=2597630 13/05/22 13:14:07 INFO mapred.JobClient: Combine output records=178795 13/05/22 13:14:07 INFO mapred.JobClient: Map input records=115251 13/05/22 13:14:07 INFO mapred.JobClient: Reduce shuffle bytes=1857123 13/05/22 13:14:07 INFO mapred.JobClient: Reduce output records=114901 13/05/22 13:14:07 INFO mapred.JobClient: Spilled Records=463427 13/05/22 13:14:07 INFO mapred.JobClient: Map output bytes=9821180 13/05/22 13:14:07 INFO mapred.JobClient: Total committed heap usage (bytes)=1567514624 13/05/22 13:14:07 INFO mapred.JobClient: Combine input records=1005554 13/05/22 13:14:07 INFO mapred.JobClient: Map output records=1005554 13/05/22 13:14:07 INFO mapred.JobClient: SPLIT_RAW_BYTES=826 13/05/22 13:14:07 INFO mapred.JobClient: Reduce input records=178795- 檢索作業結果
要直接從hadoop讀取而不復制到本地文件系統,請執行以下操作:
$ hadoop dfs -cat /Users/hduser/gutenberg-output/part-r-00000讓我們將結果復制到本地文件系統中。
$ mkdir /tmp/gutenberg-output$ bin/hadoop dfs -getmerge /Users/hduser/gutenberg-output /tmp/gutenberg-output$ head /tmp/gutenberg-output/gutenberg-output我們將得到如下輸出:
"'Ample.' 1 "'Arthur!' 1 "'As 1 "'Because 1 "'But,' 1 "'Certainly,' 1 "'Come, 1 "'DEAR 1 "'Dear 2 "'Dearest 1 "'Don't 1 "'Fritz! 1 "'From 1 "'Have 1 "'Here 1 "'How 2命令fs -getmerge將簡單地串聯在指定目錄中找到的所有文件。 這意味著合并的文件可能(并且很可能不會)被排序。
資源:
- http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
- http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
- http://hadoop.apache.org/docs/current/
翻譯自: https://www.javacodegeeks.com/2013/06/running-map-reduce-job-in-apache-hadoop-multinode-cluster.html
總結
以上是生活随笔為你收集整理的在Apache Hadoop(多节点群集)中运行Map-Reduce作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 旧版微信安卓4.4.4(旧版微信安卓)
- 下一篇: linux网口灯闪烁命令(linux网口