Flink的部署模式和运行模式

集群角色

Flink提交作业和执行任务,需要几个关键组件:

  • 客户端:代码由客户端获取并作转换,之后提交给Jobmanager

  • Jobmanager就是Flink集群的管事人,对作业进行中央调度管理;当从客户端获取到转换过的作业后会进一步进行处理,然后分发给众多的taskmanager

  • Taskmanager:真正干活的人,数据的处理操作都是它们来做

在这里插入图片描述

部署模式

在一些应用场景中,对于集群资源分配和占用的方式,可能会有特定的需求。Flink为各种场景提供了不同的部署模式,主要有以下三种:会话模式(Session Mode)、单作业模式(Per-Job Mode)、应用模式(Application Mode)。
它们的区别主要在于:集群的生命周期以及资源的分配方式、以及应用的main方法到底在哪里执行——客户端(Client)还是JobManager。

会话模式(Session Mode)

会话模式其实是最符合常规思维模式。我们需要先启动一个集群,保持一个会话,在这个会话中通过客户端提交作业。集群启动时所有资源已经确定,所以所有提交的作业会竞争集群中的资源。
会话模式适合单个规模小、执行时间短的大量作业。
在这里插入图片描述

单作业模式(Per-job Mode)

会话模式会因为资源共享导致很多问题,所以为了更好地隔离资源,我们可以考虑为每个提交的作业启动一个集群,这就是所谓的单作业模式。
在这里插入图片描述
作业完成后集群就会被关闭,所有资源也会释放。
Flink本身无法直接这样运行,需要借助资源管理框架(yarn、K8S)

应用模式(Applicaiton Mode)

上面两种模式应用代码都是在客户端执行,然后提交给jobmanager。这种方式会占用客户端大量网络带宽,加重客户端资源消耗。
解决办法不要客户端了,直接把应用提交给jobmanager,也就意味着我们需要为每一个应用单独启动一个jobmanager,也就是创建一个集群,这个jm只为这一个应用而存在,执行结束后jm也就关闭了。
在这里插入图片描述

和单作业模式的区别和联系就是:他们都是提交作业后才创建集群,单作业模式通过客户端提交作业,客户端解析出的每一个作业对应一个集群,而应用模式下,是由jobmanager直接执行应用程序的。

Yarn运行模式

YARN上部署的过程是:客户端把Flink应用提交给Yarn的ResourceManager,Yarn的ResourceManager会向Yarn的NodeManager申请容器。在这些容器上,Flink会部署JobManager和TaskManager的实例,从而启动集群。Flink会根据运行在JobManger上的作业所需要的Slot数量动态分配TaskManager资源。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值