Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Flink Standalone集群安装
  • Flink启动脚本
  • keyBy数据分配计算方法
  • Flink流处理高级操作之时间语义
  • Flink流处理之窗口Window
  • Flink流处理之ProcessFunction
  • Chain分隔
    • 如何切断任务链?
      • startNewChain 与 disableChaining区别
      • 全局切断任务链(chain)
    • web端效果
    • 查看隔离后依赖链忙碌程度
      • 什么是Backpressured(被压/反压)?
    • 代码样例
    • 参考文献
  • Backpressured详细介绍
  • Flink消费Kafka
  • Flink操作MySQL
  • Flink自定义Connector-TableApi SQL
  • Flink使用异常处理
  • FlinkCDC
  • LinkageError异常处理
  • Flink日志Log4j发送到Kafka
  • 《Flink教程》笔记
Jast-zsh
2022-06-17
目录

Chain分隔

# Chain分隔

[toc]

# 如何切断任务链?

由于共享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()
1

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

stream.disableChaining()
1

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

# 全局切断任务链(chain)

env.disableOperatorchaining
1

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

# web端效果

image-20220617165547211

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

image-20220706145306534

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()
1
2
3

# 参考文献

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

上次更新: 2023/03/10, 16:49:38
Flink流处理之ProcessFunction
Backpressured详细介绍

← Flink流处理之ProcessFunction Backpressured详细介绍→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式