- 课程概览
- 授课讲师
- 课程大纲
- 实验列表
- 课程概览
- 授课讲师
- 课程大纲
- 实验列表
Spark大数据技术与应用是一个广泛而深入的话题,涵盖了Spark的多个方面,包括其基本原理、核心组件、生态系统、应用场景以及最佳实践等。
课程概览
第1章Spark概述,第2章Scala基础,第3章RDD编程,第4章Spark编程进阶,第5章结构化数据文件处理Spark SQL,第6章实时计算框架Spark Streaming
一、Spark概述
Spark是一个基于内存的快速、通用、可扩展的大数据处理引擎,由加州大学伯克利分校AMPLab所开源。Spark提供了比Hadoop MapReduce更丰富的数据处理模式,包括批处理、交互式查询、实时流处理、机器学习以及图计算等。Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的大数据生态系统。
二、Spark核心组件
1.RDD(弹性分布式数据集):
RDD是Spark的核心数据结构,是一个分布式内存中的只读对象集合。
RDD具有弹性、容错性,如果数据集的一部分丢失,可以根据血缘关系进行重建。
RDD支持移动计算而非移动数据,可以就近读取HDFS中的数据块到各个节点内存中进行计算。
2.DAG(有向无环图):
DAG反映了RDD之间的依赖关系,是Spark任务调度的基础。
3.Executor:
Executor是运行在工作节点上的一个进程,负责运行任务(Task)并为应用程序存储数据。
4.Driver:
Driver是Spark应用程序的驱动程序,负责执行Spark Application的main函数和创建Spark Context。
5.Task:
Task是运行在Executor上的工作单元,是Spark作业执行的基本单位。
6.Job:
Job是一个作业,包含多个RDD及作用于相应RDD上的各种操作。
7.Stage:
Stage是作业的基本调度单位,一个作业会分为多组任务,每组任务就被称为“阶段”或“任务集”。
三、Spark的应用场景
Spark的应用场景非常广泛,包括但不限于:
1.数据分析:利用Spark SQL和Spark DataFrame对大规模数据集进行快速查询和分析。
2.实时数据处理:使用Spark Streaming对实时数据流进行实时处理和分析。
3.机器学习:利用Spark MLlib实现各种机器学习算法,对大数据集进行训练和预测。
4.图计算:使用GraphX对图结构的数据进行并行计算,解决图算法相关的问题。
四、Spark的优势
Spark相比传统的Hadoop MapReduce具有以下优势:
1.更快的速度:Spark基于内存的计算模式比Hadoop MapReduce的磁盘I/O模式更快。
2.更丰富的API:Spark提供了比Hadoop MapReduce更丰富的API,支持更多的数据处理模式。
3.更高的容错性:Spark的RDD具有弹性、容错性,可以确保数据的高可用性。
4.更好的资源利用率:Spark可以更好地利用集群资源,提高计算效率。
授课讲师
专业成就: 拥有华为双IE专家资格认证,在云计算与云服务领域具有专业权威。 技术文章《云上主机安全设计》获得业界认可,阅读量达1700次。 教学风格: 授课方式通俗易懂,强调互动,营造生动有趣的课堂氛围。 通过课后讨论,加深学生对技术的理解,提升学习热情。 学术地位: 作为高校客座教授,享有学术界和业界的广泛认可。 擅长技术领域: 精通云计算架构设计、云服务管理与优化。 擅长云主机安全策略规划与实施。 熟练掌握虚拟化技术、容器化部署和自动化运维。
课程大纲
- 第1章Spark概述
-
    第1节 Spark简介
-
    第2节 Spark环境搭建
-
    第3节 Spark的运行架构与原理
- 第2章Scala基础
-
    第1节 Scala简介
-
    第2节 Scala的安装与运行
-
    第3节 数据类型、变量、常量
-
    第4节 表达式、数组
-
    第5节 函数
-
    第6节 案例:手机号码识别
-
    第7节 循环控制结构
-
    第8节 List、Set、Map、元组
-
    第9节 函数组合器
-
    第10节 案例:根据归属地信息分组
-
    第11节 Scala类
-
    第12节 伴生类和伴生对象
-
    第13节 模式匹配
-
    第14节 apply方法
-
    第15节 文件的读写
- 第3章Spark编程
-
    第1节 RDD的创建
-
    第2节 转换操作和行动操作
-
    第3节 案例:查看成绩前五的学生
-
    第4节 案例:成绩为100分的学生ID
-
    第5节 键值对RDD
-
    第6节 案例:计算学生两门学科成绩的总分
-
    第7节 RDD聚合操作
-
    第8节 案例:求学生成绩平均值
-
    第9节 数据的读取与存储
- 第4章Spark编程进阶
-
    第1节 RDD持久化
-
    第2节 RDD分区
- 第5章结构化数据文件处理Spark SQL
-
    第1节 Spark SQL介绍
-
    第2节 RDD和DataFrame的区别
-
    第3节 DataFrame的创建
-
    第4节 DataFrame的保存
-
    第5节 DataFrame的常用操作
-
    第6节 将RDD转换成DataFrame
-
    第7节 MariaDB的安装
-
    第8节 使用SparkSQL读写数据库
- 第6章实时计算框架Spark Streaming
-
    第1节 Spark Streaming概述
-
    第2节 DStream的工作机制
-
    第3节 编写SparkStreaming程序
-
    第4节 DStream读取文件流
-
    第5节 DStream转换操作
-
    第6节 DStream窗口操作
-
    第7节 DStream读取套接字流
-
    第8节 DStream输出操作
-
    第9节 DStream写入数据库
-
    第10节 案例:窗口操作实现用户命令的接收
实验列表
- 实验名称Spark运行环境搭建
- 实验描述Hadoop、Spark伪分布式环境的安装和配置。
- 实验名称Scala的下载和安装
- 实验描述下载Scala安装包,安装Scala,编写Scala程序helloworld并运行。
- 实验名称常量和变量
- 实验描述用Scala语言声明常量和变量,掌握Scala语言的常量和变量的使用。
- 实验名称数组的基本操作
- 实验描述用Scala语言声明数组,掌握数组的基本使用。
- 实验名称函数的声明和使用
- 实验描述用Scala语言声明函数,并掌握函数的基本使用。
- 实验名称手机号码识别
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,编写函数识别号码,查看该号码是哪个运营商的号码。
- 实验名称九九乘法表
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,利用循环输出一个九九乘法表。
- 实验名称List的定义与使用
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握List列表的定义与使用。
- 实验名称使用函数组合器
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握各种函数组合器的用法。
- 实验名称根据归属地信息分组
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,根据归属地信息对手机号码段分组。
- 实验名称类的定义与使用
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,编写一个类并使用它。
- 实验名称伴生类和伴生对象
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解伴生类和伴生对象。
- 实验名称模式匹配
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解模式匹配。
- 实验名称apply方法的使用
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解apply方法。
- 实验名称文件的读写
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解Scala语言对文件的读写。
- 实验名称创建RDD
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握RDD的创建。
- 实验名称操作RDD
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握RDD的操作。
- 实验名称查看排名前五的学生
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,在数据中获取成绩排名前五的学生。
- 实验名称查看满分的学生
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,在数据中获取至少有一门成绩为100分的学生。
- 实验名称操作键值对RDD
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握键值对RDD的操作。
- 实验名称统计总分
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,统计学生所有成绩的总分。
- 实验名称RDD聚合操作
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握RDD的聚合操作。
- 实验名称求学生成绩平均
- 实验描述用前面学过的内容编写spark程序,处理学生成绩的数据信息,求学生成绩平均。
- 实验名称数据的读写
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握RDD数据的文件的读取和存储。
- 实验名称RDD持久化
- 实验描述在需要进行多次迭代的计算中,常常需要多次使用同一组数据,由于Spark RDD是惰性求值的,因此计算资源消耗会非常大,为了避免多次计算同一个RDD,可以在Spark中设置数据持久化。
- 实验名称设置数据分区
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,理解并掌握设置数据分区的操作。
- 实验名称创建DataFrame
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握DataFrame的创建。
- 实验名称保存DataFrame
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握DataFrame的保存,将DataFrame的数据保存到本地文件。
- 实验名称DataFrame的常用操作
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握DataFrame的常用操作。
- 实验名称RDD转DataFrame
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解从RDD转换的到DataFrame的方法和过程。
- 实验名称MariaDB的安装
- 实验描述安装MariaDB数据库,为后面的用SparkSQL读写数据库做准备。
- 实验名称读取数据库数据
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握SparkSQL对数据库数据的读写操作。
- 实验名称创建StreamingContext对象
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解创建StreamingContext对象的方法和过程。
- 实验名称读取文件流
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解DataFrame读取文件流的方法和操作。
- 实验名称DStream转换操作
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握DataFrame的转换操作。
- 实验名称DStream窗口操作
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解DataFrame窗口操作。
- 实验名称DStream读取套接字流
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解DStream读取套接字流的方法和操作。
- 实验名称DStream输出操作
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解DataFrame输出操作。
- 实验名称DStream写入数据库
- 实验描述巩固前面学过的东西,用前面学过的内容编写Scala程序,掌握并理解DStream写入数据库操作的方法。
- 实验名称窗口操作实现用户命令的接收
- 实验描述使用DStream窗口操作,在另一个终端(用户端)发送数据,运行SparkDStream程序接收数据。
节数 | 上课时间 | 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期天 |
---|---|---|---|---|---|---|---|---|
第1节 | 08:00 - 08:40 | |||||||
第2节 | 09:00 - 09:40 | |||||||
第3节 | 10:00 - 10:40 | |||||||
第4节 | 11:00 - 11:40 | |||||||
第5节 | 14:00 - 14:40 | |||||||
第6节 | 15:00 - 15:40 | |||||||
第7节 | 16:00 - 16:40 | |||||||
第8节 | 17:00 - 17:40 |
天数 | 上课日期 | 上课时间 | 内容 |
---|
相关课件 更多
-
pptx
第1章 Spark概述
大小:2.73MB
2023-08-04
-
pptx
第2章 Scala基础
大小:1.48MB
2023-08-04
-
pptx
第3章 Spark编程基础
大小:1.75MB
2023-08-04
-
pptx
第4章 Spark编程进阶
大小:2.82MB
2023-08-04
-
pptx
第5章 Spark SQL——结构化数据文件处理
大小:3.49MB
2023-08-04
-
pptx
第6章 Spark Streaming——实时计算框架
大小:2.63MB
2023-08-04