Flink运行原理

news2024/9/27 15:28:59

Apache Flink是什么?对于这个问题,Apache软件基金会官方给出了定义:Flink是一种框架和分布式处理引擎,主要用于对无界和有界数据流进行有状态计算。

本文从以下几个方面来了解flink运行原理

Flink运行时四大组件】

Flink任务提交流程(standalone模式)】

【基于Yarn的Flink任务提交流程】

1.flink运行时四大组件

①作业管理器(jobmanager)

应用程序执行的主过程中,执行应用程序会被jobmanager最先接收这个应用程序会包括:作业图(jobGraph),逻辑数据流图(logical dataflow graph) 和打包了所有的类,库和其他资源的jar包。jobmanager会向资源管理器请求执行任务必要的资源,也就是任务管理器上的插槽(slot).一旦它获取了足够的资源,就会将执行图分发到真正运行它们的taskmanager上。在实际运行中,jobmanager负责协调各项中央操作。

②任务管理器(taskmanager)

taskmanager是指工作进程。Flink中包含了多个taskmanager,每个taskmanager中又存在着一定数量的插槽(slots),插槽的数量限制了TaskManager能够执行的任务数量。开始运行后,taskmanage中的插槽会被注册给资源管理器,在收到指令后,taskmanager会提供多个插槽任jobmanager调用。jobmanager通过给插槽分配tasks来执行。

运行同一应用程序的taskmanager可以在执行过程中互相交换数据。

③资源管理平台(resourcemanager)

资源管理器作业管理器申请插槽资源时,会将有空闲插槽任务管理器分配给作业管理器。如果没有足够的插槽来满足作业管理器的请求,它还向资源提供平台发起会话,以提供启动takmanager进程的容器。

④分发器(dispatcher)

1提供了REST接口在应用提交时可以跨作业运行,。

2)应用被提交执行的情况下,分发器启动将应用提交给jobmanager。

3)webui会由dispatcher启动,以便便展示和监控作业的执行信息。

4)这取决于应用提交运行的方式取决了是否需要dispatcher

2.flink任务提交流程(standalone模式)

①由应用端(App)提交应用给分发器(dispatcher)

②Dispatcher启动并提交应用给JobManager

③JobManager向resourcemanager请求slots(插槽)资源

④resourcemanager收到了JobManager的资源请求后,就去启动TaskManager

⑤TaskManger启动之后,会去resourcemanager注册slots

⑥resourcemanager收到TaskManger的注册slots请求后,会给TaskManger发出提供slot的指令

⑦TaskManager接到指令后JobManager会被告知有所需数量的slots使用

⑧JobManager得知有足够的slots可以使用后,就会提交要执行的任务给TaskManager

⑨与此同时,TaskManager之间也会进行数据的交换

3.基于Yarn的flink任务提交流程

①Flink客户端上传flink的jar包和配置到HDFS

②客户端提交job到resourcemanager(yarn)

③resourcemanager启动ApplicationMaster,同时ApplicationMaster启动JobManager,之后jobmanager从HDFS上加载Flink的jar包和配置环境(除了yarn的resourcemanager,flink也有自己的resourcemanager,只不过它不管理资源,而是由yarn的resourcemanager管理资源)

④jobmanager向resourcemanager申请资源

⑤jobmanager申请到资源后,启动TaskManager,同样TaskManager向flink的ResourceManager注册slot,因此jobmanager得知有足够的slots可以使用,就会将job任务提交给TaskManager去执行,同时taskmanager会从HDFS加载flink的jar包和环境配置。

注:第二张图描述的是job模式,每提交一个job就会有对应的一个集群,而session模式是会先创建一个包含上述第二张图组件的集群,其运行流程与第二张图是相同的。

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

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

相关文章

骨传导耳机可以长期佩戴吗,几款佩戴舒适的骨传导耳机清单

骨传导耳机是通过耳朵传声方式,提高了听神经的使用频率,对听觉系统所产生刺激会随之下降。目前骨传导耳机主要应用于运动和娱乐两大领域,尤其是在运动场景中骨传导耳机能够避免传统耳机因佩戴入耳式耳机造成的听力下降问题,更能增…

Python批量将doc转成docx并读取docx的内容

有时候我们需要将doc的文件转成docx的格式,但是如果直接修改文件名后缀的话有时候会没有效果,今天我们利用python批量将doc后缀的word文档转成docx的格式。 也找了很多方法,最终还是找到了就是利用win32com去解决这个问题 很多人在执行这一…

【MySQL】不就是事务

前言 嗨咯,小伙伴们大家好呀,我已经一个星期没有更新了,实在抱歉!本期我们要学习MySQL初阶中的最后一课,MySQL数据库中的事务也算是近几年面试必考的问题,所以我们一定要认真学习。 目录 前言 目录 一、事…

学会用智慧轻松的方式过生活

曾经,有位远在黑龙江的女性福主告诉峰民,她说她活不久了。 峰民很是惊讶,不可能吧,你才39岁啊, 她说:我查出了子宫有瘤,峰民听后就说,没事,放心,肯定是良性。…

Python3,处理Excel文件IO流的方法那么多,或许只有Pandas算得上靠谱。

Pandas处理Excel文件IO流的方法 1、引言2、代码实例2.1 什么是文件IO流2.1.1定义2.1.2 字节流、字符流 2.2 常见的Excel文件IO流处理方法2.3 Pandas处理Excel文件IO流2.3.1 直接读取处理2.3.2 转换io流进行处理 3、总结 1、引言 小屌丝:鱼哥, 求助。 小…

深度学习技巧应用22-构建万能数据生成类的技巧,适用于CNN,RNN,GNN模型的调试与训练贯通

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用22-构建万能数据生成类的技巧,适用于CNN,RNN,GNN模型的调试与训练贯通。本文将实现了一个万能数据生成类的编写,并使用PyTorch框架训练CNN、RNN和GNN模型。 目录&#xff1…

摄像机控制——旁轴摇移

通常摄像机进行摇移控制的时候,都是以摄像机正前方中心位置作为注视点进行环绕控制的,如果在注释点位置有物体,那么感受上是围绕着该物体进行观察。 但是最近公司的策划要求摇移时候的围绕点是鼠标点击的位置,而不是摄像机的正中心…

零基础网络安全学习路线,真的很全,建议收藏!!!

很多小伙伴在网上搜索网络安全时,会出来网络安全工程师这样一个职位,它的范围很广,只要是与网络安全挂钩的技术人员都算网络安全工程师,一些小伙伴就有疑问了,网络安全现在真的很火吗? 那么今天博主就带大…

从0实现基于Linux socket聊天室-多线程服务器模型(一)

前言Socket在实际系统程序开发当中,应用非常广泛,也非常重要。实际应用中服务器经常需要支持多个客户端连接,实现高并发服务器模型显得尤为重要。高并发服务器从简单的循环服务器模型处理少量网络并发请求,演进到解决C10K&#xf…

AntDB数据库将携创新性解决方案亮相2023可信数据库发展大会

由中国通信标准化协会指导,中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)主办的“2023可信数据库发展大会”将于2023年7月4日——5日在北京国际会议中心召开。作为深耕通信行业15年的国产数据库产品,AntDB受邀参会&…

记录一下kibana启动链接报错问题(kibana server is not ready yet)

记录一下kibana启动链接报错问题(kibana server is not ready yet) 今天启动kibana出现该问题 先去看了看是否是elasticsearch连接出错 启动了容器 docker start elasticsearch docker start kibana进入了kibana容器 docker exec -it kibana bash进行了下面的操作&#xf…

No suitable driver found for

在学习Mbatis时候遇到的奇怪的问题,报错提示如图所示,提示找不到数据库驱动 检查db.properties文件,一开始认为没问题 drivercom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/mybatis?useSSLfalse&useUnicodetrue&characterEncodingUTF…

华为OD机试真题2023Q1 100分 + 2023 B卷(JavaPythonJavaScript)

目录 2023 5月 B卷 “新加题”(100分值)2023Q1 100分下面分享一道“2023Q1 200分 机器人活动区域”的解题思路一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出 大家好,我是哪吒。 五月份之前…

react基础-生命周期render props模式高阶组件原理揭秘

组件生命周期(★★★) 目标 说出组件生命周期对应的钩子函数钩子函数调用的时机 概述 意义:组件的生命周期有助于理解组件的运行方式,完成更复杂的组件功能、分析组件错误原因等 组件的生命周期: 组件从被创建到挂…

通用机器人里程碑?谷歌展示全球首个多任务AI智能体

目录 两大硬核科技支撑通用机器人研发(1)自生成训练数据(2)基于多模态模型 科技巨头同台比拼 中国产业链凸显性价比优势发展初期硬件先行 运动模块价值量最高 已学会套圈、搭积木、抓水果…… 人工智能和机器人,总是不…

MES生产管理系统与ERP系统的集成以及优势

导言: 在当今数字化转型的浪潮中,企业越来越意识到整合各个部门的数据和流程的重要性。MES生产管理系统和ERP系统是两个关键的管理工具,它们在企业中发挥着不可或缺的作用。本文将探讨企业MES管理系统与ERP系统进行集成,以及这种…

它如何做到让我们持久且不感疲劳

写在前面 随着科技的进步和数字化生活的兴起,人们长时间使用显示器的需求增加,越来越多的人戴眼镜并且面临眼睛问题。显示器屏幕灯在当今社会也逐渐扮演着不可或缺的角色。 首先,显示器屏幕灯能够提供必要的亮度,确保我们在各种…

pyhton-docx表格合并单元格

合并单元格需要指定两个单元格, from docx_utils import set_table_singleBoard from docx import Documentdocument Document() table document.add_table(rows3, cols3) # 创建一个包含 3 行 3 列的表格 table.cell(0, 0).merge(table.cell(0, 1)) # 合并第一…

用正则表达式进行input框的限制输入

vue项目可以用input事件输入 1.限制input输入框只能输入大小写字母、数字、下划线的正则表达式&#xff1a; 用户名< input type"text" placeholder"只包含数字字母下划线" onkeyup"this.valuethis.value.replace(/[^\w_]/g,);"> 2.限…

linux如何修改sudoers文件,将非root用户加入到 sudoers 文件中

需求 由于在非 root 用户下执行 sudo 命令会报错 cc 不在 sudoers 文件中。此事将被报告。所以需要将 cc 这个用户加入到 sudoers 文件中进行授权 解决 要修改 sudoers 文件&#xff0c;您需要以 root 用户身份进行操作。以下是一种常见的方法&#xff1a; 1、使用 root 用…