返回

了解Flink 1.11中的新部署模式:App模式

见解分享

Flink 1.11中的新部署模式:App模式

Apache Flink是一个用于大规模数据处理的开源框架,它提供了高吞吐量、低延迟和准确性。Flink可以在多种环境中运行,包括本地、Yarn、Mesos和Kubernetes。

在Flink 1.11之前,只有两种部署模式:Session模式和Per Job模式。Session模式会预先在Yarn或Kubernetes上启动一个Flink集群,然后将任务提交到这个集群上。这种模式的优点是任务可以共享资源,从而提高资源利用率。但是,如果某一个任务出现了问题导致整个集群挂掉,那么所有正在运行的任务都会受到影响。

Per Job模式不会预先启动Flink集群,而是每次提交任务时都会创建一个新的集群。这种模式的优点是任务之间是相互独立的,不会互相影响。但是,每次启动一个新的集群都会消耗大量的时间和资源。

App模式是作为Session模式和Per Job模式的补充而引入的。App模式预先在Yarn或Kubernetes上启动一个Flink集群,然后将任务提交到这个集群上。但是,与Session模式不同的是,App模式中的任务可以使用不同的资源。这意味着App模式可以提高资源利用率,降低成本。

App模式的优势和劣势

App模式具有以下优势:

  • 提高资源利用率: App模式允许任务使用不同的资源,从而提高资源利用率。
  • 降低成本: App模式可以降低成本,因为它不会每次启动一个新的集群。
  • 简化管理: App模式简化了管理,因为它只需要管理一个集群,而不是多个集群。

App模式也存在一些劣势:

  • 任务之间可能会互相影响: App模式中的任务可能会互相影响,因为它们共享同一个集群。
  • 集群可能出现单点故障: App模式中的集群可能会出现单点故障,因为只有一个集群。

App模式的使用方法

App模式的使用方法与Session模式和Per Job模式类似。首先,需要在Yarn或Kubernetes上启动一个Flink集群。然后,就可以将任务提交到这个集群上。

以下是App模式的使用示例:

flink run -m app -ynm my_job -yn APP_NAME_YARN -ytm 1024m -yt APP_NAME_YARN -yjm 512m -yjm APP_NAME_YARN -yqu 2 -yarn-target yarn-per-job -ys 1 -yx LOCAL -yfs hdfs:///tmp/input -yfu hdfs:///tmp/output

这条命令将在Yarn上启动一个Flink集群,并将任务my_job提交到这个集群上。任务my_job使用1024MB的内存和512MB的Java堆内存,并且使用了2个YARN队列。

总结

App模式是Flink 1.11中的新部署模式,它提供了更高的资源利用率和更低的成本。App模式的使用方法与Session模式和Per Job模式类似,可以通过简单的命令启动集群和提交任务。