当前位置: 首页 > 知识库问答 >
问题:

在Flink群集上找不到FlinkKaConsumer011

谷良弼
2023-03-14

我正试图在集群上运行Flink作业。这份工作在我的开发(本地)环境下运行良好。但当我使用以下命令将其部署到集群上时:

./bin/flink run -c org.example.CointegrationOfPairs ../coint.jar

它失败了,错误如下:

java.lang.NoClassDefFoundError: org/apache/flink/streaming/connectors/kafka/FlinkKafkaConsumer011
    at org.example.CointegrationOfPairs$.main(CointegrationOfPairs.scala:38)
    at org.example.CointegrationOfPairs.main(CointegrationOfPairs.scala)
    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:528)
    at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:420)
    at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:404)
    at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:785)
    at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:279)
    at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:214)
    at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1025)
    at org.apache.flink.client.cli.CliFrontend.lambda$main$9(CliFrontend.java:1101)
    at org.apache.flink.runtime.security.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30)
    at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1101)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer011
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我还添加了所需的依赖项

val flinkDependencies = Seq(
  "org.apache.flink" %% "flink-scala" % flinkVersion % "provided",
  "org.apache.flink" %% "flink-streaming-scala" % flinkVersion % "provided",
  "org.apache.flink" %% "flink-connector-kafka-0.11" % flinkVersion % "provided",
  "org.apache.flink" %% "flink-ml" % flinkVersion % "provided"
)

我正在使用sbt清洁程序集构建jar文件

共有1个答案

蒋寒
2023-03-14

连接器不包含在Flink的二进制分布中,以避免其依赖关系和用户代码的版本冲突。因此,相应的类默认情况下不会加载到Flink进程的类路径中。

有两种方法可以解决此问题:

>

  • 不要设置所提供的flink-Connnictor-kafka依赖项。相反,构建一个包含连接器依赖项的胖罐。这样,连接器将与您的应用程序一起发布。这是首选方法。

    flink connector kafka依赖项的jar文件添加到中/Flink设置的lib文件夹。这将分发文件并将其包含在Flink进程的类路径中。

  •  类似资料:
    • 我对Flink和库伯内特斯是新手。我计划创建一个flink流作业,将数据从文件系统流到Kafka。 使用工作正常的flink job jar(本地测试)。现在我正试图在kubernetes主持这项工作,并希望在AWS中使用EKS。 我已经阅读了有关如何设置flink群集的官方flink文档。https://ci.apache.org/projects/flink/flink-docs-releas

    • 我是新来的强力pm。我有一个场外承包商更改了配置,现在我们强大的pm服务没有运行 如果出现以下异常,我可以使用以下命令将集群值从CPU更改为1或2,但看起来节点进程的参数传递不正确,它认为“-cluster=CPU”是一个模块。 错误:在函数中找不到模块“/var/lib/strong pm/svc/1/work/1243100a8374d67ec4f638539a27d7a8e232fee8.1

    • 我正在使用CoreNLP包对用户评论做一些注释,自从我升级到3.5.0版本以来,我似乎反复遇到同样的错误: 我在这里搜索了几个类似的问题: Stanford NER错误:加载distsim词典失败,Stanford NER tagger使用提供的模型生成“File not Found”异常,但这并没有解决我的问题:我只使用3.5.0中的代码和模型(通过Maven Central)。我尝试从NER模

    • 一、部署模式 Flink 支持使用多种部署模式来满足不同规模应用的需求,常见的有单机模式,Standalone Cluster 模式,同时 Flink 也支持部署在其他第三方平台上,如 YARN,Mesos,Docker,Kubernetes 等。以下主要介绍其单机模式和 Standalone Cluster 模式的部署。 二、单机模式 单机模式是一种开箱即用的模式,可以在单台服务器上运行,适用于

    • 我正在尝试在kubernetes上部署高可用的flink集群。在下面的示例中,工作节点被复制,但我们只有一个主pod。 https://github.com/apache/flink-statefun 据我所知,有两种方法可以让job manager成为HA。 https://ci.apache.org/projects/flink/flink-docs-stable/ops/jobmanager

    • 最近,我在使用logback.xml作为日志记录时,在独立集群模式下的Flink日志记录中遇到了一个问题。我的要求是,我的所有作业都应该登录到特定的文件夹中,我的flink框架日志应该放在单独的文件夹中,而且对于在我的flink集群中运行的每个作业,应该有单独的文件夹用于不同的作业。我在我的本地集群中测试了它,它运行良好,我得到了所有的日志,与我提交的Flink作业相关的单独文件夹,但一旦我在独立