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

devtools/2024/9/24 1:42:28/

目标:优化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/devtools/116259.html

相关文章

数据库_解决SQL Server数据库log日志过大,清理日志文件方法

SQL Server数据库日志文件过大的原因主要有几个方面: 事务日志记录了所有对数据库进行修改的操作,如插入、更新和删除,这些操作会不断增加日志文件的大小。 长时间运行且未正确结束的事务会持续占用事务日志中的空间,导致日志文…

Kubernets基础-包管理工具Helm详解

文章目录 什么是Helm?Helm 的基本概念Helm 的工作原理Helm 的主要功能使用 Helm 的步骤 values.yaml和Chart.yamlvalues.yaml 文件示例Chart.yaml 文件示例 什么是Helm? Helm 是 Kubernetes 的一个非常流行的包管理工具,它使得在 Kubernetes 上部署应用程序变得更…

医学数据分析实训 项目三 关联规则分析预备项目---购物车分析

文章目录 1 预备项目关联规则分析实践———购物车分析1 产生频繁集2 产生关联规则 1 预备项目 关联规则分析实践———购物车分析 import warnings import numpy as np import pandas as pd from mlxtend.frequent_patterns import apriori from mlxtend.frequent_patterns …

【Git】初识Git

本篇文章的环境是在 Ubuntu/Linux 环境下编写的 文章目录 版本控制器Git 基本操作安装 Git创建 Git 本地仓库配置 Git认识工作区、暂存区、版本库添加文件修改文件版本回退撤销修改删除文件 版本控制器 在日常工作和学习中,老板/老师要求我们修改文档,…

SpringBoot 消息队列RabbitMQ 消息确认机制确保消息发送成功和失败 生产者确认

介绍 有Publisher Confirm(成功)和Publisher Return(失败)两种确认机制。开启确机制认后,在MQ成功收到消息后会返回消息给生产者。 消息投递到了MQ ,但是路由失败。此时会通过PublisherReturn返回路由异常原因,然后返回ACK,告知…

[杂谈-黑神话:悟空] 中国3A游戏的崛起之路:挑战与机遇并存

[杂谈-黑神话:悟空] 中国3A游戏的崛起之路:挑战与机遇并存 《黑神话:悟空》的出现,让我们看到了中国3A游戏的希望和未来。对于中国游戏产业的从业者和爱好者来说,这是一个值得关注和期待的领域。 在游戏产业蓬勃发展的今天&#…

【d44】【Java】【力扣】160.相交链表

思路 先把a链表都放进 一个hashSet集合 再遍历B链表,逐个放进hashSet集合 如果无法放进,说明这个节点就是相交节点 代码 import java.util.HashSet;public class Main {public static void main(String[] args) {}public class ListNode {int val;Li…

linux-安全管理-防火墙与网络安全

Linux 安全管理:防火墙与网络安全 一、概述 在 Linux 系统中,防火墙与网络安全是保护系统免受未经授权访问、网络攻击和数据泄露的重要措施。防火墙通过控制进出网络的流量,阻止不必要的连接,而网络安全策略则通过配置访问权限、…