大数据系统调优:从DAG到单机

news/2024/9/24 1:16:24/

目标:优化T10的时效性
全局DAG调度层优化:提前任务开始时间:
1. 优化慢结点:T10依赖了T4,T7,T8, 其中T8为瓶颈,如果T8能提前点完成,T10可以早点开始,就能早点完成
        2. 快结点做更多预计算:T10中依赖T4,T7的计算部分独立出一个任务T47,在T8完成前,先计算好T47,然后T10只需要在T47和T18的基础上做运算即可
 
控制任务粒度:平衡I/O与计算时间和复用
1.大任务分裂:如T7中是否存过于复杂的计算,可否拆成两个任务
        2.小任务合并:T5,T8任务能否合并,减少中间落地I/O,提前完成时间
        3.提取多个任务中的重复计算部分

单任务执行DAG优化:
提前过滤:
1. T4中可能存在大量数据,但是T10中有过滤(如去重,filter)将过滤功能提前到T4,或者T4后接个过滤任务
2. join后unique 改为join前对每个表进行unique再join

shuffle(join,unique,groupby)优化提高资源利用率:提高CPU,内存利用率,降低磁盘,网络I/O
        1. 磁盘:使用bcast, pseek,流式去重等,避免使用磁盘 流式join避免了sort,攒数据等待
2. 网络:预先分桶,避免shuffle网络开销。 过滤放在shuffle前,提前降低数据量。
        3. A join B再join C,能否优化为A join (B,C), 同时joinB,C,一次出结果,前提是join key得一样

单机性能:
1. 火焰图分析性能瓶颈,优化UDF,UDTF,UDAF等
  2.执行框架优化:push/pull, 火山模型。向量计算,单条转小批(batch)处理

长尾优化:
1. 文件动态分发
        2. 单文件split
        3. shuffle key 尽量随机,避免数据倾斜


http://www.ppmy.cn/news/1529581.html

相关文章

QT widgets 窗口缩放,自适应窗口大小进行布局

1. 窗口布局 2. 尺寸策略:扩展 Fixed (固定): 行为:控件的大小是固定的,不会随着窗口大小的变化而改变。它的大小由控件的 sizeHint() 返回的值决定。 适用场景:当你希望控件的大小保持不变,不随布局调整时使用&#x…

LeetCode 滑动窗口 每个字符最多出现两次的最长子字符串

每个字符最多出现两次的最长子字符串 给你一个字符串 s ,请找出满足每个字符最多出现两次的最长子字符串,并返回该 子字符串 的 最大 长度。 示例 1: 输入: s “bcbbbcba” 输出: 4 解释: 以下子字符串长度…

vue3自定义hooks

引言 Vue3引入了组合式API,使得代码逻辑更自由、灵活。其中自定义Hooks能让我们将客服用的逻辑抽离成一个独立的函数,以实现在多个组件中复用的目的。可以简单理解成封装成一个模块,以方便其他地方调用。 实现 自定义hooks useDog impor…

在petalinux工程里添加iperf

在petalinux工程里添加iperf 1,首先确定iperf包在哪里 xxx/components/yocto/layer/ meta-openembedded/meta-oe/recipes-benchmark/iperf3/ 2,然后就是往menuconfig中加: xxx/project-spec/meta-user/conf/user-rootfsconfig文件中 添加: …

Selenium with Python学习笔记整理(网课+网站持续更新)

本篇是根据学习网站和网课结合自己做的学习笔记,后续会一边学习一边补齐和整理笔记 官方学习网站在这获取: https://selenium-python.readthedocs.io/getting-started.html#simple-usage WEB UI自动化环境配置 (推荐靠谱的博客文章来进行环境配置,具…

C++(Qt)软件调试---断点高级用法(20)

C(Qt)软件调试—断点高级用法(20) 文章目录 C(Qt)软件调试---断点高级用法(20)[toc]1、概述2、断点高级用法1.1 条件断点1.2 日志断点/记录点/消息追踪点1.3 函数断点1.4 命中次数断点1.5 异常断点1.6 等待断点/触发断点1.7 临时断…

iOS17找不到developer mode

iOS17找不到开发者模式 developer mode 下载过app之后、弹窗Developer Mode Required之后,这个菜单就出现了(之前死活找不到)。 背景:用蒲公英分发测试app,有个同事买了新机(iphone 15 pro max),添加了白名…

Hello,Spring Boot...

今天开启了Spring Boot学习之旅。 首先就是,JDK、Maven、IDEA以及各种官网的下载、安装与配置 然后通过组件创建小类,最让人头痛的就是,这个spring-boot-starter-thymeleaf,下错版本了 其他的一切顺利,自动化明显 最后…