您当前的位置:首页>课程>spark 应用与最佳实践

spark 应用与最佳实践

浏览:2864
分享

Jason Guo Read more

百林哲咨询(北京)有限公司专家团队成员

现就职于大型互联网企业从事大数据平台优化工作。多年Kafka和Spark/Hadoop/Storm研究、应用及调优经验,曾为诸多公司提供过培训咨询服务。

简介

1. 鉴于一般Spark不会单独使用,而是与Hadoop一起使用,因此该课程首先简单阐述HDFS与Yarn的关键技术与高可用及水平扩展方案

2. 结合精典案例讲解一个Spark Job的整个生命周期,以及如何划分Stage,如何生成逻辑执行计划和物理执行计划

3. 从Hash Shuffle到Sort Shuffle再到Tungsten Sort Shuffle详细分析Spark Shuffle机制的原理与演进

4. 结合Yarn分析Spark的内存模型以及如何进行相关调优

5. 介绍Spark Streaming使用方式,分析通用流式处理系统的关键问题以及Spark Streaming对相应问题的解决方案,如窗口,乱序,Checkpoint等,并分析Spark Streaming与Storm和Kafka Stream各自的优缺点和适用场景

6. 结合源码分析Spark SQL的原理,以及实现SQL引擎的一般方法,并介绍如何进行Spark SQL性能优化

7. 结合实例,分析使用Spark MLlib解决机器学习问题的一般思路和方法

8. 结合大量真实案例,分析如何解决数据倾斜问题从而提高应用性能

9. 从参数调优,代码调优等方面,全方位介绍Spark优化方法

目标

1. 熟悉HDFS与Yarn实现原理及最佳实践

2. 掌握Spark核心原理,包括但不限于Spark Job的执行过程,Shuffle机制

3. 了解如何对Spark Job进行性能优化,包括但不限于参数调优,数据倾斜优化,代码调优

4. 掌握Spark Streaming的原理及使用方式,并掌握如何结合Spark Streaming和Kafka实现正好一次处理语义

5. 了解SQL引擎的原理,掌握Spark SQL的使用和优化方式

6. 掌握使用Spark MLlib解决机器学习问题的方法

课程时长

2天(12H)

分享提纲

1. 大数据系统的基础Zookeeper

1.1 Zookeeper原理

1.2 集群配置管理

1.3 服务发现

1.4 基于Zookeeper的领导选举

1.5 分布式锁

2. HDFS原理

2.1 HDFS架构

2.2 HDFS读写过程及优化

2.3 MR与Spark使用HDFS最佳实践

2.4 Name node高可用方案

2.5 Name node水平扩展方案

3. Yarn原理

3.1 Yarn架构分析

3.2 资源分配与隔离

3.3 资源调度与调优

3.4 基于标签的资源分配

3.5 Resource Manager高可用方案

4. Spark原理(包含源码调试)

4.1 Spark架构

4.2 Job逻辑执行计划

4.3 Job物理执行计划

4.4 Spark transform与action

4.5 Spark Job的一生

5. Shuffle机制变迁(包含源码分析)

5.1 Hadoop Shuffle

5.2 Hash Shuffle

5.3 Sort Shuffle

5.4 Tungsten Sort Shuffle

6. Spark内存模型与调优

6.1 内存分配

6.2 堆外内存使用

6.3 Spark on Yarn内存分配最佳实践

7. Spark数据结构原理

7.1 RDD优劣势

7.2 DataFrame与Dataset

7.3 广播变量实现原理

7.4 累加器

8. Spark SQL

8.1 Spark SQL前世今生

8.2 例讲Spark SQL

8.3 Spark SQL数据源

8.4 Spark集成metastore

8.5 如何实现和使用自定义函数(UDF)

8.6 DataFrame vs. spark-sql vs. thrift server

8.7 Spark SQL实现原理(SQL引擎原理)

8.8 Spark SQL性能优化

9. Spark Streaming

9.1 例讲Spark Streaming

9.2 流式系统关键问题分析

9.3 Window操作

9.4 如何在流数据上做Join

9.5 Checkpoint机制

9.6 如何处理数据乱序问题

9.7 Spark Streaming容错机制

9.8 Spark与Kafka实现Exactly once

9.9 Spark Streaming vs. Storm vs. Kafka Stream

9.10 Spark Streaming性能优化

9.11 Structured Streaming

10. Structured Streaming

10.1 Structured Streaming vs. Spark Streaming

10.2 如何处理Event Time

10.3 如何实现Fault Tolerant

10.4 Watermark实现原理

10.5 三种输出模式及适用场景

11. 如何使用Spark解决机器学习问题

11.1 使用MLlib实现基本统计

11.2 如何使用ML Pipeline

11.3 如何使用MLlib进行特征工程

11.4 模型选择与调优

11.5 超参数调节

12. 例讲数据倾斜解决方案及案例

 12.1 为何需要处理数据倾斜

 12.2 调整并行度,分散同一Task的不同Key

 12.3 自定义Partitioner,分散同一Task的不同Key

 12.4 Map Join代替Reduce Join消除数据倾斜

 12.5 为倾斜key增加随机前缀

 12.6 大表增加随机前缀,小表扩容



我要参加

可同时提交您的需求,我们会及时与您联系

预约内训

将课程带入到您的团队,为您的团队进行一对一辅导。

相关课程