我的地图reduce程序需要外部jar文件。我正在使用 “-libjars”选项提供那些外部jar文件 -
我使用了hadoop提供的Tool,Configured和ToolRunner Utilities。
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: attempt_201211211620_0001_m_000000_1,状态:FAILED错误: 抛出java.lang.ClassNotFoundException: org.joda.time.format.DateTimeFormatterBuilder
我一直试图解决它。到目前为止似乎没有任何工作。我正在使用CDH 4.1.1。
答案 0 :(得分:1)
/etc/hbase/hbase-env.sh
并将额外的jar添加到HADOOP_CLASSPATH
。
export HADOOP_CLASSPATH="<extra_entries>:$HADOOP_CLASSPATH"
另一个效率较低且有时不太可能的想法是将您所请求的jar复制到/usr/share/hadoop/lib
。
答案 1 :(得分:0)
尝试使用external.jar的完全限定绝对文件名调用该命令。还要确认缺少的类及其所有必备类都在external.jar中。