新一代计算引擎深度调优(Spark)
课程背景
Spark已成为大数据离线计算和部分实时计算的事实标准。然而许多开发者仍停留在“写SQL提交任务”层面,面对OOM、数据倾斜、Shuffle瓶颈时无从下手。本课程深入Spark Core的RDD机制、DAG调度、Shuffle演进,结合Catalyst优化器和钨丝计划,系统讲解Spark SQL调优方法论,并通过内存模型、GC、推测执行等主题,培养学员独立诊断和解决生产级Spark故障的能力。
课程收益
深入理解RDD弹性机制、宽窄依赖与Lineage血缘容错
掌握DAG到Stage的切分规则及Shuffle底层磁盘I/O模型
理解Catalyst优化器(RBO、CBO)及Tungsten引擎的高效原理
熟练使用Broadcast Hash Join、加盐(Salting)等技术解决数据倾斜
掌握Spark统一内存模型,能够定位Executor OOM与Driver OOM
具备数据本地化、推测执行等调优手段的配置能力
课程特色
原理到调优:从内存模型、任务调度到OOM排障全链路
倾斜攻坚:独立章节解决Spark Shuffle倾斜
实战压测:构造OOM场景,分析Heap Dump
工程化视角:结合集群运维实践
课程对象
大数据开发工程师、Spark应用开发者
数据平台运维工程师、性能优化工程师
希望从Hive/MapReduce迁移到Spark的开发者
前置知识:Scala或Python基础,了解Hive SQL。建议先修《课程二》或具备数仓基础。
课程时长
7天(共49小时)
课程大纲
单元1:Spark Core底层计算模型(2天)
第1课:分布式数据集与容错(1天)
章节1:RDD弹性机制深度解析与Lineage血缘容错
章节2:宽依赖与窄依赖的物理意义
实践:在Spark Shell中对比不同算子的依赖类型,查看DAG可视化
第2课:任务调度与执行物理拓扑(1天)
章节1:从逻辑DAG到物理Stage的切分规则
章节2:Shuffle机制的演进历程(Hash Shuffle → Sort Shuffle → 钨丝计划Shuffle)与底层的磁盘I/O消耗
实践:编写触发Shuffle的代码,观察Stage切分及Shuffle Write/Read
单元2:Spark SQL核心解析与优化(2.5天)
第1课:Catalyst优化器原理(1.25天)
章节1:RBO(基于规则)与CBO(基于代价)的逻辑计划重写
章节2:钨丝计划(Tungsten)对CPU与内存的高效利用(堆外内存、代码生成)
实践:使用explain extended查看优化前后的逻辑计划和物理计划
第2课:Spark核心性能调优手段(1.25天)
章节1:Broadcast Hash Join在大宽表生成中的强制应用
章节2:Salting(加盐)机制彻底解决Spark Shuffle数据倾斜
实践:构造倾斜Join,分别用Broadcast和加盐方案解决
单元3:Spark集群运维与排障实战(2.5天)
第1课:内存模型与OOM定位(1.25天)
章节1:统一内存管理模型:Execution与Storage的动态分配边界
章节2:Executor OOM与Driver OOM的典型诱因与排查链路(抓取Heap Dump、分析GC)
实践:提交OOM任务,使用jmap、MAT工具分析内存快照
第2课:企业级配置调优(1.25天)
章节1:数据本地化级别分析与网络传输压降
章节2:推测执行应对长尾Task
实践:调整spark.locality.wait、spark.speculation等参数,对比任务执行时间
模块核心实验:Spark JVM内存极限调优与防OOM压测
在集群中提交严重倾斜且消耗大内存的Spark任务,通过抓取Heap Dump定位OOM源头,调整Executor内存参数、堆外内存与GC策略,使失败任务平稳跑通。
公司核心业务包括旅行式团建、培训式团建、主题式团建、策划式团建、体育式团建、户外式团建。起赢培训不断追求团建产品创新与服务超越,致力于打造成为中国最具影响力与创新力的团队建设品牌。
查看更多