2012-03-25 61 views
0

我試圖執行下面的代碼疑惑:http://blog.xebia.com/2011/09/27/wiki-pagerank-with-hadoop/有關的PageRank執行

javac的顯示沒有錯誤,但我不知道怎麼去輸出?這些是我所遵循的執行步驟:

$ javac -Xlint -classpath /home/james/Downloads/hadoop-0.20.203.0/hadoop-core-0.20.203.0.jar -d doc WikiPageRanking.java 
$ jar -cvf WikiPageRanking.jar -C doc/ . 
$ bin/hadoop dfs -mkdir /user/james/wiki/in 
$ bin/hadoop dfs -copyFromLocal wiki-micro.txt /user/james/wiki/in 
$ bin/hadoop jar WikiPageRanking.jar org.myorg.WikiPageRanking /user/james/wiki/in /user/james/wiki/result 

這是正確的嗎?我嚴重懷疑最後一步 - 輸入和輸出路徑!在代碼中,他們使用了wiki/in,這就是爲什麼我在這裏給出了相同的路徑,並且我已將我的示例數據集複製到此路徑。地圖縮小過程開始,但我沒有輸出!

回答

0

是什麼下面的命令給你:

hadoop fs -ls /user/james/wiki/result 

hadoop fs -text /user/james/wiki/result/part* 

運行作業不會自動轉儲工作到控制檯的結果 - 他們最通常存儲在HDFS(在你的情況下,在路徑/用戶/詹姆斯/維基/結果)。您可以使用第一條命令查看此目錄的內容,並假設有部分*文件,第二條命令會將其內容轉儲到磁盤

最後一點要注意 - 如果輸出格式爲SequenceFileOutputFormat,使用自定義鍵/值對象,則需要修改第二個命令,包括您的罐子:

hadoop fs -libjars WikiPageRanking.jar -text /user/james/wiki/result/part* 
+0

它說沒有這樣的文件,當我執行第2個命令,因爲我猜它是存儲在HDFS,不本地文件系統。 – user1291453 2012-03-25 16:21:04

+0

/用戶通常是HDFS中的用戶主目錄(與/ nix中的/ home相對),因此您正在考慮HDFS(除非您的hadoop配置已配置爲使用本地文件系統作爲默認配置)。你的工作是否真正成功沒有錯誤? – 2012-03-25 16:23:38

+0

是的,mapreduce任務也完成了,但輸出文件仍然是空的 – user1291453 2012-03-25 16:31:39