首页 > 其他分享 >Flink架构与原理

Flink架构与原理

时间:2024-05-09 10:44:06浏览次数:20  
标签:Task 架构 Flink JobManager YARN TaskManager 模式 原理

Flink集群运行剖析

Flink 运行时由两种类型的进程组成:一个 JobManager 和一个或者多个 TaskManager

Client:Client是提交作业的客户端,虽然不是运行时和作业执行时的一部分,但它负责准备和提交作业到JobManager,它可以运行在任何机器上,只要与JobManager环境连通即可。

JobManager:JobManager它决定何时调度下一个 task(或一组 task)、对完成的 task 或执行失败做出反应、协调 checkpoint、并且协调从故障中恢复等,JobManager根据客户端提交的应用将应用分解为子任务,从资源管理器(YARN等)申请所需的计算资源,然后分发任务到TaskManager执行,并跟踪作业的执行状态等。整个集群有且仅有一个活跃的JobManager,高可用(HA)设置中可能有多个 JobManager,其中一个始终是 leader,其他的则是 standby

 

TaskManager:TaskManager是Flink集群的工作进程。Task被调度到TaskManager上执行。TaskManager相互通信,只为在后续的Task之间交换数据,在 TaskManager 中资源调度的最小单位是 task slot。TaskManager 中 task slot 的数量表示并发处理 task 的数量。请注意一个 task slot 中可以执行多个算子

Task:Flink中的每一个操作算子称为一个Task(任务)。Task是基本的工作单元,由Flink的Runtime来执行。每个Task在一个JVM线程中执行。多个Task可以在同一个JVM进程中共享TCP连接(通过多路复用技术)和心跳信息。它们还可能共享数据集和数据结构,从而降低每个Task的开销。

Task Slot:TaskManager为了控制执行的Task数量,将计算资源(内存)划分为多个Task Slot(任务槽),每个Task Slot代表TaskManager的一份固定内存资源,Task则在Task Slot中执行。


 

 

1、运行模式

Flink有多种运行模式,可以运行在一台机器上,称为本地(单机)模式;也可以使用YARN作为底层资源调度系统以分布式的方式在集群中运行,称为Flink On YARN模式;还可以使用Flink自带的资源调度系统,不依赖其他系统,称为Flink Standalone模式。还有将Flink部署到Kubernetes的模式,称为Flink On Kubernetes模式。

 

 

1.1、单机(本地)模式

直接下载jar包后启动。

1.2、Flink Standalone模式

 

Flink Standalone模式为经典的主从(Master/Slave)架构,资源调度是Flink自己实现的。集群启动后,主节点上会启动一个JobManager进程,类似YARN集群的ResourceManager,因此主节点也称为JobManager节点;各个从节点上会启动一个TaskManager进程,类似YARN集群的NodeManager,因此从节点也称为TaskManager节点。

执行流程:Client接收到Flink应用程序后,将作业提交给JobManager。JobManager要做的第一件事就是分配Task(任务)所需的资源。完成资源分配后,Task将被JobManager提交给相应的TaskManager,TaskManager会启动线程开始执行。在执行过程中,TaskManager会持续向JobManager汇报状态信息,例如开始执行、进行中或完成等状态。作业执行完成后,结果将通过JobManager发送给Client

1.3、Flink On YARN模式

YARN只负责资源的管理和调度,运行哪种应用程序由用户自己实现,因此可能在YARN上同时运行MapReduce程序、Spark程序、Flink程序等。

Flink On YARN模式下的运行架构:

 

1.4、Flink On Kubernetes模式

这种模式没用过,不做介绍

标签:Task,架构,Flink,JobManager,YARN,TaskManager,模式,原理
From: https://www.cnblogs.com/wangqian1002/p/18181610

相关文章

  • Mysql-Mvcc原理
    0.背景在mysql的并发访问中,有几个典型的并发场景:读-读:无需处理,都是读取,不会对数据有影响。写-写:由于都涉及到数据的修改,不可能乱改,所以没有较好的方式来处理,一般都得加锁。读-写:读写场景,加锁当然ok。不过读操作是很频繁的,一但写数据就不让读取了,这种情况是让人很难受的......
  • 《编译原理》阅读笔记:p1-p3
    《编译原理》学习第1天,p1-p3总结,总计3页。一、技术总结1.compiler(编译器)p1,But,beforeaprogramcanberun,itfirstmustbetranslatedintoaforminwhichitcanbeexecutedbyacomputer.Thesoftwaresystemsthatdothistranslationarecalledcomp......
  • 线程池核心原理浅析
    前言由于系统资源是有限的,为了降低资源消耗,提高系统的性能和稳定性,引入了线程池对线程进行统一的管理和监控,本文将详细讲解线程池的使用、原理。为什么使用线程池池化思想线程池主要用到了池化思想,池化思想在计算机领域十分常见,主要用于减少资源浪费、提高性能等。池化思想......
  • 开关电源基本原理和相关概念
    开关电源作为现代电子设备中不可或缺的部分,为我们提供了高效稳定的电力解决方案。从家用电器到工业设备,从通信设备到计算机,开关电源在各种应用中发挥着关键作用。1工作原理开关电源利用开关器件(如MOSFET、BJT等)进行高速开关操作,通常采用脉冲宽度调制(PWM)技术去调整开关器件的工......
  • 服务器分层拓扑架构图形化显示工具
    目录服务器分层拓扑架构图形化显示工具---HWLOC下载依赖包安装源码编译安装执行命令示例显示PCI层次结构参考文档服务器分层拓扑架构图形化显示工具---HWLOC 可移植硬件局部(hwloc)软件包提供了现代架构分层拓扑的可移植抽象(跨操作系统、版本、体系结构等),包括NUMA内......
  • 研究微服务,得出我的大服务架构
    之前一个完整的系统,整个系统是一个整体一个数据源=一个数据库实例下,一个数据库;一切思路很简单,没有什么问题;事务也是在同一个数据库里,外键事务这些都很简单;微服务时代要求拆分,假如顺应微服务时代的思路来拆分可以看到挺复杂的,我这只是举个例子,实际上服务的拆分,并不一定要......
  • 单体到微服务架构的涅槃重生之路?
    在技术演进的历史长河中,单体架构曾是众多项目的起点,但随着业务需求日益复杂,微服务架构凭借其灵活性和可扩展性逐渐成为新宠。行业内对此有着激烈的讨论,尤其是互联网大厂和行业技术大佬们对微服务架构的看法颇具影响力。亚马逊的CTOWernerVogels就曾强调过微服务架构对企业快速......
  • 号称能打败MLP的KAN到底行不行?数学核心原理全面解析
    前几天火爆的Kolmogorov-ArnoldNetworks是具有开创性,目前整个人工智能社区都只关注一件事LLM。我们很少看到有挑战人工智能基本原理的论文了,但这篇论文给了我们新的方向。mlp或多层感知位于AI架构的最底部,几乎是每个深度学习架构的一部分。而KAN直接挑战了这一基础,并且也挑战了......
  • [智能网联汽车] 解读理想汽车的整车EEA电子电气架构 | 2020 [转]
    0序本文首发于华夏EV网、2020年。时至今日,这篇文章虽已过去了2年,今天的我们,对了解当前整车电子电气架构(EEA)的技术演进仍有一定的参考意义。关键词:整车电子电气架构(EEA)分布式架构域集中式架构中央集中式架构中央计算平台(CCU)导读2020年,当我们谈论整车电子电......
  • Linux基础——ARM架构主机系统盘乱序问题
    一、问题描述裸金属宿主机根据qcow2镜像创建的裸金属服务器,创建裸金属服务器时无法正常将sda盘符落在系统盘上;lsblk发现系统盘定义的盘符漂移到sdc盘,涉及问题裸金属服务器的磁盘slot直连磁盘和Raid块设备的启动顺序,无法将/dev/sda盘符落在主机直连磁盘上; 二、问题排查1、......