kubernetes - Flink-在Kubernetes上部署Flink应用程序的多个实例

标签 kubernetes apache-flink flink-streaming flink-sql flink-batch

我需要有关在K8上进行Flink应用程序部署的帮助
我们有3个源将以SQL查询的形式发送触发条件。总查询量约为3-6k,实际上对flink实例而言是沉重的负担。我尝试执行,但是速度很慢,并且需要很多时间才能开始。
由于查询量很大,我们决定为每个源创建多个flink应用程序实例。因此,一个有效的flink实例将仅执行约1-2K查询。
示例:sql查询源是A,B,C
Flink实例:
应用A->仅负责处理源A查询
应用B->仅负责处理源B查询
App C->将仅负责处理源C查询
我想在Kubernetes上部署这些实例
题:
a)是否可以使用迷你集群(内置)部署独立的flink jar?就像刚启动主方法一样:Java -cp mainMethod(sourceName是命令行参数A / B / C)。
b)如果k8的一个pod或flink实例关闭,那么我们如何在另一个pod或另一个flink实例中对其进行管理?是否可以将工作交给其他Pod或其他flink实例?
对不起,如果我将两件事或更多件事混在一起:(
感谢您的帮助。谢谢

最佳答案

抛开一次语义的问题,解决此问题的一种方法是拥有发出SQL查询的并行源函数(每个子任务一个)和执行查询的下游FlatMapFunction(每个子任务一个) 。然后,您的源就可以发送对查询的更新,而不必强制您重新启动工作流。

关于kubernetes - Flink-在Kubernetes上部署Flink应用程序的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63554920/

相关文章:

kubernetes - Metricbeat kubernetes 模块无法连接到 kubelet

scala - Flink RocksDB 未在任务管理器中创建 sst 文件

apache-flink - 弗林克 : Stateful stream processing by key

java - 如何创建每隔一段时间进入 Apache Beam 管道的虚假数据流?

apache-flink - 如何为同一独立集群上运行的不同 flink 作业指定不同的 log4j.properties 文件

kubernetes - 如何运行 kubernetes e2e 测试?

kubernetes - 如何更改印花布监听默认端口?

docker - KubeDNS 错误,服务器行为异常

java - apache beam 中的 CEP 与 flink

optimization - 如何知道哪些运算符可以在 Apache Flink 中链接