ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

FLINK基础(150): RUNTIME(2)Flink on Yarn/K8s 原理剖析及实践(1)简介 Standalone

2021-09-02 20:35:39  阅读:237  来源: 互联网

标签:150 架构 Standalone Flink JobManager TaskManager JobGraph


作者:周凯波(宝牛) 阿里巴巴技术专家

1 Flink 架构概览

1.1 Flink 架构概览 -Job

  用户通过 DataStream API、DataSet API、SQL 和 Table API 编写 Flink 任务,它会生成一个 JobGraph。JobGraph 是由 source、map()、keyBy()/window()/apply() 和 Sink 等算子组成的。当 JobGraph 提交给 Flink 集群后,能够以 Local、Standalone、Yarn 和 Kubernetes 四种模式运行。

1.2 Flink 架构概览 -JobManager

JobManager 的功能主要有: ●将 JobGraph 转换成 Execution Graph,最终将 Execution Graph 拿来运行; ●Scheduler 组件负责 Task 的调度; ●Checkpoint Coordinator 组 件 负 责 协 调 整 个 任 务 的 Checkpoint, 包 括Checkpoint 的开始和完成; ●通过 Actor System 与 TaskManager 进行通信; ●其它的一些功能,例如 Recovery Metadata,用于进行故障恢复时,可以从Metadata 里面读取数据。

1.3 Flink 架构概览 -TaskManager

TaskManager 是负责具体任务的执行过程,在 JobManager 申请到资源之后开始启动。TaskManager 里面的主要组件有: ●Memory & I/O Manager,即内存 I/O 的管理; ●Network Manager,用来对网络方面进行管理; ●Actor system,用来负责网络的通信; TaskManager 被分成很多个 TaskSlot,每个任务都要运行在一个 TaskSlot里面,TaskSlot 是调度资源里的最小单位。

2 Standalone

在介绍 Yarn 之前先简单的介绍一下 Flink Standalone 模式,这样有助于更好地了解 Yarn 和 Kubernetes 架构。   ●在 Standalone 模式下,Master 和 TaskManager 可以运行在同一台机器上,也可以运行在不同的机器上。   ●在 Master 进程中,Standalone ResourceManager 的作用是对资源进行管理。当用户通过 Flink Cluster Client 将 JobGraph 提交给 Master 时,JobGraph 先经过 Dispatcher。   ●当 Dispatcher 收 到 客 户 端 的 请 求 之 后, 生 成 一 个 JobManager。 接 着JobManager 进程向 Standalone ResourceManager 申请资源,最终再启动 TaskManager。   ●TaskManager 启动之后,会有一个注册的过程,注册之后 JobManager 再将具体的 Task 任务分发给这个 TaskManager 去执行。以上就是一个 Standalone 任务的运行过程。

3 Flink 运行时相关组件

接下来总结一下 Flink 的基本架构和它在运行时的一些组件,具体如下:   ●Client:用户通过 SQL 或者 API 的方式进行任务的提交,提交后会生成一个JobGraph。   ●JobManager:JobManager 接受到用户的请求之后,会对任务进行调度,并且申请资源启动 TaskManager。   ●TaskManager: 它 负 责 一 个 具 体 Task 的 执 行。TaskManager 向JobManager 进行注册,当 TaskManager 接收到 JobManager 分配的任务之后,开始执行具体的任务。          

 

标签:150,架构,Standalone,Flink,JobManager,TaskManager,JobGraph
来源: https://www.cnblogs.com/qiu-hua/p/15220626.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有