如何使 'hadoop jar' 命令获取同名 jar 的新版本
How to make 'hadoop jar' command pick up new build of a same named jar
我是 hadoop 的新手,我在 hadoop 2.6.0 中尝试了它的示例作为开始。
首先,我重新编译了 hadoop-mapreduce-examples-2.6.0.jar
的源代码并构建了一个新的 jar 文件 MapReduce-0.0.1.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 作业后,我发现日志消息并没有变成 'starting...',所以这意味着我对 TeraSort.java
所做的更改没有生效。
问题是如何让 hadoop 接受我构建的新 MapReduce-0.0.1.jar
。
谢谢
您必须重新编译并重新构建 jar,然后指定与第一个作业不同的输出目录。
我是 hadoop 的新手,我在 hadoop 2.6.0 中尝试了它的示例作为开始。
首先,我重新编译了 hadoop-mapreduce-examples-2.6.0.jar
的源代码并构建了一个新的 jar 文件 MapReduce-0.0.1.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 作业后,我发现日志消息并没有变成 'starting...',所以这意味着我对 TeraSort.java
所做的更改没有生效。
问题是如何让 hadoop 接受我构建的新 MapReduce-0.0.1.jar
。
谢谢
您必须重新编译并重新构建 jar,然后指定与第一个作业不同的输出目录。