我的map reduce程序需要外部jar文件。我使用“-libjars”选项来提供这些外部jar文件-
我使用了hadoop提供的tool、configured和toolrunner实用程序。
public static void main(String[] args)throws Exception {
int res = ToolRunner.run(newConfiguration(), new MapReduce(),args);
System.exit(res);
}
@Override
public int run(String[] args) throwsException {
// Configuration processed by ToolRunner
Configuration conf = getConf();
Job job = new Job (conf, "MapReduce");
....
}
当我试着执行任务的时候-
$ Hadoop jar myjob.jar jobClassName -libjars external.jar
它引发了以下异常。
12/11/21 16:26:02 info mapred.jobclient:任务id:尝试\u 20121121620 \u 0001 \u m \u000000 \u 1,状态:失败错误:java.lang.classnotfoundexception:org.joda.time.format.datetimeformatterbuilder
我已经试着解决了一段时间了。到目前为止似乎什么都没用。我正在使用cdh 4.1.1。
2条答案
按热度按时间hmtdttj41#
尝试使用external.jar的完全限定绝对文件名调用命令。还要确认缺少的类及其所有必备类都在external.jar中。
sf6xfgos2#
似乎找不到工作时间。打开
/etc/hbase/hbase-env.sh
把你多余的jar加到HADOOP_CLASSPATH
.另一个效率较低、有时不可能的想法是将所需的jar复制到
/usr/share/hadoop/lib
.