Spark大数据平台应用实战

对于一个具有相当技术门槛与复杂度的平台,Spark从诞生到正式版本的成熟,经历的时间如此之短,让人惊诧。2009年,Spark诞生于伯克利大学AMPLab,于2010年正式开源,2013年成为了Apache基金项目,2014年成为Apache基金的较高级项目,整个过程不到五年时间。

2015年是Spark飞速发展的一年,Spark成为了现在大数据领域最火的开源软件,截止2015年,Spark的Contributor比2014年涨了3倍,达到730人;总代码行数也比2014年涨了2倍多,达到40万行,不但大量的互联网企业已经在使用或者正准备使用Spark,而且大量的电信、金融、证券和传统企业已经开始引入了Spark。

学习它并掌握它,是大数据风口下IT人的必备技能。本课程全程将通过以下内容的实战演练,带你玩转Spark!

本课程将会结合精典案例讲解Spark Job的整个生命周期,以及如何划分Stage,如何生成逻辑执行计划和物理执行计划。从Hash Shuffle到Sort Shuffle再到Tungsten Sort Shuffle详细分析Spark Shuffle机制的原理与演进,同时结合Yarn分析Spark的内存模型以及如何进行相关调优,其中两节课主要介绍Spark Streaming使用方式,分析通用流式处理系统的关键问题以及Spark Streaming对相应问题的解决方案,如窗口,乱序,Checkpoint等,并分析Spark Streaming与Storm和Kafka Stream各自的优缺点和适用场景。

最后将结合源码分析Spark SQL的原理,以及实现SQL引擎的一般方法,介绍如何进行Spark SQL性能优化。并结合大量真实案例,分析如何解决数据倾斜问题从而提高应用性能。

课程大纲:

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习企鹅群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系。


第一课. Spark背景介绍与安装部署

             1.1 Spark在大数据生态中的定位

             1.2 Spark主要模块介绍

             1.3 Spark部署模型介绍

             1.4 Spark基于Ambari的安装

             1.5 Spark Standalone下的HA

第二课. 基于Java的Spark编程入门

             2.1 Spark应用中的术语介绍

             2.2 交互式工具spark-shell

             2.3 从Word Count看Spark编程

             2.4 spark-submit的几种用法

第三课 Spark常用算子介绍

             3.1 transform与action

             3.2 广播变量与累加器

             3.3 persist与checkpoint

             3.4 数据本地性(Data locality)

第四课. 一个Spark应用的一生

             4.1 Spark应用的Stage划分

             4.2 窄依赖 vs. Shuffle依赖

             4.3 Job逻辑执行计划

             4.4 Job物理执行计划

第五课. Shuffle机制变迁

             5.1 Hadoop Shuffle方案

             5.2 Spark Hash Shuffle

             5.3 Spark Sort Shuffle

             5.4 Spark Tungsten Sort Shuffle

第六课. Spark SQL实战

             6.1 Spark SQL前世今生

             6.2 RDD vs. Dataframe vs. Dataset

             6.3 使用外部数据源

             6.4 连接metastore

             6.5 自定义函数

             6.6 spark-sql与Spark thrift server

第七课. Spark SQL原理

             7.1 Spark SQL执行过程解析

             7.2 Catalyst原理

             7.3 SQL引擎原理

             7.4 Spark SQL优化

第八课. 例讲数据倾斜解决方案

             8.1 为何需要处理数据倾斜

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

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

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

             8.5 为倾斜key增加随机前缀

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

第九课. Spark Streaming上

             9.1 Spark Streaming示例

             9.2 流式系统关键问题分析

             9.3 Window操作

             9.4 如何在流数据上做Join

             9.5 Checkpoint机制

第十课. Spark Streaming下

             10.1 如何处理数据乱序问题

             10.2 Spark Streaming容错机制

             10.3 Spark与Kafka实现Exactly once

             10.4 Spark Streaming vs. Storm vs. Kafka Stream

             10.5 Spark Streaming性能优化

             10.6 Structured Streaming

第十一课. Spark MLlib

             11.1 Pipeline

             11.2 特征工程

             11.3 模型选择

             11.4 调优

第十二课. Spark优化

             12.1 应用代码优化

             12.2 Spark统一内存模型

             12.3 基于YARN的参数优化

             12.4 其它优化项

授课时间:

课程预计2017年10月26日开课,预计课程持续时间为14周

授课对象:

Java开发转大数据开发

具有一定Hadoop或其它分布式应用基础,转Spark开发

希望在Spark开发和原理上有所提升的大数据开发人员 

课程环境:

Spark 2.1、Hadoop 2.7.3+

收获预期:

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

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

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

4. 了解流式处理系统的常见问题和解决方案 


你可能感兴趣的:(Spark大数据平台应用实战)