XLearning
XLearning copied to clipboard
demo运行失败
按照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
请问有没有遇到相同问题的,有没有解决的?
看错误是找不到org/apache/hadoop/mapred/JobConf类,这个类会在XLearning编译完后自动放在lib/hadoop-mapreduce-client-core-2.7.3.jar,你可以检查下是否存在。
这个jar包是在的,我进去查看这个JobConf.class也在,所以就是挺奇怪不知道为什么会找不到。我设置了JAVA_HOME和HADOOP_CONF_DIR,也执行了start-history-server.sh,log日志里面也没报错,日志里面STARTUP_MSG: classpath中也有hadoop-mapreduce-client-core-2.7.3.jar的路径。
我也遇到同样的问题,但是用的的是 CDH Hadoop2.6.0
hadoop2.6.0请拉取新版本代码,修改pom.xml文件,使用cdh的hadoop对应版本进行重新编译
我也遇到同样的问题,请问有人解决了吗?
我的Hadoo版本是2.6.0-cdh5.8.0,我也遇到这个问题,看了源码和文档,files,cacheArchive,cacheFile都试了,都不行,最后逼急了把所有jar包全部打包到一起,倒是可以运行,但是这样感觉好扭曲,根源应该是在远程work运行jar命令的时候并没有把那些依赖包加入到classpath上面去,能来个官方人士解释下这个问题吗?
我也遇到相同的问题,在cdh5.13和cdh5.8上都出现了,期待解决方案
若以<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>,
@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