课程简介
1. 结合精典案例讲解一个Spark Job的整个生命周期,以及如何划分Stage,如何生成逻辑执行计划和物理执行计划
2. 从Hash Shuffle到Sort Shuffle再到Tungsten Sort Shuffle详细分析Spark Shuffle机制的原理与演进
3. 介绍Spark Streaming使用方式,分析通用流式处理系统的关键问题以及Spark Streaming对相应问题的解决方案,如窗口,乱序,Checkpoint等,并分析Spark Streaming与Storm和Kafka Stream各自的优缺点和适用场景
4. 结合源码分析Spark SQL的原理,以及实现SQL引擎的一般方法,并介绍如何进行Spark SQL性能优化
5. 结合大量真实案例,分析如何解决数据倾斜问题从而提高应用性能
6. 从参数调优,代码调优等方面,全方位介绍Spark优化方法
7.介绍了流式计算系统发展历程和Flink 架构与Flink Streaming的相关内容
课程收益:
1. 掌握Spark核心原理,包括但不限于Spark Job的执行过程,Shuffle机制
2. 了解如何对Spark Job进行性能优化,包括但不限于参数调优,数据倾斜优化,代码调优
3. 掌握Spark Streaming的原理及使用方式,并掌握如何结合Spark Streaming和Kafka实现正好一次处理语义
4. 了解SQL引擎的原理,掌握Spark SQL的使用和优化方式
5. 掌握Flink主要针对大数据计算,在流处理方向建立的优势。
培训对象:
运维工程师、架构师、大数据工程师、技术经理等
课程周期
2天
课程大纲
时间 | 标题 | 内容 |
第一天上午 | 大数据整体介绍
| 1 大数据发展历程 2 当前主流大数据系统特点及适用场景 3 大数据的基石 Zookeeper 4 Hadoop 核心系统 HDFS/YARN |
Spark原理 (包含源码调试) | 1 Spark架构 2 Spark Application的一生 3 Job逻辑执行计划 4 Job物理执行计划 5 Spark transform与action 6 广播变量与累加器 | |
第一天下午 | Shuffle机制变迁 (包含源码分析)
| 1 Hadoop Shuffle 2 Spark Hash Shuffle 3 Spark Sort Shuffle 4 Spark Tungsten Sort Shuffle |
例讲Spark SQL
| 1 Spark SQL前世今生 2 Spark SQL数据源 3 Spark集成metastore 4 如何实现和使用UDF UDAF UDTF 5 DataFrame vs. spark-sql vs. Spark Thrift Server 6 Spark SQL实现原理(SQL引擎原理) 7 Spark SQL性能优化 | |
第二天上午 | 例讲数据倾斜解决方案及案例 | 1 为何需要处理数据倾斜 2 调整并行度,分散同一Task的不同Key 3 自定义Partitioner,分散同一Task的不同Key 4 Map Join代替Reduce Join消除数据倾斜 5 为倾斜key增加随机前缀 6 大表增加随机前缀,小表扩容 |
第二天下午 | Flink 架构 | 1 流式计算系统发展历程 2 Storm vs. Spark Streaming vs. Kafka Stream vs. Flink 3 Flink 整体架构 4 Flink State 5 Flink Async Barrier Snapshot |
Flink Streaming | 1 Flink Streaming 之时间 2 Flink 典型窗口特点及适用场景 3 Flink Exactly Once 4 Flink 数据乱序处理 |