XLearning icon indicating copy to clipboard operation
XLearning copied to clipboard

demo运行失败

Open ZejunPeng opened this issue 7 years ago • 10 comments

按照README的流程,执行 sh run.sh 时出错:

报错信息: Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/JobConf at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapred.JobConf at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more

请问有没有遇到相同问题的,有没有解决的?

ZejunPeng avatar Dec 05 '17 10:12 ZejunPeng

看错误是找不到org/apache/hadoop/mapred/JobConf类,这个类会在XLearning编译完后自动放在lib/hadoop-mapreduce-client-core-2.7.3.jar,你可以检查下是否存在。

liyuance avatar Dec 06 '17 01:12 liyuance

这个jar包是在的,我进去查看这个JobConf.class也在,所以就是挺奇怪不知道为什么会找不到。我设置了JAVA_HOME和HADOOP_CONF_DIR,也执行了start-history-server.sh,log日志里面也没报错,日志里面STARTUP_MSG: classpath中也有hadoop-mapreduce-client-core-2.7.3.jar的路径。

ZejunPeng avatar Dec 06 '17 03:12 ZejunPeng

我也遇到同样的问题,但是用的的是 CDH Hadoop2.6.0

freeshow avatar Dec 08 '17 10:12 freeshow

hadoop2.6.0请拉取新版本代码,修改pom.xml文件,使用cdh的hadoop对应版本进行重新编译

jiarunying avatar Dec 13 '17 12:12 jiarunying

我也遇到同样的问题,请问有人解决了吗?

xlsong19 avatar Dec 14 '17 01:12 xlsong19

我的Hadoo版本是2.6.0-cdh5.8.0,我也遇到这个问题,看了源码和文档,files,cacheArchive,cacheFile都试了,都不行,最后逼急了把所有jar包全部打包到一起,倒是可以运行,但是这样感觉好扭曲,根源应该是在远程work运行jar命令的时候并没有把那些依赖包加入到classpath上面去,能来个官方人士解释下这个问题吗?

call-me-HOU-GE avatar Dec 18 '17 12:12 call-me-HOU-GE

我也遇到相同的问题,在cdh5.13和cdh5.8上都出现了,期待解决方案

fjibj avatar Dec 27 '17 08:12 fjibj

若以<hadoop2.version>2.6.0-cdh5.13.0<hadoop2.version>编译则报错: [ERROR] /Users/fjibj/XLearning/src/main/java/net/qihoo/xlearning/jobhistory/HistoryClientService.java:[116,53] 找不到符号 符号: 方法 build(org.apache.hadoop.yarn.webapp.WebApp) 位置: 类 org.apache.hadoop.yarn.webapp.WebApps.Builder<net.qihoo.xlearning.jobhistory.HistoryClientService> [ERROR] /Users/fjibj/XLearning/src/main/java/net/qihoo/xlearning/AM/ApplicationMaster.java:[816,16] 找不到符号 符号: 方法 updateBlacklist(java.util.List<java.lang.String>,) 位置: 类型为org.apache.hadoop.yarn.client.api.async.AMRMClientAsync<org.apache.hadoop.yarn.client.api.AMRMClient.ContainerRequest>的变量 amrmAsync [ERROR] /Users/fjibj/XLearning/src/main/java/net/qihoo/xlearning/AM/ApplicationMaster.java:[843,16] 找不到符号 符号: 方法 updateBlacklist(java.util.List<java.lang.String>,) 位置: 类型为org.apache.hadoop.yarn.client.api.async.AMRMClientAsync<org.apache.hadoop.yarn.client.api.AMRMClient.ContainerRequest>的变量 amrmAsync [ERROR] /Users/fjibj/XLearning/src/main/java/net/qihoo/xlearning/AM/ApplicationWebService.java:[35,107] 找不到符号 符号: 方法 build(net.qihoo.xlearning.webapp.AMWebApp) 位置: 类 org.apache.hadoop.yarn.webapp.WebApps.Builder<net.qihoo.xlearning.api.ApplicationContext> [INFO] 4 errors

fjibj avatar Dec 27 '17 16:12 fjibj

@ZejunPeng 我也遇到了相同的问题,环境是CDH5.11.0,因为CDH默认yarn.application.classpath中没有包含mapreduce相关jar的路径,所以出现JobConf NoClassDefFoundError的错误。

在YARN配置中的yarn.application.classpath添加以下两项,然后重启YARN即可解决。

  • $HADOOP_MAPRED_HOME/*

  • $HADOOP_MAPRED_HOME/lib/*

vistellar avatar Dec 28 '17 03:12 vistellar

非常感谢 @vistellar

fjibj avatar Dec 28 '17 05:12 fjibj