广告
返回顶部
首页 > 资讯 > 数据库 >Flink知识散点
  • 833
分享到

Flink知识散点

Flink知识散点 2016-07-06 21:07:57 833人浏览 猪猪侠
摘要

1、KeyBy 操作后,只有当 Key 的数量大于算子的并发实例数才能获得较好的计算性能。 A.而若Key 的数量比实例数量少,就会导致部分实例收不到数据,这些实例就得不到执行,这些实例的计算能力得不到充分发挥。 B.当Key个数

Flink知识散点

1、KeyBy 操作后,只有当 Key 的数量大于算子的并发实例数才能获得较好的计算性能。

A.而若Key 的数量比实例数量少,就会导致部分实例收不到数据,这些实例就得不到执行,这些实例的计算能力得不到充分发挥。
B.当Key个数多余并行实例数时,由于同一个 Key 对应的所有数据都能发送到同一个计算实例上,同一个Key中所对应的数据都能分配到同一个实例中,这样Key内计算就免去了数据传递的序列化和网络io等开销。

2、执行环境的excute()方法

前面我们调用的所有方法,都不是在实际处理数据,而是在构通表达计算逻辑的DAG图。只有当我们将整个图构建完成并显式调用 Execute 方法后,框架才会把计算图提交到集群中,接入数据并执行实际的逻辑。

其中master负责管理整个集群中的资源和作业;而TaskExecutor 则是 Slave,负责提供具体的资源并实际执行作业。

4、Master 部分又包含了三个组件,即 Dispatcher、ResourceManager 和 JobManager。

A.Dispatcher负责接收用户提供的作业,并且负责为这个新提交的作业拉起一个新的 JobManager 组件
B.ResourceManager 负责资源的管理,在整个 Flink 集群中只有一个 ResourceManager
C.JobManager 负责管理作业的执行,在一个 Flink 集群中可能有多个作业同时执行,每个作业都有自己的 JobManager 组件。
以上三个组件都包含在 AppMaster 进程中。

5、当用户提交作业时,提交脚本会先启动一个Client进程负责作业的编译与提交。

它先将用户编写的代码编译为一个 JobGraph,在这个过程,它还会进行一些检查或优化等工作,如判断哪些 Operator 可以 Chain 到同一个 Task 中。然后,Client 将产生的 JobGraph 提交到集群中执行。此时有两种情况,一种是类似于 Standalone 这种 Session 模式,AM 会预先启动,此时 Client 直接与 Dispatcher 建立连接并提交作业即可。另一种是 Per-Job 模式,AM 不会预先启动,此时 Client 将首先向资源管理系统 (如Yarn、k8s)申请资源来启动 AM,然后再向 AM 中的 Dispatcher 提交作业。

6、当作业到 Dispatcher 后

Dispatcher 会先启动一个 JobManager 组件,然后 JobManager 会向 ResourceManager 申请资源来启动作业中具体的任务。这时根据 Session 和 Per-Job 模式的区别, TaskExecutor 可能已经启动或者尚未启动。若是前者,此时 ResourceManager 中已有记录了 TaskExecutor 注册的资源,可以直接选取空闲资源进行分配。若是后者,ResourceManager 也需要先向外部资源管理系统申请资源来启动 TaskExecutor,然后等待 TaskExecutor 注册相应资源后再继续选择空闲资源进程分配。
目前 Flink 中 TaskExecutor 的资源是通过 Slot 来描述的,一个 Slot 一般可以执行一个具体的 Task,但在一些情况下也可以执行多个相关联的 Task。ResourceManager 选择到空闲的 Slot 之后,就会通知相应的 TM “将该 Slot 分配给 JobManager XX ”,然后 TaskExecutor 进行相应的记录后,会向 JobManager 进行注册。JobManager 收到 TaskExecutor 注册上来的 Slot 后,就可以实际提交 Task 了。TaskExecutor 收到 JobManager 提交的 Task 之后,会启动一个新的线程来执行该 Task。Task 启动后就会开始进行预先指定的计算,并通过数据 Shuffle 模块互相交换数据。

1Per-job 模式下整个 Flink 集群只执行单个作业,即每个作业会独享 Dispatcher 和 ResourceManager 组件。此外,Per-job 模式下 AppMaster 和 TaskExecutor 都是按需申请的。因此,Per-job 模式更适合运行执行时间较长的大作业,这些作业对稳定性要求较高,并且对申请资源的时间不敏感。【一般配合yarn、mesose、k8s等外部资源管理器】
7.2与之对应,在 Session 模式下,Flink 预先启动 AppMaster 以及一组 TaskExecutor,然后在整个集群的生命周期中会执行多个作业。可以看出,Session 模式更适合规模小,执行时间短的作业。【一般在standalone模式下使用】

您可能感兴趣的文档:

--结束END--

本文标题: Flink知识散点

本文链接: https://www.lsjlt.com/news/4491.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flink知识散点
    1、KeyBy 操作后,只有当 Key 的数量大于算子的并发实例数才能获得较好的计算性能。 A.而若Key 的数量比实例数量少,就会导致部分实例收不到数据,这些实例就得不到执行,这些实例的计算能力得不到充分发挥。 B.当Key个数...
    99+
    2016-07-06
    Flink知识散点
  • sql注入零散知识
    1、order by解释:    在SQL语言中,order by语句后面加上字段名,就可以对查询结果排序。但他有一种特殊用法,就是在后面不添加字段名,而添加数字的方...
    99+
    2022-10-18
  • 详细聊聊关于sql注入的一些零散知识点
    目录零、本文涉及知识点一、sqlmap写一句马的过程(-- os-shell)1.1 简述过程1.2 一个小问题二、堆叠注入:2.1 什么是堆叠注入2.2 如何判断存在堆叠注入?2....
    99+
    2022-11-12
  • Redis知识点
    1、关于配置文件redis启动如果不显式地指定配置文件,则默认不使用任何配置文件,而是使用它自己的默认配置。所以,如果修改了配置文件的内容,但若启动时没有显式地指定它,则对它的修改不会有任何效果。 ...
    99+
    2022-10-18
  • MySQL知识点
    比较符有:=、>、=、...
    99+
    2019-04-20
    MySQL知识点
  • JavaScript 知识点
    立即执行函数 代码(function () {// ...})(); 创建函数的同时立即执行,没有绑定任何事件,也无需等待任何异步操作function () {} 是一个匿名函数,包围它的一对括号将其转换为一个表达式,紧跟其后的一对括号调用...
    99+
    2023-08-30
    javascript
  • 【字节面试】Fail-fast知识点相关知识点
    字节面试,问到的一个小知识点,这里做一下总结,其实小编之前有一篇文章,已经对此有过涉及,不过这里知识专项针对于问题,把这个知识点拎出来说一下。 1.问题 什么是Fail-fast机制? Hash...
    99+
    2023-08-31
    面试 java 字节 fail-fast Enumeration
  • Redis知识点(一)
    Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等 是一种 NoSQL(not-only sql,泛指非关系型数据库)的数据库。 Redis 作为...
    99+
    2015-03-28
    Redis知识点(一)
  • Redis知识点(二)
    首先 Redis 内部使用一个 redisObject 对象来表示所有的 key 和 value。 redisObject 最主要的信息如上图所示:type 表示一个 value 对象具体是何种数据类型,encoding 是不同数据类型在 ...
    99+
    2019-08-16
    Redis知识点(二)
  • Java IO知识点
    1:file:文件的创建和删除;File file=new File("D:word.txt");绝对路径 File file=new File("word.txt");相对路径 if(!file.exists()) { file.crea...
    99+
    2015-11-04
    java教程 Java
  • python str.format知识点
    在Python3.6.5版本测试通过 语法 str.format(*args, **kwargs) 它通过{}和:来代替%。 "映射”示例: 1.通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[...
    99+
    2023-01-30
    知识点 python str
  • Vue重点知识点整理
    本篇内容主要讲解“Vue重点知识点整理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue重点知识点整理”吧!一、对于MVVM的理解?MVVM 是 Model-...
    99+
    2022-10-19
  • linux运维知识点
    Linux作为一种开源操作系统,被广泛地应用于企业、政府和私人用户的计算机系统中,其优越的稳定性、安全性和灵活性使得 Linux 成为了云计算、大数据和人工智能等最热门领域的重要组成部分。对于从事 Linux 运维的人员来说,了解其知识点和...
    99+
    2023-10-01
    linux 运维 服务器
  • Hibernate知识点分析
    这篇文章主要讲解了“Hibernate知识点分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate知识点分析”吧!1.避免使用工具来自动生成你的模型没错,这些工具的使用可以节约...
    99+
    2023-06-17
  • java面试知识点
    Java文件经过JVM编译成字节码文件,即.class文件,将字节码文件在不同的操作系统中运行时,操作系统再将字节码文件编译成机器码文件。这就是Java跨平台首先明确一点,java 的 GC 回收是完全自动的,没有提供相关 api 手动回收...
    99+
    2020-03-24
    java教程 java 面试
  • MySQL知识点整理
    MySQL整理 这几天整理了MySQL的知识点,还有一部分需要在梳理一下,图上先写这么多吧。 未完待续……...
    99+
    2016-03-25
    MySQL知识点整理
  • MongoDB知识点总结
    一:MongoDB 概述    一、NoSQL 简介        1. 概念:NoSQL(Not Only SQL的缩写),指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。用于超大规模数据的存储,数据存...
    99+
    2019-04-03
    MongoDB知识点总结
  • MySQL知识点总结
    MySQL知识点总结 一、      MySQL常用命令 启动MySQL服务:service mysqld start 或 systemctl start mysqld.service 停止MySQL服务:service mys...
    99+
    2019-07-01
    MySQL知识点总结
  • MongoDB知识点提要
    MongoDB概述 MongoDB是一款NoSQL类型的文档型数据库。 NoSQL NoSQL是一种非关系型DMS,不需要固定的架构,可以避免joins链接,并且易于扩展。NoSQL数据库用于具有庞大数据存储需求的分布式数据存储。NoSQ...
    99+
    2018-11-17
    MongoDB知识点提要
  • javaweb必备知识点
    一、WEB应用程序B/S ( browser/server ,浏览器/服务器)架构基于HTTP传输协议(超文本传输协议,回忆HTML的名字:超文本标记语言)WEB程序必须要运行在web容器上,如Tomcat /Jboss/WebLogic等...
    99+
    2015-12-21
    java教程 java javaweb
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作