热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

作者:周凯波(宝牛)阿里巴巴技术专家1Flink架构概览1.1 Flink架构概览-Job用户通过DataStreamAPI、DataSetAPI、SQL和TableAPI编写Fl

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

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 分配的任务之后,开始执行具体的任务。
 
 
 
 
 

 



推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 这个问题困扰了我两天,卸载Dr.COM客户端(我们学校上网要装这个客户端登陆服务器,以后只能在网页里输入用户名和密码了),问题解决了。问题的现象:在实验室机台式机上安装openfire和sp ... [详细]
  • MapReduce 切片机制源码分析
     总体来说大概有以下2个大的步骤1.连接集群(yarnrunner或者是localjobrunner)2.submitter.submitJobInternal()在该方法中会创建 ... [详细]
  • Hadoop之Yarn
    目录1Hadoop1.x和Hadoop2.x架构区别2Yarn概述3Yarn基本架构4Yarn工作机制5作业提交全过程6资源调度器7任务的推测执行1Hadoop1.x和Hadoo ... [详细]
  • 本文csdn博客链接:http:blog.csdn.netscrescentarticledetails51135307本文qq空间链接:http:user.qzone.qq.com ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • kubelet配置cni插件_Kubernetes新近kubectl及CNI漏洞修复,Rancher 2.2.1发布
    今天,Kubernetes发布了一系列补丁版本,修复新近发现的两个安全漏洞CVE-2019-1002101(kubectlcp命令安全漏洞)和CVE-2 ... [详细]
  • “自主设计与实施的故障注入微服务Sidecar,欢迎大佬批评指正!”
    “故障注入Sidecar“——为您的微服务注入故障以验证集群性能!由于导师和实验室师兄们的科研需要,本人专门以Sidecar的模式设计了一个用于错误注入的微服务模块。该模块可以与任 ... [详细]
author-avatar
塘迅人要更名_544
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有