首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flink作业中的org/apache/flink/streaming/connectors/rabbitmq/common/RMQConnectionConfig :java.lang.NoClassDefFoundError

flink作业中的org/apache/flink/streaming/connectors/rabbitmq/common/RMQConnectionConfig :java.lang.NoClassDefFoundError
EN

Stack Overflow用户
提问于 2020-04-05 15:47:37
回答 1查看 199关注 0票数 0

我正在将flink(v1.10.0)作业提交到我的群集,但显示以下错误:

代码语言:javascript
复制
 System.out: (none)
System.err: (none)
    at org.apache.flink.client.program.OptimizerPlanEnvironment.generateException(OptimizerPlanEnvironment.java:149)
    at org.apache.flink.client.program.OptimizerPlanEnvironment.getPipeline(OptimizerPlanEnvironment.java:89)
    at org.apache.flink.client.program.PackagedProgramUtils.getPipelineFromProgram(PackagedProgramUtils.java:101)
    at org.apache.flink.client.program.PackagedProgramUtils.createJobGraph(PackagedProgramUtils.java:56)
    at org.apache.flink.runtime.webmonitor.handlers.utils.JarHandlerUtils$JarHandlerContext.toJobGraph(JarHandlerUtils.java:128)
    at org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$getJobGraphAsync$6(JarRunHandler.java:138)
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: org/apache/flink/streaming/connectors/rabbitmq/common/RMQConnectionConfig$Builder
    at org.myorg.quickstart.StreamingJob.i(StreamingJob.java:123)
    at org.myorg.quickstart.StreamingJob.main(StreamingJob.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:321)
    at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:205)
    at org.apache.flink.client.program.OptimizerPlanEnvironment.getPipeline(OptimizerPlanEnvironment.java:79)
    ... 8 more
Caused by: java.lang.ClassNotFoundException: org.apache.flink.streaming.connectors.rabbitmq.common.RMQConnectionConfig$Builder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
    at org.apache.flink.util.ChildFirstClassLoader.loadClass(ChildFirstClassLoader.java:60)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
    ... 17 more

似乎在运行时找不到RMQConnectionConfig,如何在系统范围内添加jar,并使我的任务jar变小变瘦?这是我的gradle.build依赖项:

代码语言:javascript
复制
dependencies {

    // --------------------------------------------------------------
    // Compile-time dependencies that should NOT be part of the
    // shadow jar and are provided in the lib folder of Flink
    // --------------------------------------------------------------
    compile "org.apache.flink:flink-java:${flinkVersion}"
    compile "org.apache.flink:flink-streaming-java_${scalaBinaryVersion}:${flinkVersion}"

    // --------------------------------------------------------------
    // Dependencies that should be part of the shadow jar, e.g.
    // connectors. These must be in the flinkShadowJar configuration!
    // --------------------------------------------------------------
    //flinkShadowJar "org.apache.flink:flink-connector-kafka-0.11_${scalaBinaryVersion}:${flinkVersion}"

    compile "log4j:log4j:${log4jVersion}"
    compile "org.slf4j:slf4j-log4j12:${slf4jVersion}"

    compile "com.rabbitmq:amqp-client:4.2.0"
    compile "com.alibaba:fastjson:1.2.57"
    compile "org.apache.flink:flink-connector-rabbitmq_${scalaBinaryVersion}:1.10.0"

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-05 16:22:58

如果您希望jar包含到dist.jar文件中,则应编写如下依赖项:

代码语言:javascript
复制
 flinkShadowJar "com.rabbitmq:amqp-client:4.2.0"
 flinkShadowJar "com.alibaba:fastjson:1.2.57"
 flinkShadowJar "org.apache.flink:flink-connector-rabbitmq_${scalaBinaryVersion}:1.10.0"

它会将依赖项打包到dist jar文件中,并在运行时使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61039550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档