Flink V1.13.1 + Scala 2.11.8 提交任务后,报错 Caused by: org.apache.flink.shaded.guava18.com.google.common.util.concurrent.UncheckedExecutionException: java.lang.NumberFormatException: Not a version: 9 ,遂排查与解决。
异常栈最后报错在 com.google.common.util.concurrent,最终定位的是 LocalCache 类,查看项目下是否有多个 google 版本的 LocalCache 类
查找后虽然有多个 LocalCache,但是 org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache 类没有公共的部分,所以排除 LocalCache 的依赖冲突,继续查看下一个报错异常栈。
紧跟着下面的报错定位在 scala.util.PropertiesTrait
再次查看项目内,发现 sdk 为 2.11.8,而项目内依赖为 2.11.12,结合 Not a version 9 这种类似是环境问题的报错名称,直接排查 pom.xml,之前类似的报错还有 AreOnJava8() 也是很类似的环境问题,排查方法与本文类似,可以参考 AreOnJava8 问题排查。
查看 PropertiesTrail 发现 scala 2.11.12 与 2.11.8 冲突,为了与 SDK 一致,这里修改 pom.xml 内的依赖:
修改为 SDK 对应的 2.11.8 的版本:
- <dependency>
- <groupId>org.scala-langgroupId>
- <artifactId>scala-libraryartifactId>
- <version>2.11.8version>
- dependency>
- <dependency>
- <groupId>org.scala-langgroupId>
- <artifactId>scala-reflectartifactId>
- <version>2.11.8version>
- dependency>
- <dependency>
- <groupId>org.scala-langgroupId>
- <artifactId>scala-compilerartifactId>
- <version>2.11.8version>
- dependency>
不确定自己 SDK 版本的也可以在 IDEA Project Structure 内查看,保证 pom.xml 的 Scala 与 Pom 对应 Scala 版本一致: