1. 程式人生 > >MapReduce 程式執行演示(示例PI程式 wordcount程式)

MapReduce 程式執行演示(示例PI程式 wordcount程式)

你說的9000埠應該指的是fs.default.name或fs.defaultFS(新版本)這一配置屬性吧,這個屬性是描述叢集中NameNode結點的URI(包括協議、主機名稱、埠號)

50070其實是在hdfs-site.xml裡面的配置引數dfs.namenode.http-address,預設配置為dfs.namenode.http-address,這是HDFS web介面的監聽埠

———————————————————————————————————————————————————————

MapReduce 程式執行演示

  在 MapReduce 元件裡,官方給我們提供了一些樣例程式,其中非常有名的就是 wordcount 和 pi 程式。這些 MapReduce 程式的程式碼都在 hadoop-mapreduce-examples-2.7.5.jar 包裡,這 個 jar 包在 hadoop 安裝目錄下的/share/hadoop/mapreduce/目錄裡 下面我們使用 hadoop 命令來試跑例子程式,看看執行效果

 MapReduce 示例 pi 的程式

[[email protected] ~]$ cd apps/hadoop-2.7.5/share/hadoop/mapreduce/
[[email protected] mapreduce]$ pwd
/home/hadoop/apps/hadoop-2.7.5/share/hadoop/mapreduce
[[email protected] mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.5.jar pi 5 5

 

MapReduce 示例 wordcount 的程式

[[email protected] mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.5.jar wordcount /wc/input1/ /wc/output1/

檢視結果

[[email protected] mapreduce]$ hadoop fs -cat /wc/output1/part-r-00000

 

問題分析:Input path does not exist

問題解決:分散式環境中建立input目錄

  hdfs dfs -mkdir -p /user/hadoop

  hdfs dfs -mkdir input

  hdfs dfs -put ./*.xml input   (一定要有xml檔案才能input)

[[email protected] mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.5.jar wordcount /wc/input1/ /wc/output1/

(問題2:如果output1已經有了就會報錯,只能向這個output1裡面寫入一次,雖然不知道為啥。難道是傳說中的一次寫入多次讀取。不懂不懂,反正先知道怎麼做,以後再考慮為什麼。。。。)