2023-2024学年第 学期

 

 

 

 

课程名称:并行与分布式计算实验

课程性质:实验课,必修课

授课学时:30学时

授课对象:大数据2021级辅修班

任课教师:彭玉旭

 

 

 

 

长沙理工大学计通学院

2023.9


全课程教案

 

一、基本信息

课程名称

并行与分布式计算实验

课程编号

0809010041

课程性质

实验课,必修课

学分

1

教学安排

总学时30。其中讲授 0学时,实验 30学时,上机 0学时,实训 0 学时

授课时间:第 7周至第 14

周学时

2

相关课程与环节

配套理论课《并行与分布式计算48学时

 

二、授课对象

基本情况

专业

计算机科学与计算辅修

年级

2021

班级

大数据2021级辅修班

修读人数

104

授课对象分析

大三学生;学习了相关理论基础;

 

三、教学内容与安排

课程简介与要求

本实验课程紧密联系《并行与分布式计算》的理论教学,与之相同学期一起开设,主要讲授大数据并行与分布式计算框架Spark的基本实验。课程将安排最新流行的并行与分布式编程模型Spark的入门级实践操作,让学生更好地学习和掌握大数据关键技术。

课程目标

课程目标

支撑毕业要求指标点

与课程关联度

1、掌握Spark环境搭建和使用方法。

2、综合利用Spark以及Spark生态软件编程实现综合实例。

3、熟悉Spark和Spark生态包括Spark SQL、Spark、Streaming Structured Streaming、Spark MLlib。

4、熟悉RDD编程,掌握RDD编程。

1.3掌握从事大数据软件理论与开发知识,具备大数据系统的开发能力。

3.2掌握数据建模、数据管理和分析、统计推断的基本理论与方法,具备大数据分析和决策支持的能力。

3.5了解大数据领域前沿知识和发展趋势,掌握基本创新方法,在解决大数据领域复杂工程问题中具有创新意识。

5.3选择与使用恰当的技术、资源和现代工程工具来解决大数据领域复杂工程问题。

课程思政

习沟通、组织、团队合作的社会能力,培养学生安全、规范的专业素养以及一丝不苟的工匠精神

教学方法

以学生自主完成实验指导书指定的实验内容为主

实验内容与安排

实验名称

实验要求

课内学时

教学方式

实验内容

课外学习

基础环境

在自己电脑上安装单个环境,后面集群部署会用到,对实验过程进行截图,不得抄袭

2

实验

spark开发环境部署的基础环境搭建,包含ubuntu 20.04 hadoop、spark的基础配置。

 

2

spark部署

能够独立完成spark的部署

2

实验

掌握hadoop及spark分布式部署的过程和方法

2

 RDD基本操作

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

2

实验

pyspark的shell环境,hadoop的基本操作,spark RDD 的常用转换与动作命令

2

Hbase

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

2

实验

hbase的安装;hbase的常用命令

2

读写Hbase

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

2

实验

利用python代码实现读Hbase表中的数据;向Hbase表中写入数据

2

 DataFrame实验

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

2

实验

dataframee创建;dataframe的常用方法。

2

Spark SQL与数据库读写

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

2

实验

park SQL创建方法,Spark SQL与数据库读写的方法

2

KafkaSpark Streaming

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

2

实验

kafka安装;Spark Streaming读取kafka

 

StructuredStreaming

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

2

实验

socket数据源StructuredStreaming的使用

2

机器学习决策树

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

2

实验

特征处理;决策树模型训练和使用

2

淘宝双11数据分析与预测

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

4

实验

 

2

基于零售交易数据的Spark数据处理与分析

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

4

实验

 

 

基于信用卡逾期数据的Spark数据处理与分析

根据实验步骤进行操作不得抄袭指导书截图和其他同学的截图

4

实验

 

2

四、考核方式

考核项目

考核内容

考核方式

分值或占比

实验表现

考核现代工具的使用,实验方案的实现及对问题的分析能力

考勤、课堂讨论、课堂展示等

40

实验报告

实验报告的完成度;创新能力;

实验报告

60

 

五、教学资源

推荐教材

[1]林子雨.Spark编程基础(Python)北京. 人民邮电出版社,2020

参考材料

[1]王宇韬,房宇亮,肖金鑫.Python金融大数据挖掘与分析.北京:机械工业出版社,2019.9

[2] 陆化普.交通大数据分析与应用教程.北京:人民交通出版社,2020.9

[3] 朱晓峰.大数据分析与挖掘.北京:机械工业出版社,2021.8

课程资源

1、头哥平台:https://www.educoder.net/paths/whkv7uil

2、教材官网https://dblab.xmu.edu.cn/post/spark-python/

3、教务处网络教学综合平台http://pt.csust.edu.cn/meol/jpk/course/blended_module/index.jsp?courseId=61468

教材分析与处理

选用教材的依据:本书配有免费的教学资源,在头哥平台有教学和实验环境


分课时教案

知识单元名称

基础环境

课次

1

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:掌握spark开发环境部署的基础环境搭建,包含hadoopspark的基础配置。

实验要求:在自己电脑上安装单个环境,后面集群部署会用到,对实验过程进行截图,不得抄袭

实验内容

 

1、安装虚拟化软件 vmware workstation virtualbox软件

2、利用虚拟化软件安装Ubunut 20.04 desktop

3、设置ubuntu的镜像源,

4、安装openssh-server,生成公钥

5、安装net-tools工具

6、远程连接linux的工具-electerm

7、安装openjdk1.8并配置相关环境

8、下载hadoop 3  spark 3 hbase 2 kafka 等软件

9Hadoop 的配置文件

10Python配置:安装pip3;安装pyspark

11spark的配置

课程思政

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

 

 

 

 

 

 

 

 

分课时教案

知识单元名称

spark部署

课次

2

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:了解spark的部署方式,掌握hadoopspark分布式部署的过程和方法。

 

实验要求:能够独立完成spark的部署,不得抄袭指导书截图和其他同学的截图。

实验内容

 

 

1复制基础环境,产生3个虚拟机并修改每个虚拟机的主机名

2确定虚拟机的IP地址,修改hosts文件,配置主机与IP映射

3测试SSH

4格式化hadoopnamnode

5、配置spark的独立集群:文件配置;启动master;启动worker;停止集群

6、测试基于yarnspark集群

 

 

 

 

 

 

课程思政

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

分课时教案

知识单元名称

 RDD基本操作

课次

3

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:熟悉pysparkshell环境,熟悉hadoop的基本操作,掌握spark RDD 的常用转换与动作命令。

实验要求:根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。

实验内容

 

1、将实验数据拷贝到虚拟机,并把数据上传到hadoop,熟悉hadoopls mkdir put等操作

2、统计考试提交题目的次数:统计包含 “POST /acm/ContestSubmitCodeServlet ”指令的数据,主要考察过滤算法,也可以统计某个IP的访问次数等

3、统计每个IP地址出现的次数,并保存到HDFS:主要考察key valueRDD的生成以及reduceByKey

4、对IP访问次数进行排序,查看前面10个。

 

 

 

 

 

 

 

 

课程思政

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

 

 

 

 

分课时教案

知识单元名称

Hbase

课次

4

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:掌握hbase的安装与配置,熟悉Hbase的相关概念

实验要求:根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。

实验内容

 

1配置hbase环境以及系统的环境变量:进入Hbase目录,修改环境变量配置文件;修改hbase-site.xml;修改环境变量

2启动hadoop并创建相应目录

3启动hbase

4、进入交互式环境

5、创建表,并插入数据

6、查询

 

课程思政

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

 

 

 

 

 

 

 

分课时教案

知识单元名称

读写Hbase

课次

5

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:掌握spark RDD 读写Hbase的方法。

 

实验要求:根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。

实验内容

 

1配置编程环境:在spark/jars目录下创建目录hbaseHBaselib目录下的一些jar文件拷贝到Spark/jars/hbase目录下;修改spark-env.sh;增加一个处理pythonhbase数据转换的包original-spark-examples_2.11_hardfixed-2.4.3.jar

2、编写python代码实现读Hbase表中的数据:关键参数 host; table;循环显示结果;

3、编写python代码实现向Hbase表中写入数据:关键参数 host; table; rawData;关键函数saveAsNewAPIHadoopDataset

 

 

 

 

 

 

 

 

 

 

 

 

 

课程思政

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

分课时教案

知识单元名称

 DataFrame实验

课次

6

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:掌握dataframe创建方法,掌握dataframe的常用方法。

实验要求:根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。

实验内容

1、数据准备

2、启动hadoop集群,上传数据到HDFS

3、启动pyspark

4、读取数据;

5、常用方法:headshowcolumnsprintSchemaselectwithColumn  filterwhereorderBysorttoJSON

6、新建数据,上传到HDFSjoin函数

7groupBy:统计每个班的人数以每门课的人数、统计每门课的平均值、统计每门课的最高分、统计每门课的最低分

 

课程思政

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分课时教案

知识单元名称

Spark SQL与数据库读写

课次

7

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:掌握Spark SQL创建方法,掌握Spark SQL与数据库读写的方法。

实验要求:根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。

实验内容

 

1、启动pyspark

2、读取上节课的数据;

3、注册成临时表;

4、缓存表

5、安装MySQL 8.x,创建表

6、上传驱动

7、编写向MySQL写数据的代码并运行,查看结果;

8、编写读取MySQL的代码并运行,查看结果。

课程思政

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

 

 

分课时教案

知识单元名称

 KafkaSpark Streaming

课次

8

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:掌握Spark Streamingd 基本概念与使用方法,掌握kafka streaming结合使用的方法。

实验要求:环境要求 spark 3.3.0  kafka2.12_3.3.1,IDEA,JAVA语言。根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。

实验内容

 

 

1、安装kafka;启动zookeeper服务器;启动kafka服务器;

2、创建topic;启动一个生成者产生数据

3、下spark-token-provider-kafka-0-10_2.12-3.3.0.jar

spark-streaming-kafka-0-10_2.12-3.3.0.jar并拷贝到spark/jars/

4、启动IDEA,创建一个项目;编写wordcount代码并打包上传到Linux;

5、启动spark,用workcount作为kafka的消费者

 

思政内容

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

 

 

 

 

 

 

分课时教案

知识单元名称

Spark Structured  Streaming

课次

9

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:掌握Spark Streamingd 基本概念与使用方法,掌握 Structured streamingsocket源的使用的方法。

实验要求:环境要求 spark 3.3.0 ,IDEA,JAVA语言。根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。

实验内容

 

实例任务:

一个包含很多行英文语句的数据流源源不断到达,Structured Streaming程序对每行英文语句进行拆分,并统计每个单词出现的频率

1、导入模块

2、创建对象

3、创建socket数据源

4、安装nc工具

5、定义流计算过程

6、启动HDFS

7、启动终端,运行nc的命令,接收用户的输入

8、启动流计算

 

思政内容

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

 

 

 

 

 

分课时教案

知识单元名称

机器学习决策树

课次

10

授课类型

理论课讨论课实验课习题课其他

学时

2

实验目标与要求

实验目的:掌握Spark ML 基本概念与使用方法,了解决策树的基本原理,掌握决策树的使用方法。

实验要求:环境要求 spark 3。根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。截图使用全屏,不要单独剪切

实验内容

 

1、启动hadoop,上传数据到HDFS

2、编写脚本,一步一步看中间结果:读取数据,形成dataframe;过滤第一行,因为数据第一行是列的信息;进行label进行转换,查看label的转换后的结果

3、编写决策树代码

4、训练模型,并评估模型

5、使用用户数据进行模型的使用

 

 

 

 

思政内容

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

 

 

 

 

 

 

 

 

 

 

 

分课时教案

知识单元名称

淘宝双11数据分析与预测

课次

11

授课类型

理论课讨论课实验课习题课其他

学时

4

实验目标与要求

实验目标:1、熟悉Linux系统、MySQLHadoopHiveSqoopSpark等系统和软件的安装和使用;2了解大数据处理的基本流程;3.熟悉数据预处理方法;4熟悉在不同类型数据库之间进行数据相互导入导出;5熟悉使用JSP语言搭建动态Web工程;

5熟悉使用Spark MLlib进行简单的分类操作。

实验要求:根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。截图使用全屏,不要单独剪切

实验内容

 

1实验环境准备 查看实验指南

2本地数据集上传到数据仓库Hive 查看实验指南

3Hive数据分析 查看实验指南

4将数据从Hive导入到MySQL 查看实验指南

5利用Spark预测回头客 

6利用ECharts进行数据可视化分析 查看实验指南

思政内容

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

参考链接:https://dblab.xmu.edu.cn/post/8116/

 

 

 

 

 

 

 

 

 

分课时教案

知识单元名称

基于零售交易数据的Spark数据处理与分析

课次

12

授课类型

理论课讨论课实验课习题课其他

学时

4

实验目标与要求

实验目标:1、熟悉Linux系统、hadoopSparkbottle等系统和软件的安装和使用;2了解大数据处理的基本流程;3.熟悉数据预处理方法;熟悉使用Spark SQL进行简单的分类操作。

实验要求:根据实验步骤进行操作,不得抄袭指导书截图和其他同学的截图。截图使用全屏,不要单独剪切

实验内容

 

1、实验环境准备:Linux操作系统:Ubuntu Python3.5.2Hadoop3.X

Spark2.4.0 (查看安装教程)Bottlev0.12.18

2、数据预处理:下载数据(https://pan.baidu.com/s/1H1vuUhNMG06C9AGIqJ69Yg,提取码:pyej);分析数据格式每个记录由8个属性组成上传到HDFS

3、启动pyspark;读取数据;创建临时视图;

4、数据清洗:顾客编号CustomID和商品描述Description均存在部分缺失,所以进行数据清洗,过滤掉有缺失值的记录CustomID为integer类型,所以该字段若为空,则在读取时被解析为0,故用df["CustomerID"]!=0 条件过滤);预处理后需要将数据写入HDFS

5、数据分析:读取处理后的数据;得到DataFrame对象,并创建临时视图data利用SPARK SQL统计客户数最多的10个国家、销量最高的10个国家、各个国家的总销售额分布情况、各个国家的总销售额分布情况、月销售额随时间的变化趋势、日销量随时间的变化趋势等)

6、保持统计数据并可视化:柱状图、饼图、词云图、折线图、散点图等。

思政内容

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

参考网址:https://dblab.xmu.edu.cn/blog/2652/

 

 

 

 

 

 

分课时教案

知识单元名称

基于信用卡逾期数据的Spark数据处理与分析

课次

13

授课类型

理论课讨论课实验课习题课其他

学时

4

实验目标与要求

实验目的:熟悉推荐算法原理;掌握推荐算法的编程实现;掌握推荐算法评估方法

 

实验内容与要求:以信用卡评分模型为目标,利用给定数据进行搭建模型并进行评估。

实验内容

 

1、实验环境LinuxUbuntu Hadoop 3.x Python3.xSpark3.x Jupyter Notebook

2、数据集处理:下载https://www.kesci.com/home/dataset/5d0b261ae727f8002c84b156/files;数据格式分析;

3、数据预处理:去除重复值、缺失值以均值填充、选取要研究的属性,删除不研究的属性(不对信用卡和个人信贷额度的总余额、负债比率、未偿还贷款数量、逾期90天以上的次数这4个属性进行处理分析)

4、文件上传至HDFS文件系统

5使用Spark对数据处理分析(读取HDFS文件系统中的数据文件,生成DataFrame

、修改列名、本次信用卡逾期的总体统计、年龄与本次信用卡逾期的结合统计、两次逾期记录与本次信用卡逾期的结合统计、房产抵押数量与本次信用卡逾期的结合统计、家属人数与本次信用卡逾期的结合统计、月收入与本次信用卡逾期的结合统计、将统计数据返回给数据可视化文件data_web.py

6、可视化:pyecharts作为可视化工具柱状体;饼图

思政内容

诚实;不抄袭作业

学习效果、学生反馈、反思改进措施等

基本能懂,部分同学因能力和电脑问题,进度慢,

备注

参考文章https://dblab.xmu.edu.cn/blog/2707/

 

 

 

 

1