**Spark基础及源码分析视频课程导读**
**课程解决的问题:**
本课程旨在帮助那些希望系统掌握Spark基础知识、理解其核心原理并能够分析其源码的编程学习者。无论你是希望快速入门Spark的初学者,还是希望进一步提升Spark技能的进阶者,本课程都将为你提供实用的指导和帮助。通过学习本课程,你将能够:
- 熟练运用Scala语言进行Spark程序开发;
- 掌握Spark的核心组件和数据处理流程;
- 深入理解Spark的源码,了解其设计思想和实现机制;
- 能够运用Spark解决实际的数据处理问题,提升数据处理能力。
**适合的基础:**
- 具备基本的编程基础,尤其是Java或Python编程经验;
- 对大数据处理和分布式计算有初步了解;
- 对Scala语言有一定的了解,但希望系统学习其语法和特性。
**建议的学习顺序:**
1. **第1-2节**:首先,你需要安装Scala的开发环境,并熟悉Scala的基本语法和IDEA的使用。这是学习Spark的基础,确保你对Scala有基本的了解。
2. **第3-4节**:接下来,学习如何使用Scala Shell以及如何在IDEA中创建和配置Maven项目。这将帮助你搭建开发环境,为后续的学习打下基础。
3. **第5-7节**:这部分内容较为深入,介绍了Scala中的变量声明、7种值类型和条件表达式、for循环等核心语法。这些是构建Spark程序的基础。
4. **第8节**:最后,了解方法和函数的声明以及如何使用它们,这是编写高效Spark程序的关键。
**学完本课程后,你将能够:**
- 独立使用Scala编写简单的Spark程序,处理基本的数据分析任务;
- 配置和运行Spark应用程序,根据实际需求进行定制;
- 分析Spark的源码,理解和优化Spark的性能和扩展性。
**资料的使用方法:**
为了更好地理解课程内容,建议你结合以下资料进行练习:
- 官方提供的Scala教程和文档:这些资源将帮助你巩固所学的知识。
- 实际的数据处理项目:尝试使用Spark解决一些实际问题,将理论知识应用到实践中。
- Spark的官方示例和代码库:通过学习这些示例,你可以了解Spark的常见用法和最佳实践。
- 在线编程练习平台:这些平台提供丰富的练习机会,帮助你巩固技能。
通过本课程的学习,你将能够填补在Spark知识和实践经验上的空白,进一步提升你的IT技能。别假装什么都会,缺什么就补什么,从基础开始,一步步迈向高级水平。
课程目录
1-1 [Scala语言环境安装、Scala的基本语法] 认识Scala (09:06) 1-2 [Scala语言环境安装、Scala的基本语法] 安装开发环境 (05:41) 1-3 [Scala语言环境安装、Scala的基本语法] Scala Shell、用IDEA创建Maven项目 (14:46) 1-4 [Scala语言环境安装、Scala的基本语法] 配置Maven本地仓库、导入切换项目等其它配置 (07:26) 1-5 [Scala语言环境安装、Scala的基本语法] 变量的声明 (06:19) 1-6 [Scala语言环境安装、Scala的基本语法] Scala的7种值类型和条件表达式 (08:07) 1-7 [Scala语言环境安装、Scala的基本语法] for循环 (12:50) 1-8 [Scala语言环境安装、Scala的基本语法] 方法和函数的声明以及方法转换成函数 (17:36) 1-9 [Scala语言环境安装、Scala的基本语法] 数组 (20:10) 1-10 [Scala语言环境安装、Scala的基本语法] 映射 (08:37) 1-11 [Scala语言环境安装、Scala的基本语法] 元组 (12:15) 1-12 [Scala语言环境安装、Scala的基本语法] 集合之Seq (18:09) 1-13 [Scala语言环境安装、Scala的基本语法] 集合之Set (07:31) 1-14 [Scala语言环境安装、Scala的基本语法] 集合之Map (05:27) 2-1 [常用方法练习] lazy关键字 (10:39) 2-2 [常用方法练习] 函数式编程练习之常用方法 (25:51) 2-3 [常用方法练习] 函数式编程之reduce (14:06) 2-4 [常用方法练习] 函数式编程之fold (08:16) 2-5 [常用方法练习] 函数式编程之aggregate (06:54) 2-6 [常用方法练习] 函数式编程之交并差集 (02:54) 2-7 [常用方法练习] Scala实现WordCount (18:58) 3-1 [面向对象、模式匹配] 创建类、属性 (20:16) 3-2 [面向对象、模式匹配] 构造器、辅助构造器 (20:14) 3-3 [面向对象、模式匹配] 单例对象 (14:46) 3-4 [面向对象、模式匹配] 伴生对象 (10:05) 3-5 [面向对象、模式匹配] apply和unapply方法 (22:40) 3-6 [面向对象、模式匹配] private关键字 (14:16) 3-7 [面向对象、模式匹配] 特质、抽象类、继承、重写、实现等 (19:37) 3-8 [面向对象、模式匹配] 模式匹配之匹配字符串 (09:26) 3-9 [面向对象、模式匹配] 模式匹配之匹配类型 (07:13) 3-10 [面向对象、模式匹配] 式匹配之匹配数组、元组、集合 (18:33) 3-11 [面向对象、模式匹配] 模式匹配之样例类 (09:15) 3-12 [面向对象、模式匹配] 模式匹配之偏函数 (08:41) 4-1 [Actor、柯里化、隐式转换] 作为值的函数 (07:41) 4-2 [Actor、柯里化、隐式转换] 柯里化概念及声明方式 (17:08) 4-3 [Actor、柯里化、隐式转换] 柯里化练习 (10:19) 4-4 [Actor、柯里化、隐式转换] 隐式转换和隐式参数 (10:54) 4-5 [Actor、柯里化、隐式转换] 隐式转换练习1-1 (14:11) 4-6 [Actor、柯里化、隐式转换] 隐式转换练习2-1 (17:56) 4-7 [Actor、柯里化、隐式转换] 泛型 (11:35) 4-8 [Actor、柯里化、隐式转换] upperbound (12:20) 4-9 [Actor、柯里化、隐式转换] viewbound (15:48) 4-10 [Actor、柯里化、隐式转换] contextbound (10:12) 5-1 [泛型、Akka] actor概念 (10:07) 5-2 [泛型、Akka] actor实例之创建actor (07:21) 5-3 [泛型、Akka] actor实例之消息的接收与发送(异步没有返回值) (19:27) 5-4 [泛型、Akka] actor实例之消息的接收与发送(同步有返回值) (04:29) 5-5 [泛型、Akka] actor实例之消息的接收与发送(异步有返回值) (08:11) 5-6 [泛型、Akka] actor实例之并行编程思想实现单词计数 (30:00) 5-7 [泛型、Akka] akka简介 (09:50) 5-8 [泛型、Akka] akka案例需求分析 (07:41) 5-9 [泛型、Akka] akka案例代码分析 (20:35) 6-1 [Spark集群安装、Spark任务提交] spark简介 (11:13) 6-2 [Spark集群安装、Spark任务提交] spark集群搭建、启动 (06:20) 6-3 [Spark集群安装、Spark任务提交] spark Shell.启动和提交任务 (11:46) 6-4 [Spark集群安装、Spark任务提交] spark Wordcount (18:55) 6-5 [Spark集群安装、Spark任务提交] 上传并执行任务 (12:28) 7-1 [RDD的基本概念、常用算子练习] rdd的概念 (12:50) 7-2 [RDD的基本概念、常用算子练习] 生成rdd的两种方式 (05:11) 7-3 [RDD的基本概念、常用算子练习] 两种类型的算子:transformation和actio (18:17) 7-4 [RDD的基本概念、常用算子练习] 常用算子练习1-1 (24:05) 7-5 [RDD的基本概念、常用算子练习] 常用算子练习2-1 (16:33) 8-1 [案例练习] 案例需求-求用户在某基站停留的时间-1 (12:32) 8-2 [案例练习] 案例实现-求用户在某基站停留的时间-2 (21:11) 8-3 [案例练习] 案例实现-求用户访问学科的子网页top (08:09) 8-4 [案例练习] 案例实现-求用户访问学科的子网页top3-chache (18:53) 9-1 [Spark集群启动流程和任务提交流程、案例练习] spark集群启动流程 (01) 9-2 [Spark集群启动流程和任务提交流程、案例练习] spark任务提交流程 (05:25) 9-3 [Spark集群启动流程和任务提交流程、案例练习] wordcount中创建了那些rdd (12:40) 9-4 [Spark集群启动流程和任务提交流程、案例练习] 案例分析实现-按照ip统计区域访问量 (21:33) 10-1 [RDD的依赖关系、Stage划分、任务的生成、自定义 排序] rdd之间的依赖关系 (10:48) 10-2 [RDD的依赖关系、Stage划分、任务的生成、自定义 排序] dag的生成和stage的划分 (11:07) 10-3 [RDD的依赖关系、Stage划分、任务的生成、自定义 排序] webui观察stage划分和任务的生成 (11:39) 10-4 [RDD的依赖关系、Stage划分、任务的生成、自定义 排序] 自定义二次排序 (22:46) 11-1 [Checkpoint、SparkSQL、Hive-on] checkpoint (15:39) 11-2 [Checkpoint、SparkSQL、Hive-on] sparksql介绍 (08:00) 11-3 [Checkpoint、SparkSQL、Hive-on] 创建dataframe (08:56) 11-4 [Checkpoint、SparkSQL、Hive-on] dataframe常用操作-dsl风格语法 (09:49) 11-5 [Checkpoint、SparkSQL、Hive-on] dataframe常用操作-sql风格语法 (03:10) 11-6 [Checkpoint、SparkSQL、Hive-on] 通过反射推断schema (17:39) 11-7 [Checkpoint、SparkSQL、Hive-on] 通过structtype直接指定schema (11:45) 11-8 [Checkpoint、SparkSQL、Hive-on] hive-on-spark (21:14) 12-1 [SparkStreaming、窗口操作、Spar-on] sparkstreaming简介 (08:43) 12-2 [SparkStreaming、窗口操作、Spar-on] sparkstreaming获取netcat产生的数据分析 (06:24) 12-3 [SparkStreaming、窗口操作、Spar-on] sparkstreaming实现按批次累加 (23:56) 12-4 [SparkStreaming、窗口操作、Spar-on] 窗口函数概念及使用场景 (17:04) 12-5 [SparkStreaming、窗口操作、Spar-on] 窗口函数实现wordcount (08:10) 12-6 [SparkStreaming、窗口操作、Spar-on] spark-on-yarn (25:37) 12-7 [SparkStreaming、窗口操作、Spar-on] 补充:sparkstreaming依赖 (33) 13-1 [Spark启动流程、Stage划分、任务生成、任务提交流程] 关于查看源码的一些介绍 (08:40) 13-2 [Spark启动流程、Stage划分、任务生成、任务提交流程] 导入源码 (04:57) 13-3 [Spark启动流程、Stage划分、任务生成、任务提交流程] 集群启动流程-master类 (22:52) 13-4 [Spark启动流程、Stage划分、任务生成、任务提交流程] 集群启动流程-worker类 (12:22) 13-5 [Spark启动流程、Stage划分、任务生成、任务提交流程] sparksubmit提交任务 (08:37) 13-6 [Spark启动流程、Stage划分、任务生成、任务提交流程] sparkcontext (16:45) 13-7 [Spark启动流程、Stage划分、任务生成、任务提交流程] 创建driveractor和clientactor的过程 (13:11) 13-8 [Spark启动流程、Stage划分、任务生成、任务提交流程] clientactor向master注册任务信息过程 (07:07) 13-9 [Spark启动流程、Stage划分、任务生成、任务提交流程] 任务调度的两种方式及master通知worker启动ex (10:34) 13-10 [Spark启动流程、Stage划分、任务生成、任务提交流程] executor向driveractor反向注册的过程 (05:57) 13-11 [Spark启动流程、Stage划分、任务生成、任务提交流程] rdd生成和stage划分 (20:20) 13-12 [Spark启动流程、Stage划分、任务生成、任务提交流程] 生成任务并提交 (05:57) 13-13 [Spark启动流程、Stage划分、任务生成、任务提交流程] task任务执行流程 (10:32)





