Apache Ignite:未能加载作业类[class=org.Apache.Ignite.internal.processors.hadoop.v2.HadoopV2Job]
我正在尝试使用ignite.sh脚本启动服务器,但出现上述错误(加载HadoopV2Job失败)<代码>“config/default config.xml”正在传递给CommandLineStartup,尚未更改 有没有人遇到过这个问题,或者有人知道如何解决它 我的Ignite版本是1.4.0,下面是完整的堆栈跟踪:Apache Ignite:未能加载作业类[class=org.Apache.Ignite.internal.processors.hadoop.v2.HadoopV2Job],ignite,Ignite,我正在尝试使用ignite.sh脚本启动服务器,但出现上述错误(加载HadoopV2Job失败)“config/default config.xml”正在传递给CommandLineStartup,尚未更改 有没有人遇到过这个问题,或者有人知道如何解决它 我的Ignite版本是1.4.0,下面是完整的堆栈跟踪: class org.apache.ignite.IgniteException: Failed to start processor: HadoopProcessor [idCtr=0]
class org.apache.ignite.IgniteException: Failed to start processor: HadoopProcessor [idCtr=0]
at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
at org.apache.ignite.Ignition.start(Ignition.java:349)
at org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:302)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start processor: HadoopProcessor [idCtr=0]
at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1504)
at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:888)
at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1617)
at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1484)
at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:965)
at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:892)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:784)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:705)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:576)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:546)
at org.apache.ignite.Ignition.start(Ignition.java:346)
... 1 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to load job class [class=org.apache.ignite.internal.processors.hadoop.v2.HadoopV2Job]
at org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker.start(HadoopJobTracker.java:167)
at org.apache.ignite.internal.processors.hadoop.HadoopProcessor.start(HadoopProcessor.java:103)
at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1501)
... 11 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.hasExternalDependencies(HadoopClassLoader.java:288)
at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.loadClass(HadoopClassLoader.java:162)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker.start(HadoopJobTracker.java:163)
... 13 more
class org.apache.ignite.ignite异常:无法启动处理器:HadoopProcessor[idCtr=0]
位于org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:881)
位于org.apache.ignite.Ignition.start(Ignition.java:349)
位于org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:302)
原因:class org.apache.ignite.IgniteCheckedException:无法启动处理器:HadoopProcessor[idCtr=0]
位于org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1504)
位于org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:888)
位于org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1617)
位于org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1484)
位于org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:965)
位于org.apache.ignite.internal.IgnitionEx.startConfiguration(IgnitionEx.java:892)
位于org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:784)
位于org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:705)
位于org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:576)
位于org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:546)
位于org.apache.ignite.Ignition.start(Ignition.java:346)
... 还有一个
原因:class org.apache.ignite.IgniteCheckedException:未能加载作业类[class=org.apache.ignite.internal.processors.hadoop.v2.HadoopV2Job]
位于org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker.start(HadoopJobTracker.java:167)
位于org.apache.ignite.internal.processors.hadoop.HadoopProcessor.start(HadoopProcessor.java:103)
位于org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1501)
... 还有11个
原因:java.lang.IllegalArgumentException
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.hasExternalDependencies(HadoopClassLoader.java:288)
位于org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.loadClass(HadoopClassLoader.java:162)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
位于org.apache.ignite.internal.processors.hadoop.jobtracker.HadoopJobTracker.start(HadoopJobTracker.java:163)
... 还有13个
Shane,你用JDK8编译Ignite代码了吗?
看起来org.objectweb.asm库无法解析类“org.apache.ignite.internal.processors.hadoop.v2.HadoopV2Job”字节码,因为字节码版本高于1.7:
/**
* Constructs a new {@link ClassReader} object.
*
* @param b
* the bytecode of the class to be read.
* @param off
* the start offset of the class data.
* @param len
* the length of the class data.
*/
public ClassReader(final byte[] b, final int off, final int len) {
this.b = b;
// checks the class version
if (readShort(off + 6) > Opcodes.V1_7) {
throw new IllegalArgumentException();
}
请尝试使用JDK1.7构建Ignite,或使用JDK8指定目标级别=1.7。这解决了问题吗?Ivan,是的,它是用JDK8编译的。我已经重新安装并使用了Ignite hadoop二进制文件,它可以正常工作;在“java8”概要文件下的“parent/pom.xml”和“examples/pom.xml”中可以找到对JDK1.8的引用。我试着注释这一部分,但这产生了其他错误。最终的效果是将源和目标标记设置为1.7,而不是注释掉该部分。