当前位置: 首页 > news >正文

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

目标:优化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.mrgr.cn/news/34656.html

相关文章:

  • python cachetools 快速入门
  • 【再谈设计模式】建造者模式~对象构建的指挥家
  • 成都睿明智科技有限公司解锁抖音电商新玩法
  • 【css】html里面的图片宽度设为百分比,高度要与宽度一样
  • C++ 关于基于范围的for循环(C++11) 语法 详解
  • 微信小程序获取上一页的数据
  • 【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决
  • 【已解决】如何使用JAVA 语言实现二分查找-二分搜索折半查找【算法】手把手学会二分查找【数据结构与算法】
  • 【在.net6和WPF框架下进行海康SDK开发】(一)如何引用Dll
  • RP2040 CXX SDK PIO应用例程
  • 应用密码学第一次作业(9.23)
  • OpenAI o1团队突破性论文:『过程推理』中数学推理能力大幅提升,从正确中学习的新方法
  • GitHub上图像超分开源项目推荐【持续更新】
  • p18 docker镜像原理之联合文件系统,p19 docker镜像分层的理解
  • 栈的操作:进栈,出栈,读栈顶元素
  • 2024.9.23
  • 流域碳中和技术
  • spring boot文件上传之x-file-storage
  • Django 数据库配置以及字段设置详解
  • 计算机毕业设计之:基于微信小程序的疫苗预约系统的设计与实现(源码+文档+讲解)
  • 论文大杀器!分享4款ai论文写作工具软件
  • Dify创建自定义工具,调用ASP.NET Core WebAPI时的注意事项(出现错误:Reached maximum retries (3) for URL ...)
  • python爬虫案例——抓取链家租房信息
  • JSON合并工具
  • 苍穹外卖学习笔记(九)
  • 微信抢红包设计