林子雨报告全文:大数据处理技术Spark课程资源和教学经验分享

第2届全国高校大数据教学研讨会大会特邀报告

《大数据处理技术Spark课程资源和教学经验分享》

厦门大学计算机科学系   林子雨 博士/助理教授

(E-mail: ziyulin@xmu.edu.cn   个人主页:http://www.cs.xmu.edu.cn/linziyu

 

扫一扫访问本网页

下载报告PPT |  大会官网

【会议介绍】2018年5月11日至12日,第2届全国高校大数据教学研讨会(BDTS2018)在厦门大学科艺中心音乐厅隆重举行。本届研讨会由教育部高等学校计算机类专业教育指导委员会主办,厦门大学、厦门理工学院、兰州交通大学、西北农林科技大学、人民邮电出版社联合承办,旨在搭建专业的大数据教学交流平台,汇聚全国高校大数据教学精英力量,共同探讨大数据专业和课程体系建设,为加快推进全国高校大数据教学发展贡献力量。来自全国200多所院校的200余名教师参加了本次研讨会。厦门大学、人民邮电出版社等单位领导,中国人民大学、复旦大学、哈尔滨工业大学、中南大学、厦门大学等重点院校的6位大数据教学知名专家,以及来自国内知名大数据企业的3名业界专家出席会议并做特邀大会报告。厦门大学林子雨助理教授主持会议。

【摘要】厦门大学数据库实验室团队在林子雨老师的带领下,建设了国内高校知名的大数据课程公共服务平台,并建设了成熟的导论课程《大数据技术原理与应用》和进阶课程《Spark编程基础》。本报告中,讲者将根据自己在厦门大学多年的大数据教学经验,与大家分享大数据处理技术Spark课程的知识结构、教学大纲、进度计划、实验平台、综合案例、授课方法等,为打算开设该课程的教师提供辅助参考。

【关键词】高校;大数据;课程;教学;公共服务体系;Spark;大数据技术原理与应用

尊敬的各位来宾,大家上午好!

很荣幸,作为大会东道主为大会献上最后一个特邀报告。今天的报告里,我将首先介绍一下我们厦门大学数据库实验室团队历时五年建设的“高校大数据课程公共服务平台”,其次,简要介绍厦门大学已经建设完成的大数据课程体系,然后,简要介绍Spark课程的先修课程《大数据技术原理与应用》的课程资源,最后,重点介绍《Spark编程基础》课程资源与教学经验。

一、高校大数据课程公共服务平台

从2013年开始,厦门大学数据库实验室历时五年时间,投入100多万元经费,建设了高校大数据课程公共服务平台,重点打造了11大子工程,成为全国高校大数据教学知名品牌,平台每年访问量超过100万次,累计访问量超过300万次,2017年单年访问量突破150万次,预计2018年单年访问量可以突破250万。可以访问“大数据学习路线图”,利用平台上大量免费资源完成大数据课程一站式学习。

高校大数据课程公共服务平台的亮点工作包括以下几个方面:

(1)制作1份精美的大会宣传册,1部3分钟FLASH动画宣传片(观看),1段5分钟大数据课程教师培训交流基地宣传片(观看)。

(2)出版1本《大数据技术原理与应用》教材(教材官网),成为国内众多高校开课教材,京东、当当等各大网店畅销书籍,并出版了与该教材配套的实验指导书《大数据基础编程、实验和案例教程》(官网)。出版了大数据进阶课程《Spark编程基础》(官网),并发布了与该教材配套的全部教学资源。

(3)开展大数据公开课全国高校巡讲计划(查看),累计巡讲10个省、16所高校、1个科研院所、18场公开课,累计听众人数超过3000人。

(4)建设了6个示范班级(查看),大数据技术基础2013班级、大数据技术基础2016班级、大数据处理技术Spark2017班级、大数据技术原理与应用2017班级、大数据处理技术Spark2018班级、大数据技术原理与应用2018班级。

(5)制作上线了《大数据技术原理与应用》在线课程(观看),开辟大数据课程网络讲授平台。2016年3月28日林子雨主讲《大数据技术原理与应用》在网易云课堂正式上线,2017年5月12日学习人数超过3万2千人,99%为5星级最高评价,长期稳居热门排行榜第1名,被众多网友评为“经典课程”。2017年11月,由专业MOOC公司精心制作的精美版《大数据技术原理与应用》在中国大学MOOC上线,目前学习人数累计超过4万人,获得了众多好评。制作上线了《Spark编程基础》课程视频,于2018年3月在网易云课堂正式上线(观看)。

(6)建设1个大数据课程教师培训交流基地,已经开展7期公益培训,累计有来自全国各地200余所高校的200余位大数据课程教师参加了培训交流(查看)。

(7)承办3次全国性计算机专业教学研讨会,包括第5届高等学校计算机程序设计课程研讨会(2015年12月5日-6日)(查看)、NDBC2016全国高校大数据教学论坛(查看)、第1届全国高校大数据教学研讨会(查看)。

(8)发布多部在线免费大数据教程。2013年9月,发布在线免费电子书《大数据技术基础》;2014-2016年,发布并持续更新在线教程《大数据软件安装和基础编程指南》;2016年10月,发布免费在线教程《Spark入门教程》(访问在线教程)。

(9)发布3个大数据课程综合实验案例,包括(a)大数据课程实验案例:网站用户购物行为分析(查看);(b)Spark课程综合实验案例:淘宝双11数据分析与预测(查看);(c)Spark课程实验案例:Spark+Kafka构建实时分析Dashboard(查看)。

(10)建设1个大数据课程教师交流群(QQ群号:461510122),促进大数据课程教师之间的沟通和交流。截至目前,已经有来自全国500多所高校的700余名教师加入交流群(查看)。

(11)开设1个微信公众号(子雨大数据):跟踪行业热点、汇集百家观点、分享教学经验、推荐经典书籍(查看)。

二、厦门大学建设的大数据课程体系

从2013年开始,经过为期五年的建设,厦门大学已经建成了涵盖入门课程、进阶课程和实习实训在内的大数据课程体系,可以为全国高校提供包括教材、讲义PPT、习题、案例、视频、师资培训等全方位的大数据课程服务。

“数据科学与大数据技术专业”的课程体系中,数学、编程、算法、数据结构、操作系统、数据采集与预处理、数据库、数据挖掘等课程,属于历史已有课程,已经存在大量教材和配套资源,而分布式存储和计算框架则属于进入大数据时代以后的较新的课程,相关教学资源较为缺乏,因此,厦门大学林子雨老师团队选择大数据课程作为教学资源建设重点,投入大量人力、物力、财力,建设了全套的大数据课程资源。其中,《大数据技术原理与应用》属于大数据导论课程,引导学生进入大数据世界,由单机环境进入到分布式环境,面对和处理大数据问题。《Spark编程基础》属于进阶级大数据课程,旨在帮助学生系统掌握当前流行的分布式并行编程框架Spark的编程方法。《大数据实习实训案例》旨在满足高校开设实习实训课程的教学需求,案例涵盖数据预处理、存储、处理、分析、可视化等数据处理全流程所涉及的各种典型操作和各种大数据软件,可以全面训练学生的大数据分析全流程的能力;目前已经开发的实习实训案例包括:

案例1:基于SparkMLlib电影推荐实验案例
案例2:Sqoop+Hive+HBase+MR+R某技术论坛日志分析项目案例
案例3:Kafka+Spark+Redis+R实时分布式日志流处理案例
案例4:HDFS+Spark+MySQL+JSP用户行为分析案例
案例5:点击流日志分析实验案例

图 厦门大学林子雨老师团队建设的大数据课程体系

三、先修课程《大数据技术原理与应用》

《大数据技术原理与应用》是《Spark编程基础》的先修课程。下面,我将从课程定位、教材选择、课时安排、实验内容、考核方法、课程资源等方面,介绍《大数据技术原理与应用》课程的建设方法和经验。

(一)课程定位

《大数据技术原理与应用》课程的定位是入门级课程,该课程的目标是“构建知识体系、阐明基本原理、引导初级实践、了解相关应用”。

授课对象是计算机相关专业的本科生。由于该课程具有较强的计算机专业知识要求,因此,本课程不建议非计算机专业学生选修。
知识储备:编程、操作系统、数据库。

(二)教材选择

本课程采用厦门大学林子雨编著《大数据技术原理与应用(第2版)》(官网),本书系统介绍了大数据相关知识,全书共有15章,系统地论述了大数据的基本概念、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、基于内存的分布式计算框架Spark、流计算、图计算、数据可视化以及大数据在互联网、生物医学和物流等各个领域的应用。在Hadoop、HDFS、HBase、MapReduce和Spark等重要章节,安排了入门级的实践操作,让读者更好地学习和掌握大数据关键技术。

大数据课程和云计算课程存在知识点的交叉,因此,大数据课程教材和云计算课程教材的选择一定要慎重,否则可能出现一系列教学问题,给教师教学和学生学习都造成严重困扰。关于这个问题,可以参考《关于高校大数据教学若干关键问题的探讨》。

(三)课时安排

课程共16周,每周2学时,总计32学时(理论32学时,可以另外安排16个实验上机学时)。

章或节 主要内容 学时安排
1 介绍大数据的基本概念和应用领域,并阐述大数据、云计算和物联网的相互关系 2
2 介绍大数据处理架构Hadoop 2
3 分布式文件系统HDFS的基本原理和使用方法 4
4 分布式数据库HBase的基本原理和使用方法 4
5 NoSQL数据库的概念和基本原理 2
6 云数据库的概念和基本原理 2
7 分布式并行编程模型MapReduce原理和使用方法 6
8 流计算基本原理 2
9 图计算基本原理 4
10 数据可视化概念、工具和案例 2
11 大数据在互联网领域的典型应用:推荐系统 2
总计32学时

(四)实验内容

1. 上机实验指南

提供了全套机房上机实验指南,包含题目和答案,用于入门级大数据课程的上机实验课,每个实验都需要连续4节上机课来完成,每个实验的设计,都充分考虑了学生的基础和能力,力求学生能够在连续4节课的上机时间内,顺利完成课程实验,提交实验报告(下载实验指南)。

实验一:熟悉常用的Linux操作和Hadoop操作

实验二:熟悉常用的HDFS操作

实验三:熟悉常用的HBase操作

实验四:NoSQL和关系数据库的操作比较

实验五:MapReduce初级编程实践

2.综合实验案例

大数据课程实验案例《网站用户购物行为分析》,采用2000万条用户购物数据集,案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用方法,案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例(查看)。

(五)考核方法

平时签到考勤10%,上机实验报告10%,期末大实验10%,期末笔试成绩70%。

(六)课程资源

1.《大数据软件安装和编程实践指南》(查看
详细学习如何安装运行各种大数据软件以及如何进行初级编程实践,包括Hadoop、HDFS、HBase、MapReduce、Spark、MongoDB等安装、操作、编程指南。

2.《大数据技术原理与应用》备课指南(查看
详细说明了教师如何备课,包括教学大纲、讲义PPT、授课视频、课后习题、上机题目等。

3.《大数据技术原理与应用》授课视频(查看
林子雨主讲的全套大数据课程视频,供老师上课参考。课程内容涵盖大数据、云计算和物联网概念及其相互关系、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、图计算、流计算、基于内存的大数据处理框架Spark、基于Hadoop的数据仓库Hive、大数据在不同领域的应用等。

4.《大数据技术原理与应用》实验指南(查看
用于机房统一上机,包含题目和答案,具体如下:
实验一:熟悉常用的Linux操作和Hadoop操作
实验二:熟悉常用的HDFS操作
实验三:熟悉常用的HBase操作
实验四:NoSQL和关系数据库的操作比较
实验五:MapReduce初级编程实践

5.大数据课程教师交流群(查看

大数据课程教师交流群(QQ群号:461510122),促进大数据课程教师之间的沟通和交流。截至目前,已经有来自全国500多所高校的700余名教师加入交流群。

四、《Spark编程基础》课程资源与教学经验

(一)课程定位

大数据技术进阶学习课程,通过Spark课程学习,让学生掌握高级数据分析能力,能够实现对大规模结构化和非结构化数据的复杂分析处理(比如使用机器学习算法)。
授课对象:本科生、研究生(计算机相关专业)
知识储备:Java编程、数据库、操作系统、Hadoop
先修课程:入门级大数据课程,比如:大数据技术原理与应用
(二)教材选择

1.编程语言的选择

选择教材时,必须首先确定编程语言。Spark支持多种编程语言:Scala、Java、Python、R。Spark首选语言是Scala,可以把Python作为课程拓展学习。

Spark这个软件本身就是使用Scala语言开发的,采用Scala语言编写Spark应用程序,可以获得最好的性能。关于采用哪种语言编写Spark应用程序,这里强调两点:

(1)Java代码太繁琐。在大数据应用场景中,不太适合使用Java,因为,完成同样的任务,Scala只需要一行代码,而Java则可能需要10行代码;而且,Scala语言可以支持交互式编程,大大提高了程序开发效率,而Java则不支持交互式执行,必须编译以后运行。

(2)Python语言并发性能不好。在并发性能方面,Scala要明显优于Python,而且,Scala是静态类型,可以在编译阶段就抛出错误,便于开发大型大数据项目,此外,Scala兼容Java,运行在JVM上,可以直接使用Java中的Hadoop API来和Hadoop进行交互,但是,Python与Hadoop之间的交互非常糟糕,通常都需要第三方库(比如hadoopy)。

2.纸质教材

厦门大学 林子雨,赖永炫,陶继平  编著  《Spark编程基础》(人民邮电出版社,2018年5月,ISBN:978-7-115-47598-5)(官网

披荆斩棘,在大数据丛林中开辟学习捷径

填沟削坎,为快速学习Spark技术铺平道路

深入浅出,有效降低Spark技术学习门槛

资源全面,构建全方位一站式在线服务体系

本书以Scala作为开发Spark应用程序的编程语言,系统介绍了Spark编程的基础知识。全书共8章,内容包括大数据技术概述、Scala语言基础、Spark的设计与运行原理、Spark环境搭建和使用方法、RDD编程、Spark SQL、Spark Streaming、Spark MLlib等。本书每个章节都安排了入门级的编程实践操作,以便读者更好地学习和掌握Spark编程方法。本书官网免费提供了全套的在线教学资源,包括讲义PPT、习题、源代码、软件、数据集、授课视频、上机实验指南等。

本书可以作为高等院校计算机、软件工程、数据科学与大数据技术等专业的进阶级大数据课程教材,用于指导Spark编程实践,也可供相关技术人员参考。

3.免费在线教程

林子雨编著在线免费《Spark入门教程》。Spark是当前最热门的大数据处理框架,林子雨编著《Spark入门教程》,让初学者零基础零障碍学习Spark。教程采用Scala语言编写Spark应用程序,因此,教程包括Scala入门和Spark入门两个部分的内容。Scala入门,主要介绍基础的Scala语法知识,为编写Spark应用程序奠定基础。Spark入门包括:第1章 Spark的设计与运行原理、第2章 Spark的安装与使用、第3章 Spark编程基础、第4章 Spark SQL、第5章 Spark Streaming、第6章 Spark MLlib。

子雨大数据之Spark入门

(三)课时安排

课程共16周,每周2学时,总计32学时理论课程。各高校可根据实际情况,再额外增加16学时实验上机。

章(或节) 主要内容 学时安排
第1章 大数据技术概述 大数据的基本概念、关键技术和代表性软件 2
第2章 Scala语言基础 介绍Scala语言基础语法 6
第3章 Spark设计与运行原理 Spark概述、Spark生态系统、Spark运行架构、Spark的署和应用方式 3
第4章 Spark安装和使用方法 安装Spark、在Spark Shell中运行代码、编写Spark独立应用程序、第一个Spark应用程序:WordCount、使用开发工具编写Spark应用程序、Spark集群环境搭建、在集群上运行Spark应用程序 3
第5章 Spark编程基础 RDD编程、键值对RDD、共享变量、数据读写(文件数据读写、读写HBase数据) 6
第6章 Spark SQL Spark SQL简介、DataFrame、读写Parquet、通过JDBC连接数据库、连接Hive读写数据 3
第7章 Spark Streaming 流计算简介、Spark Streaming简介、DStream操作 3
第8章 Spark MLlib Spark MLlib简介、机器学习工作流、特征抽取、转化和选择、分类与回归、聚类算法、推荐算法 6
合计 32

(四)交叉知识

本课程涵盖知识内容包括:操作系统(Linux)、分布式存储(HDFS、HBase)、分布式计算(Spark Core)、流计算(Spark Streaming)、机器学习(Spark MLlib)、查询分析(Spark SQL)、日志采集(Flume)、消息分发(Kafka)、数据仓库(Hive)、关系数据库(MySQL)、机器学习/数据挖掘等知识。同时要掌握开发工具Eclipse、IntelliJ IDEA以及编译打包工具sbt和Maven等。

图 《Spark编程基础》教材中涉及的交叉知识

(五)实验内容

1.上机环境搭建

  • 单机构建实验环境(虚拟机、8GB内存)(参考指南
  • 实验室多机构建分布式环境
  • 统一大数据实验机房
  • 一台服务器推送云桌面到多台终端机器
  • 多台物理机器构建分布式环境
  • 在云端构建大数据实验环境(参考指南
  • 采用Docker容器搭建大数据实验环境

2.上机实验指南

实验1-Linux系统的安装和常用命令

实验2-Scala编程初级实践

实验3-Spark和Hadoop的安装

实验4-RDD编程初级实践

实验5-Spark SQL编程初级实践

实验6-Spark Streaming编程初级实践

实验7-Spark机器学习库MLlib编程实践

2.综合实验案例

(1)案例1:Spark课程综合实验案例:淘宝双11数据分析与预测(查看
本案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Hive、Sqoop、Eclipse、ECharts、Spark等系统和软件的安装和使用方法。

(2)案例2:Spark课程综合实验案例:Spark+Kafka构建实时分析Dashboard案例(查看
由厦门大学数据库实验室团队开发,旨在满足全国高校大数据教学对实验案例的迫切需求。本案例涉及数据预处理、消息队列发送和接收消息、数据实时处理、数据实时推送和实时展示等数据处理全流程所涉及的各种典型操作,涵盖Linux、Spark、Kafka、Flask、Flask-SocketIO、Highcharts.js、sockert.io.js、PyCharm等系统和软件的安装和使用方法。案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。
(六)考核方法

平时签到考勤10%,上机实验报告10%,期末大实验10%,期末笔试成绩70%。

(七)授课视频

林子雨主讲《Spark编程基础》课程视频已经于2018年2月26日正式在网易云课堂发布(观看)。该视频是根据2017年春季学期林子雨老师给厦门大学计算机系2017级硕士研究生主讲《大数据处理技术Spark》课程的现场音频,进行后期制作合成视频。

(八)师资培训

使参加培训的老师全面掌握大数据相关技术及教学方法,帮助各高校在大数据专业课程体系建设提供全方位、强有力的教学资源支持。全面掌握Hadoop的架构原理和使用场景,深入理解Hadoop技术架构,对Hadoop运作机制有清晰全面的认识,可以独立安装及使用Hadoop环境。将系统介绍Spark知识体系、授课方法、实验环境搭建、基础编程、高校大数据课程公共服务平台资源使用指南等方面的内容,旨在帮助参加培训的教师快速建立对Spark技术体系的整体性认识,为高效备课和顺利开课打下坚实基础。

第8期大数据师资培训班报名主页(Hadoop和Spark综合班,厦门,2018年7月24日-31日)报名主页

结束语

厦门大学数据库实验室在过去四年投入大量精力建设了丰富的大数据课程资源,总体而言,我们的课程建设模式如下:以大量教学实践推动课程和教材建设、以平台思维促进教学资源汇聚和共享、以迭代方法不断优化升级教学内容、自我造血为课程建设提供稳定资金保障。

最后,衷心感谢各位来宾对本次会议的大力支持,让我们共同努力,一起助力中国高校大数据教学事业不断迈上新的台阶。谢谢大家!

附录:讲者介绍

林子雨,男,1978年出生,博士(毕业于北京大学),现为厦门大学计算机科学系助理教授(讲师),曾任厦门大学信息科学与技术学院院长助理、晋江市发展和改革局副局长。中国计算机学会数据库专业委员会委员,中国计算机学会信息系统专业委员会委员。国内高校首个“数字教师”提出者和建设者,厦门大学数据库实验室负责人,厦门大学云计算与大数据研究中心主要建设者和骨干成员,2013年度和2017年度厦门大学教学类奖教金获得者,荣获2017年福建省精品在线开放课程和2018年厦门大学高等教育成果特等奖。主要研究方向为数据库、数据仓库、数据挖掘、大数据、云计算和物联网,并以第一作者身份在《软件学报》《计算机学报》和《计算机研究与发展》等国家重点期刊以及国际学术会议上发表多篇学术论文。作为项目负责人主持的科研项目包括1项国家自然科学青年基金项目(No.61303004)、1项福建省自然科学青年基金项目(No.2013J05099)和1项中央高校基本科研业务费项目(No.2011121049),主持的教改课题包括1项2016年福建省教改课题和1项2016年教育部产学协作育人项目,同时,作为课题负责人完成了国家发改委城市信息化重大课题、国家物联网重大应用示范工程区域试点泉州市工作方案、2015泉州市互联网经济调研等课题。中国高校首个“数字教师”提出者和建设者,2009年至今,“数字教师”大平台累计向网络免费发布超过500万字高价值的研究和教学资料,累计网络访问量超过500万次。打造了中国高校大数据教学知名品牌,编著出版了中国高校第一本系统介绍大数据知识的专业教材《大数据技术原理与应用》,并成为京东、当当网等网店畅销书籍;建设了国内高校首个大数据课程公共服务平台,为教师教学和学生学习大数据课程提供全方位、一站式服务,年访问量超过100万次。

更多信息请访问个人主页:http://www.cs.xmu.edu.cn/linziyu