Flink任务提交流程

news2025/6/11 9:58:33

抽象流程

抽象级别:不管是什么模式,大体上就是上面这个流程。

  1. 任务提交给分发器
  2. 分发器把任务提交给JobManager上的JobMaster组件
  3. JobMaster收到任务之后,就会想JobManager上的ResourceManager去请求Slot
  4. JobManager上的ResourceManager会提供给JobMaster相应的Slot
  5. JobMaster把任务调度到具体的TaskManager上去执行
  6. 等待执行结果

 

Standalone模式下的任务提交

  1. 客户端把任务提交给Dispacher(分发器)
  2. 分发器启动JobMaster,并把任务提交给JobMaster
  3. JobMaster收到任务之后,会想JobManager的ResourceManager组件去请求资源
  4. JObManager的ResourceManager收到请求后,直接向TaskManager去请求相应的资源
  5. TaskManager会向JobMaster提供相应的资源
  6. JobMaster把任务调度到TaskManager去执行

 

Yarn-session模式下的任务提交

Session模式提交分2步:

  • 启动yarn-session

  1. yarn-session.sh脚本向Yarn的ResourceManager请求Container(容器),这个容器就是ApplicationMaster
  2. Yarn的ResourceManager收到请求后,就会启动JobManager,这个AppMaster就包含了Flink的JobManager(主节点)
  3. JobManager这个角色,就会启动Dispacher和ResourceManager,这里没有TaskManager和JobMaster
  •  提交任务

  1. 客户端提交任务到Dispacher(分发器)
  2. 分发器就会启动JobMaster
  3. JobMaster会向JobManager的ResourceManager请求资源
  4. JobManager的ResourceManager没有资源,因此向Yarn的ResourceManager申请资源
  5. Yarn的ResourceManager收到请求后,就会启动Container(容器),这个容器就包含了TaskManager角色
  6. TaskManager启动后就会向JobManager的ResourceManager注册资源,同时也会向JobMaster提供资源
  7. JobMaster收到资源后,就会把任务调度给Container去执行,因为Container包含了TaskManager,因此任务会顺利执行完成
  8. 任务执行完之后,Container就会销毁(TaskManager就被销毁了),集群又恢复到第一步的状态

 

per-job模式下的任务提交

和per-job模式下的任务提交类似。

  1. 客户端提交任务到Yarn集群
  2. Yarn的ResourceManager收到任务请求后,会启动Container(容器),也就是AppMaster。这里包含了JobManager(Flink的主角色,这个JobManager没有Dispacher,但是有JobMaster和ResourceManager)
  3. JobManager里的JobMaster向JobManager里的ResourceManager请求资源
  4. JobManager的ResourceManager没有资源,因此会向Yarn去申请资源
  5. Yarn的ResourceManager收到请求后,会额外启动Container(容器),启动的容器就会带有TaskManager(Flink的从角色)
  6. Container会反向注册到AppMaster,告诉AppMaster自己的资源情况
  7. Container会把资源提供给AppMaster(JobManager的JobMaster)
  8. JobMaster会把任务具体地调度给Container去执行(TaskManager)
  9. 任务执行完之后,Container(TaskManager)会被AppMaster销毁,最终,AppMaster也会销毁。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.1.2栈的顺序存储实现

(1)初始化一个顺序栈/栈的判空操作 与顺序表的声明类似 就是要加上一个栈顶指针top 然后把别名SqList改为SqStack 我们发现top指针的大小就是数组下标。 当空栈时,top指针为-1. (2)进栈操作 ep:插入一…

版本控制:git的基本使用

1.git基本介绍及安装 学习网址:Git - Book 安装步骤: Git - 安装 Git 安装完可以在本地电脑上查看: cmd为windows环境 bash为linux的环境 2. Git常用命令 牛客网项目——前置技术(五):版本控制_平什么阿的博客-C…

ffmpeg关于视频前几秒黑屏的问题解决

关于音频播放器视频前两秒黑屏的解决,及QtAV和ffmpeg的环境搭建(软件包可以找李青璠提供,也可以自己下)首先我们可以参考下面两个博客进行ffmpeg的搭建,第一个博客的问题可以在第二个博客里寻求方法解决。其中第一个博…

服务器上后台运行python程序

Linux中将代码nohup后台执行、查看正在运行代码、结束进程写在最前面环境代码示例nohup指令& 后台运行2>&1 错误内容重定向到标准输出查看当前python相关进程结束进程nohup后台pip下载安装写在最前面 一直是pycharm运行服务器上代码,但存在问题&#xf…

3.1、线程概述

3.1、线程概述1.线程概述2.线程和进程区别3.线程和进程虚拟地址空间4.线程之间共享和非共享资源①共享资源②非共享资源5.线程版本NPTL1.线程概述 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的…

通达信指标没有了怎么找回

通达信指标没有了可以恢复,不用太慌张,通达信会自动备份指标公式,可以通过备份文件找回。 1、找到通达信安装文件夹,一般是new_tdx,但是版本不同,安装文件夹可能有区别。本文以new_tdx这个文件夹为例。 如…

什么是零代码与低代码?有什么区别与联系?未来趋势

目前传统软件开发模式并不能很好地满足企业的需求:高人力成本、长研发时间、运维复杂,需求变化快,技术更新快,人员流失。这时零代码或低代码工具出现在市面上并被关注就是必然趋势了。对于不太了解两者的人来说,零代码…

【mysql性能调优 • 三】字符集和校验规则

前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系…

Linux下Nginx配置SSL模块,Nginx安装SSL,Nginx支持https配置详细教程

前提:Linux安装Nginx,参考教程:CentOS7安装Nginx完整教程,Linux系统下保姆式安装Nginx教程 | 老麻 安装好Nginx之后,需要支持SSL时,要单独安装SSL模块,方法如下: 输入 ./nginx –V 命…

2345看图王阻止文件删除和U盘弹出 - 解决方案

2345看图王阻止文件删除和U盘弹出 - 解决方案前言2345看图王解决方案临时方案永久方案前言 用户在使用2345看图王查看图片后,可能会出现图片文件/文件夹无法删除或U盘无法弹出等问题,这是因为2345看图王的辅助模块正在占用图片文件,因此无法…

设计分布式日志系统

一、日志 1.1、什么是日志 日志是一种按照时间顺序存储记录的数据,它记录了什么时间发生了什么事情,提供精确的系统记录,根据日志信息可以定位到错误详情和根源。按照APM概念的定义,日志的特点是描述一些离散的(不连…

Spark----DataFrame和DataSet

Spark之DataFrame和DataSet 文章目录Spark之DataFrame和DataSetDataFrameDSL 语法创建DataFrame查看DataFrame的Schema信息只查看列数据的6种方式按照“age”分区,查看数据条数增加列withColumn修改列名withColumnRenamedRDD 转换为 DataFrameDataFrame 转换为 RDD转…

如何使用双轴XY平台绘制斜向多边形

1. 功能说明 本文示例将实现双轴XY平台绘制斜向多边形的功能。 2. 直角坐标机器人的结构设计 直角坐标机器人各个运动轴通常对应直角坐标系中的X轴、Y轴和Z 轴,其中X 轴和Y 轴是水平面内运动轴,Z轴是上下运动轴。在绝大多数情况下直角坐标机器人的各个直…

SpringBoot集成Easy-Es

文章目录SpringBoot集成Easy-Es一、集成demo二、索引CRUD创建索引查询索引更新索引删除索引三、数据CURD四、参数文档SpringBoot集成Easy-Es Easy-Es(简称EE)是一款基于ElasticSearch(简称Es)官方提供的RestHighLevelClient打造的ORM开发框架&#xff0c…

C语言—实用调试技巧

实用调试技巧什么是bug?调试是什么?有多重要?什么是调试调试的基本步骤Debug和Release的介绍Windows环境调试介绍调试环境的准备快捷键的使用调试的时候查看程序当前信息查看断点信息查看临时变量的值查看局部变量的值查看内存信息查看汇编信…

PERSIANN 降雨数据使用教程

一、前言PERSIANN,“使用人工神经网络从遥感信息中估算降水”,是一种基于卫星的降水检索算法,可提供近乎实时的降雨信息。该算法使用来自全球地球同步卫星的红外 (IR) 卫星数据作为降水信息的主要来源。 红外图像的降水基于云顶温度和降水率之…

ESP32驱动1.28寸GC9A01播放视频(一、视频分辨率的调整和视频格式的转换)

ESP32驱动1.28寸GC9A01播放视频(一、视频分辨率的调整和视频格式的转换)播放前准备转换视频分辨率用FFmpeg将.MP4转换为.mjpeg格式FFmpeg的win10环境搭建FFmpeg的下载环境变量的搭建MP4转换成mjpeg格式总结播放前准备 1.28寸GC9A01屏幕的分辨率是240x24…

prometheus标签

004 标签 1. 作用 Prometheus中存储的数据为时间序列,是由Metric的名字和一系列的标签(键值对)唯一标识的, 不同的标签代表不同的时间序列,即 通过指定标签查询指定数据 。 指标标签实现了查询条件的作用,可以指定不同的标签过滤不同的数据…

类ChatGPT产品Claude上线Slack平台,一手实测体验在此

文章目录Claude-in-Slack自我介绍成语接龙数学能力代码能力其他总结Claude-in-Slack Claude是Anthropic推出的类ChatGPT对话机器人。Anthropic是一家由前OpenAI团队成员创立的人工智能初创公司。Claude免费、支持中文、无需注册,好心动,立刻上手测试。 …

第一个禁止ChatGPT的西方国家

意大利成为第一个有效禁止 ChatGPT 的西方国家。 由于可能违反隐私和数据法,该国的数据监管机构已下令开发聊天机器人的 OpenAI 停止运营。 意大利数据保护局 (GPDP) 提到了一些担忧,包括大量收集用户数据和存储以训练 AI 算法。 ChatGPT 是一种大型语…