《Spark编程基础》教材官网

《Spark编程基础》教材官网

厦门大学 林子雨,赖永炫,陶继平  编著

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

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

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

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

本教程将于2018年1月正式由人民邮电出版社出版发行,敬请关注!

在纸质教出版之前,可以使用在线教程开展教学


 本页面内容导航

 教程简介 | 实验指南 下载专区 | 教材所有命令行和代码先修课程 | 在线教程

讲义PPT | 每个章节配套上机实验题目综合案例大数据课程公共服务平台  |  教材勘误 | 大事记联系人


扫一扫访问本网页

教程简介

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

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

作者简介

本教程由林子雨、赖永炫和陶继平执笔,其中,林子雨负责教材规划、统稿、校对和在线资源创作,并撰写第1、3、4、5、6、7章的内容,赖永炫负责撰写第8章的内容,陶继平负责撰写第2章的内容。

林子雨(1978-),男,博士,厦门大学计算机科学系助理教授,厦门大学云计算与大数据研究中心创始成员,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员。于2001年获得福州大学水利水电专业学士学位,2005年获得厦门大学计算机专业硕士学位,2009年获得北京大学计算机专业博士学位。中国高校首个“数字教师”提出者和建设者,2009年至今,“数字教师”大平台累计向网络免费发布超过500万字高价值的教学和科研资料,累计网络访问量超过500万次。主要研究方向为数据库、数据仓库、数据挖掘、大数据和云计算,发表期刊和会议学术论文多篇,并作为课题组负责人承担了国家自然科学基金和福建省自然科学基金项目。2013年开始在厦门大学开设大数据课程,并因在教学领域的突出贡献和学生的认可,成为2013年度和2017年度厦门大学教学类奖教金获得者。点击这里访问林子雨个人主页

赖永炫(1981-),男,博士,厦门大学软件学院副教授,厦门大学移动与数据分析(MOCOM)实验室负责人(主页),福建省人工智能学会理事。2004年毕业于中国人民大学信息管理系,2009年毕业于中国人民大学计算机系,获工学博士学位。研究方向是网络数据管理,车载网络,大数据分析和管理等。近年来主持过国家科技支撑计划课题1项,国家自然科学基金2项,参与国家及省部级课题10余项。发表高水平科研论文20余篇,并担任多个国际期刊和会议的审稿人。获得过厦门大学厦航奖教金,厦门大学第八届青年教师教学技能比赛一等奖,厦门大学高等教育教学成果二等奖。

陶继平,男,1980年出生,博士。2010年毕业于上海交通大学控制科学与工程专业,获得工学博士学位。现任厦门大学自动化系副教授,厦门市物流协会信息化专业委员会委员,曾为厦门大学云计算与大数据研究中心主要建设者和骨干成员。主要研究兴趣包括运筹与优化算法理论及其在生产调度、多机器人规划、云计算、大数据分析等方面的应用。作为项目负责人主持1项国家自然科学青年基金项目(No. 11201391),已发表学术论文20多篇。作为主要参与人参与了国家自然科学基金、福建省自然科学基金等国家及省部级课题6项。

在线教程

为了确保教程质量,在编著出版纸质教材之前,厦门大学数据库实验室已经于2016年10月通过实验室官网免费发布共享了简化版的《Spark在线教程》(访问)和相关教学资源,同时,该在线教程也已经用于厦门大学计算机科学系研究生的大数据课程教学,并成为全国高校大数据课程教师培训交流班的授课内容。实验室根据读者对在线Spark教程的大量反馈意见以及教学实践中发现的问题,对Spark在线教程进行了多次修正和完善,所有这些前期准备工作,都为纸质教材的编著出版打下了坚实的基础。

子雨大数据之Spark入门

点击这里访问在线版本的Spark入门教程

问:在线版本的《Spark入门教程》和出版发行的纸质教材《Spark编程基础》二者的区别是什么?

答:在线版本的《Spark入门教程》属于简化版的Spark教材,旨在帮助读者快速学习Spark技术,里面内容的写作方式会更加口语化,偏向于博客的风格。出版发行的纸质教材《Spark编程基础》,则是完全从高校专业课教材的角度进行创作,在知识架构和内容编排上,严格按照教材的高标准和高要求来进行,强调前后文高度的逻辑相关性,全书内容的整体协调性,以及文字表述的精准清晰性。因此,纸质教材比在线版本的质量,有了本质的大幅度提升。可以说,在线版本只是在写作纸质教材之前的准备工作,为纸质教材提供了蓝本。本书作者林子雨、赖永炫和陶继平三位老师,在完成在线版本创作以后,又进行了系统深入的调研和学习并反复实践,最终,撰写了纸质教材用于高校教学。

需要注意的是,在线版本中也包含了一些纸质教材中没有的内容,因为这些操作实践的内容比较琐碎,因此,没有放入纸质教材,所以,读者阅读在线版本仍然会有新的收获。总体而言,在线版本和纸质教材二者配合使用,效果更好。

实验指南

章节 实验操作名称 访问网页
第1章 大数据技术概述 在Windows中使用VirtualBox安装Ubuntu 查看
第1章 大数据技术概述 Linux系统的常用命令 查看
第1章 大数据技术概述 在Windows系统中利用FTP软件向Ubuntu系统上传文件 查看
第2章 Scala语言基础 Linux系统的安装 查看
第2章 Scala语言基础 Linux系统中Java的安装 查看
第2章 Scala语言基础 Linux系统中下载安装文件和解压缩方法 查看
第2章 Scala语言基础 Linux系统中vim编辑器的安装和使用方法 查看
第4章 Spark环境搭建和使用方法 Hadoop的安装和使用 查看
第4章 Spark环境搭建和使用方法 使用IntelliJ IDEA编写Spark应用程序(Scala+Maven) 查看
第4章 Spark环境搭建和使用方法 使用Intellij Idea编写Spark应用程序(Scala+SBT) 查看
第4章 Spark环境搭建和使用方法 使用Eclipse编写Spark应用程序(Scala+Maven) 查看
第4章 Spark环境搭建和使用方法 使用Eclipse编写Spark应用程序(Scala+SBT) 查看
 第4章 Spark环境搭建和使用方法  Hadoop集群安装配置方法 查看
第4章 Spark环境搭建和使用方法 HDFS操作常用Shell命令 查看
第5章 RDD编程 HBase的安装 查看
第6章 Spark SQL 在Ubuntu中安装MySQL 查看
第6章 Spark SQL Hive的安装 查看
第7章 Spark Streaming Kafka的安装和使用方法 查看
第7章 Spark Streaming 使用Flume作为Spark的数据源 查看
第7章 Spark Streaming 使用Kafka作为Spark的数据源 查看
第7章 Spark Streaming 日志采集工具Flume的安装与使用方法 查看

下载专区

“下载专区”所有资源全部放在百度云盘中,需要在电脑上安装百度云盘客户端,才能顺利下载内容,请点击这里访问百度云盘

“下载专区”栏目提供了本教程内各个章节所涉及到的源代码、软件和数据集的下载,为了方便读者查找相关软件和代码,下表给出了教程官网“下载专区”目录及其内容的概览。

表1  下载专区资源一览表

目录

文件清单

软件 apache-hive-1.2.1-bin.tar.gz

apache-maven-3.3.9-bin.zip

FileZilla_3.17.0.0_win64_setup.exe

hadoop-2.7.1.tar.gz

hbase-1.1.5-bin.tar.gz

kafka_2.11-0.10.2.0.tgz

mysql-connector-java-5.1.40.tar.gz

sbt-launch.jar

scala-2.11.8.tgz

spark-2.1.0-bin-without-hadoop.tgz

spark-2.1.0.tgz

spark-streaming-kafka-0-8_2.11-2.1.0.jar

spark-2.1.0-bin-h27hive.tgz

ubuntukylin-16.04-desktop-amd64.iso

VirtualBox_5.0.10.4061_104061_Win.1448355141.exe

代码 第2章 Bird.scala, Bird1.scala, Bird2.scala, Bird3.scala, Box.scala, Counter.scala, Counter1.scala, Counter2.scala, Element.scala, Element1.scala, HelloWorld.scala, MyCar.scala, MyTestApply.scala, Person.scala, Person1.scala, Test.scala, TestApplyClass.scala, TestBreak.scala, TestCase.scala, TestMatch.scala, TestMatch1.scala, TestMatch2.scala, TestMatch3.scala,TestUnapply.scala,Top.scala
第4章 pom.xml, simple.sbt, SimpleApp.scala
第5章 Combine.scala, FileSort.scala, JSONRead.scala, SecondarySortApp.scala, SecondarySortKey.scala, SparkOperateHBase.scala, SparkWriteHBase.scala, TestPartitioner.scala, TopN.scala
第6章 InsertStudent.scala
第7章 DataSourceSocket.scala, KafkaWordCount.scala, KafkaWordProducer.scala, NetworkWordCount.scala, NetworkWordCountStateful.scala, simple.sbt, StreamingExamples.scala, TestRDDQueueStream.scala, TestStreaming.scala
数据集 第5章 chapter5-data1.txt
第8章 adult.rar, iris.data
实验答案 附录A 附录A:《林子雨编著:Spark编程基础》教材配套实验答案.pdf

 

每个章节配套实验题目和答案

纸质教材《Spark编程基础》的每个章节(除了第3章 Spark的设计与运行原理)末尾都配套了学生上机实验题目,每套实验题目可以满足1次上机实验室(比如连续4节课机房统一上机实验课)的要求,旨在帮助学生更好消化理解课堂内容。(实验题目和答案将在2018年春季学期纸质教材正式出版后发布

章节 实验
第1章 大数据技术概述 实验1-Linux系统的安装和常用命令
第2章 Scala语言基础 实验2-Scala编程初级实践
第3章 Spark的设计与运行原理 无实验
第4章 Spark环境搭建和使用方法 实验3-Spark和Hadoop的安装
第5章 RDD编程 实验4-RDD编程初级实践
第6章 Spark SQL 实验5-Spark SQL编程初级实践
第7章 Spark Streaming 实验6-Spark Streaming编程初级实践
第8章 Spark MLlib 实验7-Spark机器学习库MLlib编程实践

 

综合案例

(1)案例1:淘宝双11数据分析与预测(访问案例主页

本案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Hive、Sqoop、Eclipse、ECharts、Spark等系统和软件的安装和使用方法。案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。通过本案例,将有助于学生综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。各个高校可以根据自己教学实际需求,对本案例进行补充完善。

(2)案例2:Spark+Kafka构建实时分析Dashboard(访问案例主页

本案例涉及数据预处理、消息队列发送和接收消息、数据实时处理、数据实时推送和实时展示等数据处理全流程所涉及的各种典型操作,涵盖Linux、Spark、Kafka、Flask、Flask-SocketIO、Highcharts.js、sockert.io.js、PyCharm等系统和软件的安装和使用方法。案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。通过本案例,将有助于学生综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。各个高校可以根据自己教学实际需求,对本案例进行补充完善。

(3)案例3:Spark大数据分析案例之平均心率检测(访问案例主页

本案例以案例2为基础,涉及模拟数据生成,数据预处理、消息队列发送和接收消息、数据实时处理、数据实时推送和实时展示等数据处理全流程,所涉及的各种典型操作涵盖Linux、Spark、Kafka、JAVA、MySQL、Ajax、Html、Css、Js、Maven等系统和软件的安装和使用方法。通过本案例,将有助于综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。

拓展阅读

内容 查看
Spark GraphX

(备注:进入右边查看链接后,找到《Spark入门教程》的第7章 Spark GraphX)

查看

 

先修课程(建议学习,不是必须)

Spark作为大数据进阶课程,在学习过程中会涉及大量相关的大数据基础知识以及各种大数据软件的安装和使用方法,包括Hadoop、HDFS、MapReduce、HBase、Hive等,只有具备这些入门级的大数据基础知识,才能够比较顺利地完成Spark课程的学习。因此,如果读者之前没有学习过这些基础知识,建议先学习《大数据技术原理与应用》教材(官网),并观看与该教材配套的授课视频《大数据技术原理与应用》(观看)。当然,不事先学习《大数据技术原理与应用》,也可以直接学习《Spark编程基础》,因为,《Spark编程基础》教程中,在每个章节中,对于读者可能遇到的“基础知识障碍”,都有给出某个具体知识点的相关链接(比如,在讲解Spark安装时,需要首先安装Hadoop,但是,读者可能不会安装Hadoop,这时,读者就可以访问教程中的“Hadoop的安装和使用”这个知识点链接,就可以顺利完成Hadoop的安装,跨过学习的障碍),读者只要按照链接进行有针对性的补充学习即可,不需要学习全部的《大数据技术原理与应用》知识。

同时,厦门大学数据库实验室为《大数据技术原理应用》教材编写了配套的实验指导书《大数据基础编程、实验和案例教程》(官网),该实验指导书侧重于介绍大数据软件的安装、使用和基础编程方法,并提供了丰富的实验和案例。

课程图片

点击这里观看在线视频

大数据课程公共服务平台

Spark作为大数据进阶课程,在学习过程中会涉及大量相关的大数据基础知识以及各种大数据软件的安装和使用方法,因此,推荐读者访问大数据课程公共服务平台(访问),来获得必要的辅助学习内容。

厦门大学数据库实验室建设了国内高校首个大数据课程公共服务平台(访问),为全国高校教师和学生提供大数据教学资源一站式“免费”在线服务,包括课程教材、讲义PPT、课程习题、实验指南、学习指南、备课指南、授课视频和技术资料等,自2013年5月建设以来,定位明确,进展顺利,目前平台每年访问量超过100万次,成为全国高校大数据教学知名品牌。

教材勘误

在教材使用过程中,如发现任何错误,欢迎联系教材作者林子雨:ziyulin@xmu.edu.cn。在此向读者表示衷心的感谢!

大事记

*2016年10月30日,林子雨编写的《Spark入门教程》在线教程正式上线。

*2017年2月-5月,由林子雨主讲的厦门大学计算机系研究生课程《大数据处理技术Spark》正式开课(班级主页)。

*2017年8月7日-13日,由林子雨老师主讲的第6期全国高校大数据课程教师培训交流班(Spark高级研修班)在贵阳顺利举办(Spark师资培训班主页)。

*2017年10月6日,由厦门大学林子雨、赖永炫和陶继平三位老师合作编写的《Spark编程基础》教材电子书稿完成撰写,并提交给人民邮电出版社,纸质教材将于2018年1月正式上市销售。

联系人

欢迎联系教材作者林子雨:ziyulin@xmu.edu.cn