当风暴客户端从 0.10 升级到 1.1.0 时,风暴拓扑部署失败并出现 IllegalArgumentException

Storm topology deployment failing with IllegalArgumentException when storm client upgraded from 0.10 to 1.1.0

最近,我们将 storm 版本从 0.10 升级到 1.1.0,但是在使用升级后的客户端部署拓扑时,它失败了 -

Exception in thread "main" java.lang.IllegalArgumentException
    at org.apache.storm.hack.shade.org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.apache.storm.hack.shade.org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.apache.storm.hack.shade.org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.apache.storm.hack.DefaultShader.addRemappedClass(DefaultShader.java:182)
    at org.apache.storm.hack.DefaultShader.shadeJarStream(DefaultShader.java:103)
    at org.apache.storm.hack.StormShadeTransformer.transform(StormShadeTransformer.java:35)
    at org.apache.storm.daemon.ClientJarTransformerRunner.main(ClientJarTransformerRunner.java:37)

问题与 dependency conflicts between asm and guice over Java8 有关。排除所有来自依赖 jar 但实际上并未在 storm 项目中使用的 guice 依赖项有助于解决此问题。

为了安全起见,我还在我的项目中 cross-checked 除了来自 storm-core.

的依赖项之外,我没有任何其他 asm 依赖项

我花了一天多的时间来解决这个问题,希望这对某人有所帮助:)

对我们来说,这个问题是我们有

client.jartransformer.class : org.apache.storm.hack.StormShadeTransformer

在我们的 storm.yaml 中。删除此行解决了问题。