Flink零基础学习(四)RunTime总览以及核心组件简单介绍

Flink零基础学习(四)RunTime总览以及核心组件简单介绍,第1张

Flink零基础学习(四)RunTime总览以及核心组件简单介绍

用户的任务会以job方式提交给集群,runtime负责整个作业调度,支持各种作业方式。

简单的一个作业表单

实际上作业是:

这里就是逻辑图(JobVertex)和执行图(ExecutionVertex)的区别,虚线圈表示的是一个Operator chain(要求并发度一致,数据交换1对1)

按官网总结runtime图如下:

核心组件有JobMaster(管理作业),ResourceMnager(资源调度),TaskExecutor(任务执行器)。下面分别介绍作用:

一.Jobmaster功能:

1.作业生命周期的管理 2.任务的调度 3.出错恢复 4.作业状态查询 5.分布式快照(checkpoint和savepoint)

1.1作业的生命周期有正常流程(created,running,finshed),异常( restarting .failing,failed)用户 *** 作(cancelling,canceled)以及其他

1.2任务调度(核心):根据调度策略(SchedulingStrategy)来控制调度的时机.细分为事件驱动(类如任务开始后,生命周期变化或者失败后重启);多种调度策略(流式策略(Eager),批次策略(lazy from sources)等)

正常调度过程如下:初始(created),申请资源(scheduled),开始部署(deploying),部署成功(running)

出错恢复过程: 停止相关任务,重置任务状态,通知调度策略重新调度,由出错恢复策略决定

二.任务运行容器(TaskExecutor)

分为资源模型,资源的子集

Task资源会被分配成一个个Task Slot(按数量均分)

Task Solt可以共享,但必须是同一个共享组(SlotSharingGroup)中的不同类型的(jobVertex)的任务,这样做是为了减少数据交换开销,方便用户资源配置和负载均衡

 任务执行图(引用其他文档)

每个任务独占一个线程,任务从InputGate中读取数据,送到OperatorChain,OperatorChain再将数据输出到ResultPartition

三.资源管理

ResourceManager管理TaskExecuto,又必须向jobMaster注册,其下SlotManager 管理slot(通过心跳更新slot状态),所以一个slot申请流程是:JobMaster->resourceManager->taskExecutor->JM

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5688029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存