一.运行架构

1.架构

基于yarn模式

0) Flink任务提交后,Client向HDFS上传Flink的Jar包和配置
1) 向Yarn ResourceManager提交任务,
2) ResourceManager分配Container资源,Yarn通知NodeManager启动ApplicationMaster,ApplicationMaster启动后加载Flink的Jar包和配置构建环境,然后启动JobManager
3) Client提交Job给Dispatcher
4) Dispatcher将JobGraph转发给JobManager
5) JobManager向Flink ResourceManager申请资源启动
6) Flink ResourceManager向Yarn申请资源TaskManager
7) Yarn ResourceManager分配Container资源。
8) Flink ResourceManager向通知资源所在的NodeMananger启动TaskManager
9) NodeManager加载Flink的jar和配置环境启动TaskManager,反向JobManager发送心跳包,等待任务
10) JobManager将执行的任务发送给TaskManager执行。

2.组件

Application Master 部分包含了三个组件:

1) Dispatcher

负责接收用户提供的作业,并且负责为这个新提交的作业启动一个新的 JobManager 组件

2) ResourceManager

负责资源的管理,在整个 Flink 集群中只有一个 ResourceManager

3) JobManager

负责管理作业的执行,在一个 Flink 集群中可能有多个作业同时执行,每个作业 都有自己的 JobManager 组件

还有其他组件:

1) TaskManager

主要负责执行具体的task任务,从JobManager处接收需要部署的 Task,部署 启 动后,与自己的上游建立连接,接收数据并处理。

2) Cluster Manager

集群管理器,比如Standalone、YARN、K8s等。

3) Client

提交Job的客户端,可以是运行在任何机器上(与 JobManager 环境连通即可)。提交Job后,Client可以结束进程(Streaming的任务),也可以不结束并等待结果返回。

二.核心概念

TaskManager 、 Slots

  • Taskmanager 类比 Spark 的Excutor

    1个Taskmanager,1个JVM进程,运行多个线程Task,Task的个数等于Slot的个数。类似Spark的Excutor。

  • Slot 类比 Spark的Core

    相同点

    1个Slot启动1个线程,Slot的个数决定最大并行的Task数

    不同点

    ①Slot多个Job共享,当空闲时其他Job可以使用(Yarn Session-Cluster模式);

    Core只能当前Job内部使用,其他Job无法使用

    ②TaskManager的内存均分给Slot,意味Slot是内存空间,不是Spark的Core。

Parallelism(并行度)

正在执行的task数,就是当前的并行度

  • 设置并行度

Spark:调用特殊算子(repartition)或者Shuffle。

Flink:可以直接给算子设置并行度,或者全局设置

注意:某些数据源数据的采集是无法改变并行度,如Socket

某个算子并行度2那么这个算子对应得task会拆分成2个subtask,一个特定算子的subtask的个数被称之为其并行度(parallelism),一般情况下,一个流程序的并行度是其所有算子中最大的并行度。

Task 、Subtask

  • Task

可以理解为Spark的一个Stage中的并行度将不同算子的subtask组成的1个任务链,作为1个task执行

  • Subtask

可以理解为1个算子有2个并行度,那么这个算子所在的Task就会拆分成两个SubTask。

Operator Chains(任务链)

可以理解为Spark中的一个Stage的同一分区的多个转换算子在1个task运行。

任务链形成条件:one-to-one的数据传输并且并行度相同

ExecutionGraph(执行图)任务生成过程

①client生成Sream Graph(数据流图)

②client 根据Sream Graph(数据流图)满足one to one 就转换成操作链,转换为 JobGraph(任务图)

③client将JobGraph(任务图)提交给JobManager,JobManager根据JobGraph(任务图)生成ExecutionGraph(执行图),然后展开并行度,转换为物理执行图,提交给TaskManager运行。

提交流程

通用的提交流程

基于yarn的提交流程

Flink(二)【架构原理,组件,提交流程】的更多相关文章

  1. Spark运行架构及作业提交流程

    1.yarn-cluster模式: (1)client客户端提交spark Application应用程序到yarn集群. (2)ResourceManager收到了请求后,在集群中选择一个NodeM ...

  2. Flink提交流程和架构

    一.Flink提交任务的流程 Flink任务提交后,Client向HDFS上传Flink的jar包和配置,之后向Yarn ResourceManager提交任务,ResourceManager分配Co ...

  3. 小记---------spark架构原理&主要组件和进程

    spark的主要组件和进程       driver (进程):     我们编写的spark程序就在driver上,由driver进程执行       master(进程):     主要负责资源的 ...

  4. Mybatis架构原理(二)-二级缓存源码剖析

    Mybatis架构原理(二)-二级缓存源码剖析 二级缓存构建在一级缓存之上,在收到查询请求时,Mybatis首先会查询二级缓存,若二级缓存没有命中,再去查询一级缓存,一级缓存没有,在查询数据库; 二级 ...

  5. SpringMVC架构&组件&执行流程

    SpringMVC架构: 组件: DIspatcherServlet:前端控制器.相当于mvc模式的c,是整个流程控制的中心,负责调用其他组件处理用户的请求,降低了组件之间的耦合性. HandlerM ...

  6. Flink源码剖析:Jar包任务提交流程

    Flink基于用户程序生成JobGraph,提交到集群进行分布式部署运行.本篇从源码角度讲解一下Flink Jar包是如何被提交到集群的.(本文源码基于Flink 1.11.3) 1 Flink ru ...

  7. [源码分析] 带你梳理 Flink SQL / Table API内部执行流程

    [源码分析] 带你梳理 Flink SQL / Table API内部执行流程 目录 [源码分析] 带你梳理 Flink SQL / Table API内部执行流程 0x00 摘要 0x01 Apac ...

  8. 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点

    大数据体系概览Spark.Spark核心原理.架构原理.Spark特点 大数据体系概览(Spark的地位) 什么是Spark? Spark整体架构 Spark的特点 Spark核心原理 Spark架构 ...

  9. Flink资料(3)-- Flink一般架构和处理模型

    Flink一般架构和处理模型 本文翻译自General Architecture and Process Model ----------------------------------------- ...

随机推荐

  1. POJ 1442 Air Raid(DAG图的最小路径覆盖)

    题意: 有一个城镇,它的所有街道都是单行(即有向)的,并且每条街道都是和两个路口相连.同时已知街道不会形成回路. 可以在任意一个路口放置一个伞兵,这个伞兵会顺着街道走,依次经过若干个路口. 问最少需要 ...

  2. docker添加sudo权限

    sudo groupadd docker  # 添加group sudo gpasswd -a think docker  # 添加用户到组 sudo service docker restart n ...

  3. pytest-mian函数运行

    1.设置多并发运行 1.命令行安装 pip install pytest-xdist #安装插件,进行多并发运行,#调用:-n -5 import pytest # pytest.main([&quo ...

  4. 那一天,我被Redis主从架构支配的恐惧

    面试官:要不你来讲讲你最近在看的点呗?可以拉出来一起讨论下(今天我也不知道要问什么) 候选者:最近在看「Redis」相关的内容 面试官:嗯,我记得已经问过Redis的基础和持久化了 面试官:要不你来讲 ...

  5. jpg与jpeg的区别在哪

    JPG文件的优点是体积小巧,并且兼容性好,因为大部分的程序都能读取这种文件,这是因为JPG格式不仅是一个工业标准格式,而且更是web的标准文件格式.JPG文件如此拥有如此便利的条件,难怪得到了业余玩家 ...

  6. [atARC077F]SS

    (以下字符串下标从0开始,并定义$2s=s+s$) 考虑$f(S)$,即令$l=\max_{2i<|S|且S[0,i)=S[|S|-i,|S|)]}i$,则$f(S)=S+S[l,|S|-l)$ ...

  7. UNCTF2020 web writeup

    1.Easy_ssrf 给了file_get_contents,直接读取flag即可 2.Easyunserialize 利用点在 构造uname反序列化逃逸即可 3.Babyeval 两个过滤,绕过 ...

  8. Go语言核心36讲(Go语言实战与应用十三)--学习笔记

    35 | 并发安全字典sync.Map (下) 我们在上一篇文章中谈到了,由于并发安全字典提供的方法涉及的键和值的类型都是interface{},所以我们在调用这些方法的时候,往往还需要对键和值的实际 ...

  9. radio两行每行只能选择一个的解决方案!

    如图,我要做到这个效果,竖着每行只能有一个最像,和最不像,点击左边禁用右边 <div v-else> <div v-if="progress<quiz.length& ...

  10. jmeter链接数据库,信息全部填写正确,运行之后没有结果

    之前遇到一个很苦恼的问题,jmeter链接数据库,数据库填写的资料全部都没有问题,在其他电脑jmeter上都可以正常链接,但是在我的电脑上运行却总是不出结果, 用mysql链接数据库也一切正常,一直找 ...