【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
Spark最初诞生于美国加州大学伯克利分校(UC Berkeley)的AMP实验室,是一个可应用于大规模数据处理的快速、通用引擎。2013年,Spark加入Apache孵化器项目后,开始获得迅猛的发展,如今已成为Apache软件基金会最重要的三大分布式计算系统开源项目之一(即Hadoop、Spark、Storm)。Spark最初的设计目标是使数据分析更快——不仅运行速度快,也要能快速、容易地编写程序。为了使程序运行更快,Spark提供了内存计算,减少了迭代计算时的IO开销;而为了使编写程序更为容易,Spark使用简练、优雅的Scala语言编写,基于Scala提供了交互式的编程体验。虽然,Hadoop已成为大数据的事实标准,但其MapReduce分布式计算模型仍存在诸多缺陷,而Spark不仅具备Hadoop MapReduce所具有的优点,且解决了Hadoop MapReduce的缺陷。Spark正以其结构一体化、功能多元化的优势逐渐成为当今大数据领域最热门的大数据计算平台。
Spark支持使用Scala、Java、Python和R语言进行编程。由于Spark采用Scala语言进行开发,因此,建议采用Scala语言进行Spark应用程序的编写。Scala是一门现代的多范式编程语言,平滑地集成了面向对象和函数式语言的特性,旨在以简练、优雅的方式来表达常用编程模式。Scala语言的名称来自于“可伸展的语言”,从写个小脚本到建立个大系统的编程任务均可胜任。Scala运行于Java平台(JVM,Java 虚拟机)上,并兼容现有的Java程序。
但是,Scala编程语言的学习曲线相对比较陡峭,尤其是,目前很多高校教学大多采用Java等面向对象语言,而Scala则融入了许多函数式编程思维,面向对象编程和函数式编程,是两种截然不同的编程风格,因此,给教师和学生学习Scala语言造成了很大的障碍。
笔者作为“中国高校大数据课程公共服务平台”的建设者和负责人,一直致力于为全国高校教师和学生快速学习大数据知识提供辅助,降低大数据知识学习门槛,大幅节约大数据学习时间,加快推动全国高校大数据课程的大规模普及。“中国高校大数据课程公共服务平台”(平台主页)目前已经成长为国内高校大数据教学知名品牌,年访问量超过100万次,为教师和学生提供了大数据教学资源一站式服务,包括课程教材、讲义PPT、学习指南、备课指南、授课视频、实验指南、技术资料和师资培训等。在2013年5月到2016年9月,平台重点建设了与《大数据技术原理与应用》(教材官网)入门级大数据教材配套的各种教学资源,为高校开设大数据导论课程奠定了较好的基础。
但是,《大数据技术原理与应用》课程只能作为导论级课程,高校课程体系还应该包括更多高级课程,比如机器学习、Spark、NoSQL、R语言、Hadoop高级编程、流数据处理、大数据应用与案例等。因此,从2016年9月开始,笔者开始带领厦门大学数据库实验室团队,建设“Spark入门教程”教学资源,作为大数据学习探路先锋,寻找出一条学习Spark技术的捷径,降低学习难度,节省学习时间,辅助高校教师顺利开设Spark课程。
本教程采用Scala语言编写Spark应用程序,在知识安排上,首先学习Scala编程,然后再学习Spark应用程序开发。
厦门大学研究生课程《大数据处理技术Spark》
欢迎点击这里访问林子雨老师主讲厦门大学研究生课程《大数据处理技术Spark》2017春季学期班级主页,包含讲义PPT等资料
Spark课程综合实验案例
案例1:淘宝双11数据分析与预测
Spark课程实验案例:淘宝双11数据分析与预测课程案例,由厦门大学数据库实验室团队开发,旨在满足全国高校大数据教学对实验案例的迫切需求。本案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Hive、Sqoop、Eclipse、ECharts、Spark等系统和软件的安装和使用方法。案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。通过本案例,将有助于学生综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。各个高校可以根据自己教学实际需求,对本案例进行补充完善。
点击这里访问案例主页
案例2:Spark+Kafka构建实时分析Dashboard
大数据课程实验案例