【问题标题】:why do we have flink-streaming-java and flink-streaming-scala modules in flink source code为什么我们在 flink 源代码中有 flink-streaming-java 和 flink-streaming-scala 模块
【发布时间】:2019-02-25 00:54:35
【问题描述】:
【问题讨论】:
标签:
apache-flink
flink-streaming
flink-sql
【解决方案1】:
flink-stream-java 和 flink-stream-scala 都提供了类似的 API 来管理 Flink Streams ;您只需使用其中一种,具体取决于您的语言。
请注意,无论您选择什么,像flink-runtime 和flink-clients 等一些依赖项都依赖于scala 的版本(2.11 或2.12),因为Flink 是基于用scala、Akka 编写的框架.
目前正在努力从更高级别的 API flink-table (FLINK-11063) 中删除 scala 依赖项。
【解决方案2】:
flink-stream-java是java api for stream的实现。 flink-stream-scala是scala api for stream的实现。所以你可以在 flink-stream-java 中找到 DataStream.java,在 flink-stream-scala 中找到 DataStream.scala。
【解决方案3】:
这两个模块会完成相同的功能,但不同的开发者接收到的语言不同,个人task scala更适合大数据、flink spark等语言的算子描述。