1

我需要关于在 K8 上部署 Flink 应用程序的帮助

我们有 3 个源会以 SQL 查询的形式发送触发条件。总查询数约为 3-6k,实际上是 flink 实例的沉重负载。我尝试执行,但它非常慢并且需要很多时间才能开始。

由于查询量很大,我们决定为每个源创建多个 flink 应用实例。所以有效地一个 flink 实例将只执行 ~1-2K 查询。

示例:sql查询源为A、B、C

Flink 实例:

App A --> 将只负责处理源 A 查询

App B --> 将只负责处理源 B 查询

App C --> 将只负责处理源 C 查询

我想在 Kubernetes 上部署这些实例

问题:

a)是否可以使用迷你集群(内置)部署独立的 flink jar?就像启动主方法一样:Java -cp mainMethod(sourceName 是命令行参数 A/B/C)。

b) 如果 k8 的一个 pod 或 flink 实例宕机,那么我们如何在另一个 pod 或另一个 flink 实例中管理它?是否可以将工作交给其他 pod 或其他 flink 实例?

对不起,如果我把两个或更多的东西混在一起:(

感谢你的帮助。谢谢

4

1 回答 1

0

撇开完全一次语义的问题不谈,处理这个问题的一种方法是有一个并行的源函数来发出 SQL 查询(每个子任务一个),以及一个FlatMapFunction执行查询的下游(每个子任务一个)。然后,您的来源可以向查询发送更新,而不会强制您重新启动工作流。

于 2020-08-27T15:30:23.227 回答