你们用的是flink-streaming-java还是flink-streaming-java_2.12包啊?
我们使用的是 flink-streaming-java 包,而不是带有后缀 "_2" 的版本。
flink-streaming-java 是 Flink 的基础 API,用于使用 Java 开发 Flink 的作业或应用程序。它支持 Stream 和 Batch 模式。
相比之下,flink-streaming-java_2.xx 是 Flink 的 Scala API,专门为 Scala 语言提供支持。如果您使用 Scala 语言开发 Flink 的作业,那么您需要添加 flink-streaming-java_2.xx 包作为依赖。
因此,如果您在开发 Flink 作业时使用的是 Java 语言,则只需引入 flink-streaming-java 包即可。请注意,从某个版本开始,flink-streaming-java 不再带有 Scala 后缀。
flink-streaming-java 与 flink-streaming-java_2.xx 都是 Flink 工程的依赖,但用途不同:
flink-streaming-java 是 Flink 的基础 API,支持 Stream 和 Batch 模式
flink-streaming-java_2.xx 是 Scala API,专为 Scala 语言提供
具体来说:
flink-streaming-java
这是 Flink 的 Java API,用于使用 Java 开发 Flink 作业或应用。
如果你的 Flink 工程使用 Java 语言开发,则需要此依赖。
flink-streaming-java_2.xx
这是 Flink 的 Scala API,专门为 Scala 2.xx 编译器提供。
如果使用 Scala 语言开发 Flink 作业,则需要添加此依赖。
选择哪个依赖主要取决于你的 Flink 工程使用的是 Java 还是 Scala 语言。
大多数情况下,是二选一:
如果是 Java 工程,则仅需要 flink-streaming-java
如果是 Scala 工程,则仅需要 flink-streaming-java_2.xx 版本
所以对于 Flink CDC 作业,如果使用的是:
Java API 开发,需要依赖
flink-streaming-java,不知道哪个版本开始已经没有scala后缀,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。