我有一个Hadoop程序,其中我使用了几个外部jar文件。当我将程序的jar文件提交到Hadoop集群时,它给出了以下错误。
Exception in thread "main" java.lang.NoClassDefFoundError: edu/uci/ics/jung/graph/Graph
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(RunJar.java:201)
我明白问题是什么,但不知道如何解决它。如何将jar文件添加到我的程序中?
答案 0 :(得分:0)
我认为,您还可以通过指定JAVA_LIBRARY_PATH或LD_LIBRARY_PATH变量来显式修改作业的运行任务尝试环境:
hadoop jar [主类] -D mapred.child.env =“LD_LIBRARY_PATH = / path / to / your / libs”...
答案 1 :(得分:0)
您可以在提交以下作业时使用LIBJARS选项:
export LIBJARS=/path/jar1,/path/jar2
hadoop jar my-example.jar com.example.MyTool -libjars ${LIBJARS} -mytoolopt value
我建议您阅读这篇文章,详细描述您正在寻找的内容: http://grepalex.com/2013/02/25/hadoop-libjars/
答案 2 :(得分:0)
将外部jar文件添加到hadoop / lib文件夹中以摆脱它......