0

我正在尝试使用 ignite.sh 脚本启动服务器并收到上述错误(无法加载 HadoopV2Job)。"config/default-config.xml"正在传递给 CommandLineStartup 并且尚未更改。

有没有人遇到过这个问题或有人知道如何解决它?

我的 Ignite 版本是 1.4.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
4

1 回答 1

2

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();
    }

请尝试使用 JDK 1.7 构建 Ignite 或使用 JDK8 指定目标级别 = 1.7。这能解决问题吗?

于 2015-12-16T18:10:44.173 回答