2015-01-07 50 views
0

我是hadoop的新手,我在hadoop 2.6.0中嘗試過它的例子。
首先,我重新編譯的hadoop-mapreduce-examples-2.6.0.jar的源代碼,並建立一個新的jar文件MapReduce-0.0.1.jar如何讓'hadoop jar'命令獲取同一個命名的jar的新版本

然後我跑了這個命令行terasort例如

jjin:hadoop$ bin/hadoop jar ~/shared/MapReduce-0.0.1.jar terasort /input /output 
15/01/07 12:27:44 INFO terasort.TeraSort: starting 
15/01/07 12:27:46 INFO input.FileInputFormat: Total input paths to process : 1 
... 

terasort完成後,我更新通過修改第一行日誌消息TeraSort.java的來源

public int run(String[] args) throws Exception { 
LOG.info("starting..."); 
// Update log message by adding '...' to the end of previous one. 
Job job = Job.getInstance(getConf()); 

但重新運行此terasort作業後,我發現日誌消息沒有更改爲'開始...',所以這意味着我對TeraSort.java所做的更改不生效。

問題是如何讓hadoop拿起新的MapReduce-0.0.1.jar我建立。 謝謝

回答

0

您必須重新編譯並重新構建jar,然後指定不同於第一個作業的輸出目錄。

+0

我重新命名了TeraSort的軟件包名稱,它現在可以使用。 – jjin