2015-01-07 48 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