如何在hadoop程序中使用外部jar文件

oknrviil  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(372)

我有一个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文件添加到程序中?

9cbw7uwe

9cbw7uwe1#

提交以下作业时,可以使用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/

yfjy0ee7

yfjy0ee72#

将外部jar文件添加到hadoop/lib文件夹以摆脱它。。。

beq87vna

beq87vna3#

我认为,还可以通过指定java\u library\u path或ld\u library\u path变量来显式修改作业运行任务尝试的环境:
hadoop jar[main class]-d mapred.child.env=“ld\u library\u path=/path/to/your/libs”。。。

相关问题