Flink Chain任务链分隔

Chain分隔

文章目录

  • Chain分隔
    • 如何切断任务链?
      • startNewChain 与 disableChaining区别
      • 全局切断任务链(chain)
    • web端效果
    • 查看隔离后依赖链忙碌程度
      • 什么是Backpressured(被压/反压)?
    • 代码样例
    • 参考文献

如何切断任务链?

由于共享slot的存在,当一个任务链的计算量特别庞大时,且只在一个slot上执行,对于slot的压力过大,需要拆开。

1)disableChaining:如果对一个算子使用了disableChaining(取消任务链),那么该算子就会与前后算子隔离开,不参与任务链的组合,独用一个slot。

2)startNewChain:如果一个任务链只是过于庞大,但是算子之间的操作简单,仅想拆开为2个任务链,并且参与任务链组合,就需要对算子使用startNewChain(开启一个新的任务链),意思就是之前该怎么合并就怎么合并,map之后重新合成任务链。

3)env.disableOperatorchaining ,全局切断任务链。所有的算子都是独立的任务,再按照并行度拆分开。

4)slotSharingGroup:取消任务链后,还需要打破slot共享,使用单独的slot。这时需要使用slotSharingGroup,之前的算子不管,从当前算子开始共享slot,并可以为共享组命名。同一个共享组内的算子可以共享一个slot,不同共享组的slot必须分配到不同的slot。且可以设置多个共享组,跨算子设置。

startNewChain 与 disableChaining区别

stream.startNewChain()

从当前算子开启新的链,与前面的链断开,后面的链不断开

stream.disableChaining()

当前算子独立一个链,前后都分开,从stream算子开始到结束禁用Chain,单独划出来,将不会合并链。

全局切断任务链(chain)

env.disableOperatorchaining

全局切断任务链。所有的算子都是独立的任务,再按照并行度拆分开

web端效果

在这里插入图片描述

查看隔离后依赖链忙碌程度

Backpressured(背压/反压): 从字面上可以理解,后端的压力,这里代表当前算子的下一个环节压力,也可以理解为,下一个环节有这个Backpressured比例数据未处理

busy(忙碌): 代表当前环节忙碌程度

**Idle(空闲):**代表当前环节空闲程度

什么是Backpressured(被压/反压)?

概括来说,反压就是Job Graph中的某些operator处理数据的速率低于接收数据的速率,造成数据积压,积压的数据填充到这些operator子任务的输入缓冲区。一旦输入缓冲区满了,反压就会传播到上游子任务的输出缓冲区。上游子任务也会被迫降低自身数据处理速度,以匹配下游opeartor的处理速度。由此类推,反压一步一步向上游传递,直至到达数据源operator端。

具体关于Backpressured,参考《Flink BackPressure详细介绍》

代码样例

val writeHbaseResult = userChangeWriteHbase.process(new HbaseProcessFunction).name("write hbase").disableChaining()val writeHbaseResult = userChangeWriteHbase.process(new HbaseProcessFunction).name("write hbase").startNewChain()

参考文献

https://blog.csdn.net/qq_31866793/article/details/102786249

https://blog.csdn.net/weixin_42716237/article/details/110732812

https://blog.csdn.net/qq_16504067/article/details/123535099

https://www.kancloud.cn/zhangpn/flink/1743325

https://cdn.modb.pro/db/128767

https://www.163.com/dy/article/H2VSPV1T05529EM4.html

https://v.youku.com/v_show/id_XNDU2MjU5NjI4OA==.html

https://cloud.tencent.com/developer/article/1797980

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vim winmanager文件浏览自动更新

使用winmanger插件中发现其中引用的fileexplorer不能自动更新到当前文件夹。 将vim/plugin/winfileexplorer.vim 中的函数FileExplorer_Start() function! FileExplorer_Start() let b:displayMode "winmanager" call s:EditDir(getcwd()) "if exists(s:lastDi…

KMP 深度讲解next数组的求解

【经典算法】——KMP,深入讲解next数组的求解 前言   之前对kmp算法虽然了解它的原理,即求出P0Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把…

Yarn 命令详细介绍

文章目录yarn命令根据状态查看Yarn全部运行应用程序根据提交程序代码提交类型查看运行程序yarn top 查看正在运行的状态yarn top整体资源使用查看Yarn web页面工具脚本根据yarn应用名称kill进程根据yarn应用名称查看日志yarn命令 根据状态查看Yarn全部运行应用程序 # 查看全部…

初窥Linux 之 我最常用的20条命令

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个…

纸牌三角形(蓝桥杯)

标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。 下图就是一种排法。 A 9 6 4 8 3 7 5 2 镜像后的: A 6 9 8 4 2 5 7 3 这样的排法可能会有很多。 如果考虑旋转、镜像…

BackPressure详细介绍

BackPressure详细介绍 文章目录BackPressure详细介绍前言什么是反压?为什么需要关注反压?为什么不需要关注反压?如何发现和追踪反压的根源?反压的坏处经常碰到哪些问题会任务反压怎么处理反压?前言 Flink反压已经是老…

new/delete和malloc/free的区别一般汇总

一、基本概念 malloc/free: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 void free(voi…

给IT新人的15个建议:程序员的辛酸反省与总结!

很多人表面上看着老实巴交的,实际上内心比谁都好强、自负、虚荣、甚至阴险。工作中见的多了,也就习惯了。   有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌。但是他们所表现的又未必不是真性情。 我相信…

Logback日志发送到Kafka

Logback日志发送到Kafka 文章目录Logback日志发送到Kafka一、使用logback将日志发送至kafka1.1 引入依赖1.2 logback.xml简单Demo1.3 兼容性1.4 完整的样例1.5 启动程序收集日志1.6 项目Git地址一、使用logback将日志发送至kafka 1.1 引入依赖 如果存在则跳过该步骤 pom.xml …

01背包问题(DFS解法)

有5个物体,每个物品只有一个,其重量分别是为2,2,6,5,4,价值分别为6,3,5,4,6,背包的载重量为10,求装入背包的物体及总质量。 计算结果:15 package com.lanQiaoFor6;import java.util.ArrayList; import java.util.TreeSet;public class JAVA_6 {static …

Windows下安装Vim插件管理Vundle

VIM是编辑器之神,这个就不用说了,越使用越会体会到VIM的强大与便利。但是它的强大建立在众多插件组合之上,而Vim本身缺乏对插件的有效管理,安装插件并配置_vimrc文件非常不便。gmarik受到Ruby的bunler的启发,开发了vun…

AOE网

博客来源:http://blog.csdn.net/wang379275614/article/details/13990163 认识AOE网 有向图中,用顶点表示活动,用有向边表示活动之间开始的先后顺序,则称这种有向图为AOV网络;AOV网络可以反应任务完成的先后顺序&#…

Spark foreachRDD的使用

常出现的使用误区: **误区一:**在driver上创建连接对象(比如网络连接或数据库连接) 如果在driver上创建连接对象,然后在RDD的算子函数内使用连接对象,那么就意味着需要将连接对象序列化后从driver传递到w…

包子凑数(蓝桥杯)

标题:包子凑数 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。 每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来&…

makefile例子(经典)

相信在unix下编程的没有不知道makefile的,刚开始学习unix平台 下的东西,了解了下makefile的制作,觉得有点东西可以记录下。   下面是一个极其简单的例子: 现在我要编译一个Hello world,需要如下三个文件:…

Scala-SparkStreaming 2.2.0 消费 kafka0.10(生产1.0)

Scala-SparkStreaming 2.2.0 kafka0.10(生产1.0) 文章目录Scala-SparkStreaming 2.2.0 kafka0.10(生产1.0)代码Pom.xmlSparkstreaming 2.1.1版本pom文件Spark 2.2 kafka0.10(api使用的0.10,实际生产kafka版本是1.0)代码…

数据结构前缀,后缀,中缀表达式

[cpp] view plaincopy [cpp] view plaincopy <span style"color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">举例&#xff1a;</span> (3 4) 5 - 6 就是中缀表达式 - 3…

hdu1232畅通路程(并查集)

参考博客&#xff1a;https://blog.csdn.net/blue_skyrim/article/details/50178287 畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 62854 Accepted Submission(s): 33623 Problem Description 某省调…

gcc的简单使用教程

前几天在学习嵌入式入门时,有一个视频中就是介绍gcc的使用的,看了视频后突然好 想将GCC的手册页翻译出来,后来看到手册页发现实在太多了,凭我个人的能力根本无 法完成,只能写一些自己使用Gcc时的一些常规使用方法. GCC是GNU的成员之一,原意是GNU的C语言编译器,后来发展到不只能…

SparkStreaming参数介绍

SparkStreaming参数介绍 spark.streaming.concurrentJobs :增加job并行度 可以通过集中方法为streaming job配置此参数。 - spark-default中修改 全局性修改&#xff0c;所有的streaming job都会受到影响。 - 提交streaming job是 –conf 参数添加&#xff08;推荐&#x…