开发者社区> 问答> 正文

Flink报错java.lang.ClassCastException: org.codeha...

已解决

Flink报错java.lang.ClassCastException: org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory

展开
收起
提个问题 2024-06-01 17:03:58 11 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    【报错详情】Caused by: java.lang.ClassCastException: org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory at org.codehaus.commons.compiler.CompilerFactoryFactory.getCompilerFactory(CompilerFactoryFactory.java:129) at org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory(CompilerFactoryFactory.java:79) at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:426) ... 66 more
    【报错原因】
    • 用户JAR包中引入了会发生冲突的janino依赖。
    • 在用户的UDF JAR或Connector JAR中,误打入Flink中的某些依赖(例如flink-table-planner和flink-table-runtime)。
    【解决方案】
    分析JAR包里面是否含有org.codehaus.janino.CompilerFactory。因为在不同机器上的Class加载顺序不一样,所以有时候出现类冲突。该问题的解决步骤如下:
    • 作业运维页面,单击目标作业的名称。
    • 在作业详情页面,单击返回开发
    • 在页面右侧高级配置面板的更多Flink配置中,增加如下代码。
      classloader.parent-first-patterns.additional: org.codehaus.janino
      其中,参数的value值需要替换为冲突的类。
    2024-06-01 17:03:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载