Flink入门教程--Jobs and Scheduling(任务和调度)

机器学习项目落地三大生死线:数据可信、集成部署与超参流水线 机器学习模型从实验室走向生产系统,核心挑战不在算法本身,而在于数据质量、模型鲁棒性与训练过程的工程可控性。数据分布漂移和标签噪声会导致模型学习虚假相关,必须通过可审计的数据可信度校验闭环加以防控;单一模型难以应对真实场景的复杂故障模式,需以异构基模型、特征隔离与动态加权构建可运维的集成学习系统;而GridSearch式调参无法满足工业级复现性与资源效率要求,须依托容器化、版本化、可观测的超参数优化流水线。这些实践直击制造、金融、医疗等行业的模型上线痛点,尤其适用于正面临数据混乱、服务不稳或调参低效困境的算法 阅读详情

原谅链接:https://ci.apache.org/projects/flink/flink-docs-release-1.3/internals/job_scheduling.html#jobs-and-scheduling

该文档简单描述了Flink是如何调度Job的,以及如何在JobManager上表现并跟踪Job状态。

调度

Flink通过任务槽(Task Slot)定义执行资源,每个TaskManager都有一或多个任务槽,每个任务槽都可以运行一个并行任务流,一个流包括多个连续的任务,例如一个MapFunction的第n个并行实例与一个ReduceFunction的第n个并行实例的连续任务。注意,Flink通常会并发执行连续的任务,对于Streaming 程序来说,任何情况都如此执行;而对于batch 程序,多数情况也如此执行。

下图举例说明。由一个data source、一个MapFunction和一个ReduceFunction组成的程序,data source和MapFunction的并发度都为4,而ReduceFunction的并发度为3。一个数据流由Source-Map-Reduce的顺序组成,在具有2个TaskManager,每个TaskManager都有3个Task Slot的集群上运行,则程序执行情况如图所述。

Assigning Pipelines of Tasks to Slots

Flink内通过SlotSharingGroup和CoLocationGroup来定义哪些task共享一个task slot,也可以自定义某些task部署到同一个task slot中。

JobManager数据结构

在job执行期间,JobManager会持续跟踪分布式任务,来决定什么时候调度下一个task(或者tasks),并且对完成的或执行失败的任务进行响应。

JobManager接收JobGraph,JobGraph是数据流的表现形式,包括Operator(JobVertex)和中间结果(intermediateDataSet)。每个Operator都有诸如并行度和执行代码等属性。此外,JobGraph还拥有一些在Operator执行代码时所需要的附加库。

JobManager将JobGraph转换为ExecutionGraph,ExecutionGraph是JobGraph的并行版本:对每个JobVertex,它的每个并行子任务都有一个https://d.docs.live.net/72f746bc85b3dbdf/%E6%96%87%E6%A1%A3/Flink/Documents.one“>ExecutionVertex。一个并行度为100的Operator将拥有一个JobVertex和100个ExecutionVertex。ExecutionVertex会跟踪其特定子任务的执行状态。来自一个JobVertex的所有ExecutionVertex都由一个ExecutionJobVertex管理,ExecutionJobVertex跟踪Operator总体的状态。除了这些节点之外,ExecutionGraph同样包括了IntermediateResult和IntermediateResultPartition,前者跟踪IntermediateDataSet的状态,后者跟踪每个它的partition的状态。

JobGraph and ExecutionGraph

每个ExecutionGraph具有与其相关联的作业状态。此作业状态指示作业执行的当前状态。

Flink job首先处于创建状态,然后切换到运行状态,并且在完成所有工作后,它将切换到完成状态。在失败的情况下,job切换到第一个失败点,即取消所有正在运行任务的地方。如果所有job节点都已达到最终(或者说不可更改)状态,并且job不可重新启动,则job将转换为失败。如果作业可以重新启动,那么它将进入重新启动状态。一旦完成重新启动,它将变成创建状态。

在用户取消作业的情况下,将进入取消状态 ,这需要取消所有当前正在运行的任务。一旦所有运行的任务已经达到最终(或者说不可更改)状态,该作业将转换到已取消状态。

与完成状态不同,取消状态和失败状态表示一个全局的终端状态,并且触发清理工作,而暂停状态仅处于本地终端上。本地终端意味着job的执行已在相应的JobManager上终止,但Flink集群的另一个JobManager可以从持久的HA存储中恢复这个job并重新启动。因此,处于暂停状态的job将不会被完全清理。

States and Transitions of Flink job

在执行ExecutionGraph期间,每个并行任务经过多个阶段,从创建到完成或失败 ,下图说明了它们之间的状态和可能的转换。任务可以执行多次(例如故障恢复)。所以,一个Execution跟踪一个ExecutionVertex的执行,每个ExecutionVertex都有一个当前Execution(current execution)和一个前驱Execution(prior execution)。

States and Transitions of Task Executions

【信息科学与工程学】【数据中心】 第十二篇 超大规模智算中心跨地域互联与协同架构方案-02 任务分配、路径规划、行为协调与冲突消解算法是构建智能自主系统的基石。​​任务分配​​是决策“谁做什么”,追求系统整体效能最优。​​路径规划​​是决策“怎么走去哪里”,保障个体移动的安全与效率。​​行为协调​​是设计“如何一起干”,确保群体协作的有序与高效。​​冲突消解​​则是制定“打架了怎么办”的规则,解决协作过程中的矛盾。这些算法广泛应用于​​无人机编队飞行​​、​​多机器人协同搜索与救援​​、​​智能仓储物流​​(AGV调度)、​​自动驾驶车队​​以及​​工业自动化​。 阅读详情

相关推荐

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 403

Flink程序 Timer实现定时操作

Flink程序中 Timer实现定时操作

胖虎儿的博客 1万+

【信息科学与工程学】【安全领域】第八十三篇 云安全解决方案02

企业中“搞人”与“搞事情”常见问题的分析框架。我将选取4个典型场景,每个场景都从实际管理现象出发,逐步推导出数学模型、参数设定及关联知识。

weixin_49199313的博客 323

四、Flink部署 , job配置与运行

一、安装与配置 1.1standalone 模式 1.1.1上传依赖包 打开配置文件 解压依赖包 通过文件传输工具上传到 opt目录下 [root@localhost ~]# cd / [root@localhost /]# ls bin boot dev etc home jdk lib lib64 media mnt mydata opt proc root run sbin srv swapfile sys tmp usr vagrant

JavaCoder_juejue的博客 4811

flink任务调度器

很牛逼的任务器,可以管理flink的任务

定时执行任务例子 绝对好用

Timer schedule JAVA J2EE WEB 指定每一天某时某分执行某项任务的功能。 读取目录下配置文件的内容。 开发环境jdk1.5.0_22、MyEclipse6.5中文版。 定时任务管理器,定时执行,定时任务,run 绝对能用

Flink学习四:提交Flink运行job

restUI页面提交 1.1 添加上传jar包 1.2 提交任务job 1.3 查看提交的任务 2. 命令行提交 ./flink-1.9.3/bin/flink run -c com.qu.wc.StreamWordCount -p 2 FlinkTutorial-1.0-SNAPSHOT.jar 3. 命令行查看正在运行的job ./flink-1.9.3/bin/flink list 4. 命令行查看所有job ./flink-1.9.3/bin/flink list --all .

码上中年的博客 2722

flink-jobs-config-1.2.0-API文档-中文版.zip

赠送jar包:flink-jobs-config-1.2.0.jar 赠送原API文档:flink-jobs-config-1.2.0-javadoc.jar 赠送源代码:flink-jobs-config-1.2.0-sources.jar 包含翻译后的API文档:flink-jobs-config-1.2.0-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:cn.tenmg,artifactId:flink-jobs-config,version:1.2.0 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

flink原理分析—作业和调度(Jobs and Scheduling)

概述 本文档简要介绍Flink如何进行作业调度,及其如何表示和跟踪JobManager上的作业状态。 注意:本文flink官方的一篇文档的翻译,原文链接在这里。 调度(Scheduling) Flink中的执行资源通过任务槽(Task Slots)来定义。每个TaskManager都有一个或多个任务槽,每个槽都可以运行一个并行任务管道(pipeline of parallel tasks)。管道由...

zg_hover的专栏 2436

Ubuntu 上 1Panel 的安装与高效运维实践

本文详细介绍了在Ubuntu系统上安装和高效运维1Panel面板的完整实践指南。内容涵盖了一键安装、Docker容器可视化部署、计划任务自动化以及网站数据库管理等核心功能,并提供了安全加固、资源监控与数据备份等进阶技巧,旨在帮助用户快速搭建并管理一个强大易用的服务器环境。

weixin_29210759的博客 143

Cesium 模拟飞机坠毁功能

Cesium 模拟飞机坠毁功能,粒子模拟

QQhelphelp的博客 1068

《Flink 技术内幕之 Jobs and Scheduling》(官网翻译)

目录 一、Scheduling 二、JobManager Data Structures 本文简要描述了Flink如何调度作业,以及它如何表示和跟踪JobManager的作业状态。 一、Scheduling Flink中的执行资源是通过任务槽(Task Slots)定义的。每个TaskManager将有一个或多个任务槽,每个任务槽可以运行一个并行任务管道。管道由多个连续的任务组成,例如M...

Mathieu66的博客 1324

SAP ABAP实战:用BAPI_PO_CREATE1创建采购订单时,如何巧妙处理PBXX和PB00条件类型?

本文深入探讨了在SAP ABAP开发中使用BAPI_PO_CREATE1创建采购订单时,如何有效处理PBXX和PB00条件类型的难题。通过分析外协加工订单的特殊需求,提供了从问题定位到解决方案的全流程方法,包括数据流向追踪、字段控制策略和增强实现方案,帮助开发者解决条件类型自动生成的业务痛点。

weixin_30614109的博客 824

Fl一文吃透 Flink Jobs and Scheduling从资源调度到失败恢复

在 Apache Flink 中,一个作业从提交到运行,再到失败恢复,并不是简单地“启动一个程序”那么直接。其背后涉及 Task Slot 资源分配、JobGraph 到 ExecutionGraph 的转换、Job 全局状态机以及 Task 执行状态机等一整套运行时机制。本文将结合 4 张核心示意图,系统解析 Flink 作业调度与执行原理,帮助你真正看懂 Flink Web UI、任务失败日志与故障恢复流程。

hello.reader 576

Dinic算法的复杂度分析及证明

一般图 复杂度主要取决于dfs增广的过程。 将dfs部分的复杂度分成两部分来分析:1)修改增广路上边的流量。至多会增广mmm次,一条增广路的长度至多是nnn,所以这一部分的复杂度是O(nm)O(nm)O(nm)。2)dfs遍历时找增广路失败时经过的边。由于一旦从某条边出发找最短路失败了,我们就不会再走那条边(当前弧优化),所以这一部分的复杂度是O(m)O(m)O(m)的。故而dfs增广的复杂度是O...

这个博客已经搬到了:zhongyuwei.github.io 4391

madgwick算法基于MPU9250姿态融合漂移问题的原因

基于MPU9250的madgwick算法姿态漂移问题原因 0、声明 因为这个是现象是不是共性目前本人还没研究过,只是在个体问题研究的基础上得出的结论,或许我买到的MPU9250是一个盗版:),所以只具备参考性。 1、现象 使用MPU9250的加速度计、角速度计、磁力计(AK8963)原始数据输入到madgwick算法中,得到的姿态最终会在停止姿态变化后仍然漂移一小段时间。其中加速度计和角速度计读取速率为400hz,磁力计为100hz,加速度计采样范围±2g,角速度计采样范...

GreedyZombie的博客 3872

Apache Flink 1.6 Documentation: Jobs and Scheduling

这篇文档简要的描述了Flink怎么样调度作业和Flink在JobManager中如何表述和跟踪作业。Scheduling调度Flink中的执行资源是通过任务执行槽来确定的。每个Tas...

黑光技术 128

Jetson Nano之CSI摄像头操作方法

jetson端csi摄像头的应用方法

ZONGXP的博客 1万+

Cron Jobs在数据工程中的生产级实践:从定时任务到可靠数据管道

Cron jobs 是操作系统级任务调度的基础机制,其核心原理是通过 crond 守护进程基于时间表达式触发独立子进程,实现轻量、透明、可审计的自动化执行。相比 Airflow 等高级编排工具,cron 在时区控制、进程隔离、故障域收敛和审计追溯方面具备不可替代的技术价值,尤其适用于 ETL 调度、日志轮转、健康检查等原子性场景。本文聚焦 data pipelines 的稳定性落地,深入解析 crontab 语法陷阱、Python 主程序健壮性设计、UTC 时区统一策略及生产部署 checklist,帮助数

congsong2560的博客 361

Vue - 简约大气 404 页面

效果图 实现代码 复制即可。 <template> <div> <div class="error"> <!-- 图片可保存到本地 --> <img src="https://img-blog.csdnimg.cn/20210715111039922.png"> <p>抱歉!你访问的页面不存在或已删除 :( </p> <span class="back" @click="go(

🏆 前端领域优质创作者 3370

PyTorch 面试题及参考答案(精选100道)

模块是 PyTorch 中用于自动求导的核心模块。它为张量上的所有操作提供了自动求导的功能。在深度学习中,反向传播是一种用于计算损失函数相对于模型参数的梯度的算法。通过梯度,我们可以使用优化算法(如随机梯度下降)来更新模型的参数,从而最小化损失函数。模块的主要作用就是自动计算这些梯度。当我们创建一个张量时,如果将其属性设置为True,那么 PyTorch 会跟踪该张量上的所有操作。在完成前向传播计算出损失函数后,调用方法,模块会自动根据链式法则反向传播计算出所有需要求导的张量的梯度。

大模型大数据攻城狮的专栏 1681

机器学习生产就绪:从模型部署到系统级稳定性工程

机器学习模型上线不是训练结束,而是工程挑战的开始。在真实业务场景中,模型必须作为可观测、可解释、可兜底的系统组件运行——这涉及服务契约设计、特征与API的显式定义、多级fallback机制、混沌工程驱动的压力验证,以及数据漂移与决策健康度的分层监控。当‘AUC提升’让位于‘P95延迟≤150ms’、‘降级路径100%可用’、‘审计溯源5分钟出报告’时,ML系统才真正具备生产就绪能力。本文聚焦模型落地中的核心工程实践,覆盖Triton服务化、Evidently漂移CI/CD、MLflow+AuditDB治理闭

weixin_33724046的博客 700

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Apache 流框架 Flink,Spark Streaming,Storm对比分析(二)

本文由网易云 发布本文内容接上一篇Apache 流框架 Flink,Spark Streaming,Storm对比分析(一)2.Spark Streaming架构及特性分析2.1 基本架构基于是spark core的spark streaming架构。Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark,也就是把Spark Streaming的输入数...

weixin_34320159的博客 1197

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

玩转Flink流批一体计算引擎

Flink简介 Flink是一个优秀的流式处理引擎,不仅拥有完善的流式处理解决方案,而且将批处理视为有界流,完美实现了流批处理一体化。 Flink能干啥 流式分析 Flink可持续不断得处理事件流,并明确支持一下三种时间语义: 事件时间(event time): 事件产生的时间,记录的是设备生产(或者存储)事件的时间; 摄取时间(ingestion time): Flink 读取事件时记录的时间; 处理时间(processing time): Flink pipeline 中具体算子处理事件的

csdn779343484的博客 1148

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大数据之flink定时器

一、

大数据同盟会的博客 6595
上一篇: Flink入门教程--Data Streaming Fault Tolerance(数据流容错)
下一篇: Flink入门教程--Task Lifecycle(任务的生命周期简介)
vim_wj
博客等级 码龄12年 12粉丝 4原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值