Flink SQL -- 反压

1、测试反压:
        1、反压:

指的是下游消费数据的速度比上游产生数据的速度要小时会出现反压,下游导致上游的Task反压。

        2、测试反压:使用的是DataGen
CREATE TABLE words (word STRING
) WITH ('connector' = 'datagen','rows-per-second'='100000', -- 每秒随机生成的数据量'fields.word.length'='4'
);CREATE TABLE blackhole_table (wprd STRING,num BIGINT
) WITH ('connector' = 'blackhole'
);insert into blackhole_table
select 
word,
count(1) as num from 
words /*+ OPTIONS('rows-per-second'='1000000','fields.word.length'='5') */
group by word;
2、解决反压:
        1、增加资源:
--1、增加并行度,一个并行度对应一个slot
SET 'parallelism.default' = '2';--2、增加内存
-- 如果状态太大,内存放不下导致的反压可以通过增加内存解决
-- -tm : taskmanager的内存
-- -jm : jobmanager的内存
yarn-session.sh -tm 4G -d
        2、微批处理和预聚合:

1、MiniBatch 聚合的核心思想是将一组输入的数据缓存在聚合算子内部的缓冲区中。当输入的数据被触发处理时,每个 key 只需一个操作即可访问状态。这样可以大大减少状态开销并获得更好的吞吐量。但是,这可能会增加一些延迟,因为它会缓冲一些记录而不是立即处理它们。这是吞吐量和延迟之间的权衡。

2、预聚合:

数据流中的记录可能会倾斜,因此某些聚合算子的实例必须比其他实例处理更多的记录,这会产生热点问题。本地聚合可以将一定数量具有相同 key 的输入数据累加到单个累加器中。全局聚合将仅接收 reduce 后的累加器,而不是大量的原始输入数据。这可以大大减少网络 shuffle 和状态访问的成本。每次本地聚合累积的输入数据量基于 mini-batch 间隔。这意味着 local-global 聚合依赖于启用了 mini-batch 优化。

3、开启微批处理和预聚合,可以减少shuffle过程中传输的数据量,减轻下游算子计算的压力 

-- 开启微批处理
set 'table.exec.mini-batch.enabled'='true';-- 批次的时间
set 'table.exec.mini-batch.allow-latency'='5 s';-- 批次大小
set 'table.exec.mini-batch.size'='5000';-- 开启预聚合
set 'table.optimizer.agg-phase-strategy'='TWO_PHASE'; 

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

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

相关文章

Windows环境下ADB调试——安装adb

一、下载 Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zipMac版本:https://dl.google.com/android/repository/platform-tools-latest-darwin.zipLinux版本:https://dl.google.com/android/reposit…

【小白的Spring源码手册】 BeanFactoryPostProcessor的注册和用法(BFPP)

目录 前言应用1. 手动注册2. 自动注册3. 优先级 前言 沿用上一篇文章的流程图,我们的注解类应用上下文中的AnnotationConfigApplicationContext#scan(String...)方法已经将所有BeanDefinition注册到了IoC容器中。完成注册后,开始执行AbstractApplicatio…

轻量封装WebGPU渲染系统示例<32>- 若干线框对象(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/WireframeEntityTest.ts 当前示例运行效果: 此示例基于此渲染系统实现,当前示例TypeScript源码如下: export class WireframeEntityTest {private mRsc…

自学SLAM(8)《第四讲:相机模型与非线性优化》作业

前言 小编研究生的研究方向是视觉SLAM,目前在自学,本篇文章为初学高翔老师课的第四次作业。 文章目录 前言1.图像去畸变2.双目视差的使用3.矩阵微分4.高斯牛顿法的曲线拟合实验 1.图像去畸变 现实⽣活中的图像总存在畸变。原则上来说,针孔透…

(论文阅读24/100)Visual Tracking with Fully Convolutional Networks

文献阅读笔记(sel - CNN) 简介 题目 Visual Tracking with Fully Convolutional Networks 作者 Lijun Wang, Wanli Ouyang, Xiaogang Wang, and Huchuan Lu 原文链接 http://202.118.75.4/lu/Paper/ICCV2015/iccv15_lijun.pdf 【DeepLearning】…

java语言开发B/S架构医院云HIS系统源码【springboot】

医院云HIS全称为基于云计算的医疗卫生信息系统( Cloud- Based Healthcare Information System),是运用云计算、大数据、物联网等新兴信息技术,按照现代医疗卫生管理要求,在一定区域范围内以数字化形式提供医疗卫生行业数据收集、存储、传递、…

Linux常用的磁盘使用情况命令汇总

1、查看分区使用百分比 df -h 2、查看指定目录磁盘使用情况 du -hac --max-depth1 /opt 参数:-a 查看所有文件,-c 汇总统计,max-depth1 查看深度为1,2级目录不再统计。 3、常用统计命令汇总

[LeetCode]-622. 设计循环队列

目录 662. 设计循环队列 题目 思路 代码 662. 设计循环队列 622. 设计循环队列 - 力扣(LeetCode)https://leetcode.cn/problems/design-circular-queue/ 题目 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO&…

PostGIS学习教程六:几何图形(geometry)

文章目录 一、介绍二、元数据表三、表示真实世界的对象3.1、点(Points)3.2、线串(Linestring)3.3、多边形(Polygon)3.4、图形集合(Collection) 四、几何图形输入和输出五、从文本转换…

2023.11.16-hive sql高阶函数lateral view,与行转列,列转行

目录 0.lateral view简介 1.行转列 需求1: 需求2: 2.列转行 解题思路: 0.lateral view简介 hive函数 lateral view 主要功能是将原本汇总在一条(行)的数据拆分成多条(行)成虚拟表,再与原表进行笛卡尔积&#xff0c…

JDK5,7,11,17特性

目录 JDK5 基本数据类型自动装箱拆箱 可变参数 增强for 注解 泛型 枚举 概述 定义 常用方法 自定义构造方法 枚举类中的抽象方法 JDK7 二进制字面量 switch 异常 try-with-resources,自动关流 JDK11 FileInputStream增强 String类增强 Stream流…

LeetCode - 142. 环形链表 II (C语言,快慢指针,配图)

如果你对快慢指针,环形链表有疑问,可以参考下面这篇文章,了解什么是环形链表后,再做这道题会非常简单,也更容易理解下面的图片公式等。 LeetCode - 141. 环形链表 (C语言,快慢指针,…