我是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作业后,我发现日志消息未更改为“正在开始...”,因此这意味着我对TeraSort.java
所做的更改不会生效。< / p>
问题是如何让hadoop选择我构建的新 MapReduce-0.0.1.jar
。
感谢
答案 0 :(得分:0)
您必须重新编译并重新构建jar,然后指定除第一个作业之外的其他输出目录。