flink 本地_flink教程-详解flink 1.11中的新部署模式-Application模式

本文介绍了Apache Flink的Application模式,作为对session和per job模式的补充。Application模式解决了per job模式中客户端压力大、网络开销高的问题,支持直接从HDFS提交任务,减少了部署时间。文章详细讲解了如何通过程序提交任务到YARN集群,并解析了Application模式的源码流程,包括从入口`CliFrontend`到`ApplicationClusterEntryPoint`的执行过程。
摘要由CSDN通过智能技术生成

66a6429239bb30d719433e88d209b603.png
  • 背景
    • session模式
    • per job模式
  • per job模式的问题
  • 引入application模式
  • 通过程序提交任务
  • Application模式源码解析
    • 入口
    • 执行具体的操作
    • runApplication方法
    • 构造ClusterDescriptor
    • Deploy Application Cluster
    • ApplicationClusterEntryPoint

背景

目前对于flink来说,生产环境一般有两个部署模式,一个是 session模式,一个是per job模式。

session模式

这种模式会预先在yarn或者或者k8s上启动一个flink集群,然后将任务提交到这个集群上,这种模式,集群中的任务使用相同的资源,如果某一个任务出现了问题导致整个集群挂掉,那就得重启集群中的所有任务,这样就会给集群造成很大的负面影响。

per job模式

考虑到集群的资源隔离情况,一般生产上的任务都会选择per job模式,也就是每个任务启动一个flink集群,各个集群之间独立运行,互不影响,且每个集群可以设置独立的配置。

per job模式的问题

目前,对于per job模式,jar包的解析、生成JobGraph是在客户端上执行的,然后将生成的jobgraph提交到集群。很多公司都会有自己的实时计算平台,用户可以使用这些平台提交flink任务,如果任务特别多的话,那么这些生成JobGraph、提交到集群的操作都会在实时平台所在的机器上执行,那么将会给服务器造成很大的压力。

此外这种模式提交任务的时候会把本地flink的所有jar包先上传到hdfs上相应 的临时目录,这个也会带来大量的网络的开销,所以如果任务特别多的情况下,平台的吞吐量将会直线下降。

引入application模式

所以针对flink per job模式的一些问题,flink 引入了一个新的部署模式--Application模式。 目前 Application 模式支持 Yarn 和 K8s 的部署方式,Yarn Application 模式会在客户端将运行任务需要的依赖都上传到 Flink Master,然后在 Master 端进行任务的提交。

此外,还支持远程的用户jar包来提交任务,比如可以将jar放到hdfs上,进一步减少上传jar所需的时间,从而减少部署作业的时间。

具体的使用命令是:

/bin/flink
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值