学习笔记七

✅ 今日掌握知识点
性能调优全攻略:

硬件资源优化配置

内存管理调优

并行度设置策略

数据倾斜处理4种方案

生产环境部署:

YARN集群配置

监控告警体系搭建

作业提交脚本

故障恢复机制

高级优化技巧:

Catalyst优化器原理

执行计划分析

自定义优化规则

动态资源分配

综合项目实战:

完整的ETL流程

数据质量检查

报表生成

监控集成

❗ 重要发现
倾斜处理对比:

scala
// 加盐法 vs 广播变量 vs 拆分处理
// 加盐法:适用于大表join大表
// 广播变量:适用于小表join大表
// 拆分处理:适用于少数倾斜key
内存配置黄金法则:

scala
// executor.memory = 总内存 * 0.6~0.7
// memoryOverhead = max(384m, 0.1 * executor.memory)
// offHeap.size = max(512m, 0.2 * executor.memory)
并行度经验值:

scala
// shuffle分区数 = 总核心数 * 2~3
// 文件分区大小 = 128MB~256MB
// 每个核心处理数据量 = 100MB~500MB
🔍 实践问题与解决方案
问题1:Executor频繁GC
scala
// 解决方案
spark.conf.set("spark.executor.extraJavaOptions",
"-XX:+UseG1GC -XX:+UseStringDeduplication -XX:+PrintGCDetails")
问题2:Shuffle数据溢出磁盘
scala
// 解决方案:调整缓冲区
spark.conf.set("spark.shuffle.file.buffer", "128k")
spark.conf.set("spark.shuffle.spill.batchSize", "20000")
问题3:任务调度延迟
scala
// 解决方案:优化调度器
spark.conf.set("spark.scheduler.mode", "FAIR")
spark.conf.set("spark.scheduler.allocation.file", "fairscheduler.xml")

posted @ 2026-03-10 21:15  Lomook  阅读(4)  评论(0)    收藏  举报