Spark编程基础(Scala版)pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:Spark编程基础(Scala版)pdf/doc/txt格式电子书下载
推荐语:
作者:林子雨,赖永炫,陶继平
出版社:人民邮电出版社有限公司
出版时间:2018-07-01
书籍编号:30489101
ISBN:9787115488169
正文语种:中文
字数:449780
版次:1
所属分类:互联网+-大数据
版权信息
书名:Spark编程基础(Scala版)
作者:林子雨 赖永炫 陶继平
ISBN:9787115488169
免责声明:本站所有资源收集整理于网络,版权归原作者所有。
本站所有内容不得用于商业用途。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!
内容提要
本书以Scala作为开发Spark应用程序的编程语言,系统地介绍了Spark编程的基础知识。全书共8章,内容包括大数据技术概述、Scala语言基础、Spark的设计与运行原理、Spark环境搭建和使用方法、RDD编程、Spark SQL、Spark Streaming和Spark MLlib。
本书每章都安排了入门级的编程实践操作,以便使读者能更好地学习和更牢固地掌握 Spark 编程方法。本书配套官网免费提供了全套的在线教学资源,包括讲义 PPT、习题、源代码、软件、数据集、授课视频、上机实验指南等。
本书可以作为高等院校计算机、软件工程、数据科学与大数据技术等专业的进阶级大数据课程教材,用于指导Spark编程实践,也可供相关技术人员参考。
前言
FOREWORD
大数据时代的来临,给各行各业带来了深刻的变革。大数据像能源、原材料一样,已经成为提升国家和企业竞争力的关键要素,被称为“未来的新石油”。正如电力技术的应用引发了生产模式的变革一样,基于互联网技术而发展起来的大数据技术的应用,将会为人们的生产和生活带来颠覆性的影响。
目前,大数据技术正处于快速发展之中,不断有新的技术涌现,Hadoop和Spark等技术成为其中的佼佼者。在Spark流行之前,Hadoop俨然已成为大数据技术的事实标准,在企业中得到了广泛的应用,但其本身还存在诸多缺陷,最主要的是MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因而只适用于离线批处理的应用场景。Spark在设计上充分吸收借鉴了MapReduce的精髓并加以改进,同时,采用了先进的DAG执行引擎,以支持循环数据流与内存计算,因此,在性能上比 MapReduce 有了大幅度的提升,从而迅速获得了学术界和业界的广泛关注。作为大数据计算平台的后起之秀,Spark在2014年打破了Hadoop保持的基准排序纪录,此后逐渐发展成为大数据领域最热门的大数据计算平台之一。
随着大数据在企业应用的不断深化,企业对大数据人才的需求日益增长。为了有效地满足不断增长的大数据人才需求,国内高校从2016年开始设立“数据科学与大数据技术专业”,着力培养数据科学与工程领域的复合型高技术人才。课程体系的建设和课程教材的创作,是高校大数据专业建设的核心环节。
厦门大学数据库实验室在大数据教学领域辛勤耕耘、开拓创新,成为国内高校大数据教学资源的有力贡献者。实验室在积极践行O2O大数据教学理念的同时,提出了“以平台化思维构建全国高校大数据课程公共服务体系”的全新服务理念,成为推进国内高校大数据教学不断向前发展的一支重要力量,在全国高校之中形成了广泛的影响。2015年7月,实验室编写出版了国内高校第一本系统性介绍大数据知识的专业教材——《大数据技术原理与应用》,受到了广泛的好评,目前已经成为国内众多高校的入门级大数据课程的开课教材。同时,实验室建设了国内高校首个大数据课程公共服务平台(网址:http://dblab.xmu.edu.cn/post/bigdata-teachingplatform/),为全国高校教师和学生提供大数据教学资源一站式“免费”在线服务,包括课程教材、讲义PPT、课程习题、实验指南、学习指南、备课指南、授课视频和技术资料等,自2013年5月建设以来,定位明确,进展顺利,目前平台每年访问量超过100万次,成为全国高校大数据教学的知名品牌。
《大数据技术原理与应用》定位为入门级大数据教材,以“构建知识体系、阐明基本原理、开展初级实践、了解相关应用”为原则,旨在为读者搭建起通向大数据知识空间的桥梁和纽带,为读者在大数据领域深耕细作奠定基础、指明方向。高校在开设入门级课程以后,可以根据自己的实际情况,开设进阶级的大数据课程,继续深化对大数据技术的学习,而Spark是目前比较理想的大数据进阶课程学习内容。因此,厦门大学数据库实验室组织具有丰富经验的一线大数据教师精心编写了本教材。
为了确保教材质量,在出版纸质图书之前,实验室已经于2016年10月通过实验室官网免费共享了简化版的Spark在线教程和相关教学资源,同时,该在线教程也已经用于厦门大学计算机科学系研究生的大数据课程教学,并成为全国高校大数据课程教师培训交流班的授课内容。实验室根据读者对在线Spark教程的大量反馈意见以及在教学实践中发现的问题,对Spark在线教程进行了多次修正和完善,这些前期准备工作,都为纸质图书的编著出版打下了坚实的基础。
本书共8章,详细介绍了Spark的环境搭建和基础编程方法。第1章介绍大数据关键技术,帮助读者对大数据技术形成总体性认识以及了解Spark在其中所扮演的角色;第2章介绍Scala语言基础知识,为学习基于Scala语言的Spark编程奠定基础;第3章介绍Spark的设计与运行原理;第4章介绍 Spark的环境搭建和使用方法,为开展 Spark编程实践铺平道路;第5章介绍 RDD 编程,包括 RDD 的创建、操作 API、持久化、分区以及键值对RDD等,这章知识是开展Spark高级编程的基础;第6章介绍Spark中用于结构化数据处理的组件Spark SQL,包括DataFrame数据模型、创建方法和常用操作等;第7章介绍Spark Streaming,这是一种构建在Spark上的流计算框架,可以满足对流式数据进行实时计算的需求;第8章介绍Spark的机器学习库MLlib,包括MLlib的基本原理、算法、模型选择和超参数调整方法等。
本书面向高校计算机、软件工程、数据科学与大数据技术等专业的学生,可以作为专业必修课或选修课教材。本书由林子雨、赖永炫和陶继平执笔,其中,林子雨负责全书规划、统稿、校对和在线资源创作,并撰写第1、3、5、6、7章的内容,赖永炫负责撰写第8章的内容,陶继平负责撰写第2、4章的内容。在撰写过程中,厦门大学计算机科学系硕士研究生阮榕城、薛倩、魏亮、曾冠华、程璐、林哲等做了大量的辅助性工作,在此,向这些同学的辛勤工作表示衷心的感谢。同时,感谢夏小云老师在书稿校对过程中的辛勤付出。
本书配套的官方网站是http://dblab.xmu.edu.cn/post/spark/,免费提供全部配套资源的在线浏览和下载,并接受错误反馈和发布勘误信息。同时,Spark作为大数据进阶课程,在学习过程中会涉及大量相关的大数据基础知识以及各种大数据软件的安装和使用方法,因此,推荐读者访问厦门大学数据库实验室建设的国内高校首个大数据课程公共服务平台(http://dblab.xmu.edu.cn/post/bigdata-teaching-platform/),来获得必要的辅助学习内容。
本书在撰写过程中,参考了大量的网络资料和相关书籍,对Spark技术进行了系统梳理,有选择性地把一些重要知识纳入本书。由于笔者能力有限,本书难免存在不足之处,望广大读者不吝赐教。
林子雨
厦门大学计算机科学系数据库实验室
2018年1月
第1章 大数据技术概述
大数据时代的来临,给各行各业带来了深刻的变革。大数据像能源、原材料一样,已经成为提升国家和企业竞争力的关键要素,被称为“未来的新石油”。正如电力技术的应用引发了生产模式的变革一样,基于互联网技术而发展起来的大数据应用,将会对人们的生产和生活产生颠覆性的影响。
本章首先介绍大数据的概念与关键技术,然后重点介绍有代表性的大数据技术,包括 Hadoop、Spark、Flink、Beam 等,最后探讨本教程编程语言的选择,并给出与本教材配套的相关在线资源。
1.1 大数据的概念与关键技术
随着大数据时代的到来,“大数据”已经成为互联网信息技术行业的流行词汇。本节介绍大数据的概念与关键技术。
1.1.1 大数据的概念
关于“什么是大数据”这个问题,学术界和业界比较认可关于大数据的“4V”说法。大数据的4个“V”,或者说是大数据的4个特点,包含4个层面:数据量大(Volume)、数据类型繁多(Variety)、处理速度快(Velocity)和价值密度低(Value)。
(1)数据量大。根据著名咨询机构IDC(Internet Data Center)做出的估测,人类社会产生的数据一直都在以每年50%的速度增长,这被称为“大数据摩尔定律”。这意味着,人类在最近两年产生的数据量相当于之前产生的全部数据量之和。预计到2020年,全球将总共拥有35ZB的数据量,数据量将增长到2010年数据的近30倍。
(2)数据类型繁多。大数据的数据类型丰富,包括结构化数据和非结构化数据,其中,前者占10%左右,主要是指存储在关系数据库中的数据,后者占90%左右,种类繁多,主要包括邮件、音频、视频、微信、微博、位置信息、链接信息、手机呼叫信息、网络日志等。
(3)处理速度快。大数据时代的很多应用,都需要基于快速生成的数据给出实时分析结果,用于指导生产和生活实践,因此,数据处理和分析的速度通常要达到秒级响应,这一点和传统的数据挖掘技术有着本质的不同,后者通常不要求给出实时分析结果。
(4)价值密度低。大数据价值密度却远远低于传统关系数据库中已经有的那些数据,在大数据时代,很多有价值的信息都是分散在海量数据中的。
1.1.2 大数据关键技术
大数据的基本处理流程,主要包括数据采集、存储管理、处理分析、结果呈现等环节。因此,从数据分析全流程的角度来看,大数据技术主要包括数据采集与预处理、数据存储和管理、数据处理与分析、数据可视化、数据安全和隐私保护等几个层面的内容(具体如表1-1所示)。
表1-1 大数据技术的不同层面及其功能

此外,大数据技术及其代表性软件种类繁多,不同的技术都有其适用和不适用的场景。总体而言,不同的企业应用场景,都对应着不同的大数据计算模式,根据不同的大数据计算模式,可以选择相应的大数据计算产品,具体如表1-2所示。
表1-2 大数据计算模式及其代表产品

批处理计算主要解决针对大规模数据的批量处理,也是我们日常数据分析工作中非常常见的一类数据处理需求。比如,爬虫程序把大量网页抓取过来存储到数据库中以后,可以使用 MapReduce对这些网页数据进行批量处理,生成索引,加快搜索引擎的查询速度。代表性的批处理框架包括MapReduce、Spark等。
流计算主要是实时处理来自不同数据源的、连续到达的流数据,经过实时分析处理,给出有价值的分析结果。比如,用户在访问淘宝网等电子商务网站时,用户在网页中的每次点击的相关信息(比如选取了什么商品)都会像水流一样实时传播到大数据分析平台,平台采用流计算技术对这些数据进行实时处理分析,构建用户“画像”,为其推荐可能感兴趣的其他相关商品。代表性的流计算框架包括Twitter Storm、Yahoo! S4等。Twitter Storm是一个免费、开源的分布式实时计算系统, Storm对于实时计算的意义类似于Hadoop对于批处理的意义,Storm可以简单、高效、可靠地处理流数据,并支持多种编程语言。Storm框架可以方便地与数据库系统进行整合,从而开发出强大的实时计算系统。Storm可用于许多领域中,如实时分析、在线机器学习、持续计算、远程RPC、数据提取加载转换等。由于Storm具有可扩展、高容错性、能可靠地处理消息等特点,目前已经被广泛应用于流计算应用中。
在大数据时代,许多大数据都是以大规模图或网络的形式呈现,如社交网络、传染病传播途径、交通事故对路网的影响等。此外,许多非图结构的大数据,也常常会被转换为图模型后再进行处理分析。图计算软件是专门针对图结构数据开发的,在处理大规模图结构数据时可以获得很好的性能。谷歌公司的Pregel是一种基于BSP模型实现的图计算框架。为了解决大型图的分布式计算问题, Pregel搭建了一套可扩展的、有容错机制的平台,该平台提供了一套非常灵活的API,可以描述各种各样的图计算。Pregel 作为分布式图计算的计算框架,主要用于图遍历、最短路径、PageRank计算等。
查询分析计算也是一种
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询