首页>参考读物>计算机科学与技术>软件与程序设计

循序渐进学Spark
作者 : 小象学院 杨磊 著
丛书名 : 大数据技术丛书
出版日期 : 2017-04-05
ISBN : 978-7-111-56332-7
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 250
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

内容简介
这是一部从零开始系统学习Spark的绝佳指南!
它以最新的Spark2.0为基础,从Spark的架构设计和开发环境搭建开始,对Spark进行了全方位的、循序渐进的讲解,内容包括功能模块的使用方法、编程模型、性能优化,到架构设计、实现原理与工作机制,等等。对于任何想系统学习Spark的读者而言,只需要根据本书的顺序阅读,理解书中的内容,并完成书中的练习即可,非常轻松。
全书共8章:
第1章,首先从宏观上介绍了Spark的组成和架构设计,然后详细讲解了Spark开发环境和集群环境的搭建,为后面章节的学习做好准备;
第2章,讲解了Spark的编程模型,包含RDD弹性分布式数据、Spark的程序模型,以及它的各种算子;
第3章,分析了Spark的工作机制与实现原理,重点剖析了Spark的提交和执行机制、Spark程序的宏观执行过程、存储及IO、通信机制、容错机制,以及Shuffle机制;
第4章,深入分析了Spark的内核,沿着Spark的执行主线进行详细剖析,首先详细分析RDD是如何落地到Worker上执行的,然后从另一个角度分析了Client、Master与Worker之间的交互过程,最后深入讲述了spark的两个重要功能点以及Spark Shuffle与Spark的存储机制。
第5章,主要讲解了Yarn的基本原理,以及基于Yarn的Spark程序提交和落地执行,同时还详细介绍了各个阶段的资源管理和调度职能;
第6章,讲解了BDAS 生态的主要模块,包含Spark SQL、Spark Streaming、Spark R、Spark MLlib等重要的模块;
第7章,总结了Spark的性能调优方法以及工业实践中常见问题的常用策略和解决方案;
第8章,重点讲解了Spark 2.0.0的更新,包括Spark Core、Spark SQL、MLlib、Spark Streaming、SparkR等模块API的变化以及新增的功能特性等,以及变化较大的Spark SQL中引入SparkSession、结构化Streaming等新的特性等。

图书前言

Spark诞生于美国加州大学伯克利分校AMP实验室。随着大数据技术在互联网、金融等领域的突破式进展,Spark在近些年得到更为广泛的应用。这是一个核心贡献者超过一半为华人的大数据平台开源项目,且正处于飞速发展、快速成熟的阶段。
为什么写这本书
Spark已经成为大数据计算、分析领域新的热点和发展方向。相对于Hadoop传统的MapReduce计算模型,Spark提供更为高效的计算框架以及更为丰富的功能,因此在大数据生产应用领域中不断攻城略地,势如破竹。
与企业不断涌现的对大数据技术的需求相比,大数据人才还存在很大缺口,对大数据技术充满期许的新人正在源源不断地加入这个领域。在小象学院的教学实践过程中,我们发现,一本能完整系统地介绍Spark各模块原理并兼顾使用实战的书,对于初入大数据领域的技术人员至关重要。于是,我们根据日常积累的经验,著成本书。
Spark作为一个高速发展的开源项目,最近也发布了全新的Spark 2.0版本。对于Spark 2.0版本的新特性,我们也专门给予描述,以期将最前沿的Spark技术奉献给读者。
本书面向的读者
Spark初学者
Spark应用开发人员
Spark运维人员
大数据技术爱好者
如何阅读本书
本书共分8章:
第1章介绍了Spark大数据处理框架的基本概念、主要组成部分、基本架构,以及Spark集群环境搭建和Spark开发环境的构建方法。
第2章引入Spark编程中的核心——RDD弹性分布式数据集,以典型的编程范例,讲解基于RDD的算子操作。
第3章主要讲述了Spark的工作机制与原理,剖析了Spark的提交和执行时的具体机制,重点强调了Spark程序的宏观执行过程。此外,更深入地剖析了Spark的存储及IO、通信机制、容错机制和Shuffle机制。
第4章对Spark的代码布局做了宏观介绍,并对Spark的执行主线进行详细剖析,从代码层面详细讲述RDD是如何落地到Worker上执行的。同时,本章从另一个角度分析了Client、Master与Worker之间的交互过程,深入讲述了Spark的两个重要功能点及Spark Shuffle与Spark存储机制。
第5章介绍了YARN的基本原理及基于YARN的Spark程序提交,并结合从程序提交到落地执行的过程,详细介绍了各个阶段的资源管理和调度职能。在本章的后半部分,主要从资源配置的角度对YARN及基于YARN的Spark做了较为详细的介绍。
第6章一一讲解了BDAS中的主要模块。由Spark SQL开始,介绍了Spark SQL及其编程模型和DataFrame。接着深入讲解Spark生态中用于流式计算的模块Spark Streaming。之后,讲解了Spark R的基本概念及操作。 最后针对机器学习的流行趋势,重点介绍了Spark MLlib的架构及编程应用,以及机器学习的基本概念和基本算法。
第7章首先详细叙述了Spark调优的几个重要方面,接着给出了工业实践中常见的一些问题,以及解决问题的常用策略,最后启发读者在此基础上进一步思考和探索。
第8章描述了Spark 2.0.0发布之后,Spark Core、Spark SQL、MLlib、Spark Streaming、Spark R等模块API的变化以及新增的功能特性等。对于变化较大的Spark SQL,书中用实际的代码样例更详细地说明和讲解了SparkSession、结构化Streaming等新特性。
对于Spark的初学者或希望从零开始详细了解Spark技术的读者,请从第1章开始通读全书;对于有一定Spark基础的研究者,可从第4章开始阅读;如果只想了解Spark最基本的原理,阅读第1~3章即可。
资源和勘误
本书大量资源来源于小象学院专家团队在大数据项目开发以及Spark教学课程中的经验积累。本书内容的撰写也参考了大量官方文档(http://spark.apache.org/)。
由于Spark技术正在飞速发展,加之笔者水平有限,书中难免存在谬误,也可能存
在若干技术细节描述不详尽之处,恳请读者批评指正。欢迎大家关注微信服务号“小象学院”,把您的意见或者建议反馈给我们。
致谢
首先应该感谢Apache Spark的开源贡献者们,Spark是当今大数据领域伟大的开源项目之一,没有这一开源项目,便没有本书。
本书以小象学院git项目方式管理。感谢姜冰钰、陈超、冼茂源等每一位内容贡献者,感谢他们花费大量时间,将自己对Spark的理解加上在实际工作、学习过程中的体会,融汇成丰富的内容。
感谢本书的审阅者樊明璐、杨福川、李艺,他们对本书的内容和结构提供了非常宝贵的意见。

上架指导

计算机科学/大数据分析与处理

封底文字

Spark巧妙的架构设计,使其计算性能在大数据框架领域独占鳌头,几乎能满足大数据计算领域的所有主流需求。国内外主流的互联网公司,都已将其大规模地用在在商业环境中,成为大数据分析和计算的重要支撑平台。
Spark 2.0.0是Spark的一个里程碑版本,相比之前的版本,这个版本在功能和性能上都有很多重要的变化,给我们带来了一个更强、更快的Spark。对于初学者而言,目前市面上关于Spark的入门书,已经不能很好地满足广大初学者的需求了,于是我们策划了这本书。
这本书基于最新的Spark2.0.0版本,根据初学者的需求,从Spark的架构设计、环境搭建、编程模型、内核、Spark on Yarn、BDAS生态模块、性能调优等方面进行了循序渐进地讲解。更重要的是,本书非常注重实战,包含大量的案例。对于初学者而言,这应该是一本不错的参考书。

作者简介

小象学院 杨磊 著:
小象学院(ChinaHadoop.cn)是北京小象科技有限公司旗下的在线教育服务平台,是中国大数据在线教育领导品牌。

图书目录

前 言
第1章 Spark架构与集群环境  1
1.1 Spark概述与架构  1
1.1.1 Spark概述  2
1.1.2 Spark生态  3
1.1.3 Spark架构  5
1.2 在Linux集群上部署Spark  8
1.2.1 安装OpenJDK  9
1.2.2 安装Scala  9
1.2.3 配置SSH免密码登录  10
1.2.4 Hadoop的安装配置  10
1.2.5 Spark的安装部署  13
1.2.6 Hadoop与Spark的集群复制  14
1.3 Spark 集群试运行  15
1.4 Intellij IDEA的安装与配置  17
1.4.1 Intellij的安装  17
1.4.2 Intellij的配置  17
1.5 Eclipse IDE的安装与配置  18
1.6 使用Spark Shell开发运行Spark程序  19
1.7 本章小结  20
第2章 Spark 编程模型  21
2.1 RDD弹性分布式数据集  21
2.1.1 RDD简介  22
2.1.2 深入理解RDD  22
2.1.3 RDD特性总结  24
2.2 Spark程序模型  25
2.3 Spark算子  26
2.3.1 算子简介  26
2.3.2 Value型Transmation算子  27
2.3.3 Key-Value型Transmation算子  32
2.3.4 Action算子  34
2.4 本章小结  37
第3章 Spark机制原理  38
3.1 Spark应用执行机制分析  38
3.1.1 Spark应用的基本概念  38
3.1.2 Spark应用执行机制概要  39
3.1.3 应用提交与执行  41
3.2 Spark调度机制  42
3.2.1 Application的调度  42
3.2.2 job的调度  43
3.2.3 stage(调度阶段)和TasksetManager的调度  46
3.2.4 task的调度  50
3.3 Spark存储与I/O  52
3.3.1 Spark存储系统概览  52
3.3.2 BlockManager中的通信  54
3.4 Spark通信机制  54
3.4.1 分布式通信方式  54
3.4.2 通信框架AKKA  56
3.4.3 Client、Master和Worker之间的通信  57
3.5 容错机制及依赖  65
3.5.1 Lineage(血统)机制  66
3.5.2 Checkpoint(检查点)机制  68
3.6 Shuffle机制  70
3.6.1 什么是Shuffle  70
3.6.2 Shuffle历史及细节  72
3.7 本章小结  78
第4章 深入Spark内核  79
4.1 Spark代码布局  79
4.1.1 Spark源码布局简介  79
4.1.2 Spark Core内模块概述  80
4.1.3 Spark Core外模块概述  80
4.2 Spark执行主线[RDD→Task]剖析  80
4.2.1 从RDD到DAGScheduler  81
4.2.2 从DAGScheduler到TaskScheduler  82
4.2.3 从TaskScheduler到Worker节点  88
4.3 Client、Master和Worker交互过程剖析  89
4.3.1 交互流程概览  89
4.3.2 交互过程调用  90
4.4 Shuffle触发  96
4.4.1 触发Shuffle Write  96
4.4.2 触发Shuffle Read  98
4.5 Spark存储策略  100
4.5.1 CacheManager职能  101
4.5.2 BlockManager职能  105
4.5.3 DiskStore与DiskBlock--Manager类  113
4.5.4 MemoryStore类  114
4.6 本章小结  117
第5章 Spark on YARN  118
5.1 YARN概述  118
5.2 Spark on YARN的部署模式  121
5.3 Spark on YARN的配置重点  125
5.3.1 YARN的自身内存配置  126
5.3.2 Spark on YARN的重要配置  127
5.4 本章小结  128
第6章 BDAS 生态主要模块  129
6.1 Spark SQL  129
6.1.1 Spark SQL概述  130
6.1.2 Spark SQL的架构分析  132
6.1.3 Spark SQL如何使用  135
6.2 Spark Streaming  140
6.2.1 Spark Streaming概述  140
6.2.2 Spark Streaming的架构分析  143
6.2.3 Spark Streaming编程模型  145
6.2.4 数据源Data Source  147
6.2.5 DStream操作  149
6.3 SparkR  154
6.3.1 R语言概述  154
6.3.2 SparkR简介  155
6.3.3 DataFrame创建  156
6.3.4 DataFrame操作  158
6.4 MLlib on Spark  162
6.4.1 机器学习概述  162
6.4.2 机器学习的研究方向与问题  164
6.4.3 机器学习的常见算法  167
6.4.4 MLlib概述  210
6.4.5 MLlib架构  212
6.4.6 MLlib使用实例——电影推荐  214
6.5 本章小结  220
第7章 Spark调优  221
7.1 参数配置  221
7.2 调优技巧  223
7.2.1 序列化优化  223
7.2.2 内存优化  224
7.2.3 数据本地化  228
7.2.4 其他优化考虑  229
7.3 实践中常见调优问题及思考  230
7.4 本章小结  231
第8章 Spark 2.0.0  232
8.1 功能变化  232
8.1.1 删除的功能  232
8.1.2 Spark中发生变化的行为  233
8.1.3 不再建议使用的功能  233
8.2 Core以及Spark SQL的改变  234
8.2.1 编程API  234
8.2.2 多说些关于SparkSession  234
8.2.3 SQL  236
8.3 MLlib  237
8.3.1 新功能  237
8.3.2 速度/扩展性  237
8.4 SparkR  238
8.5 Streaming  238
8.5.1 初识结构化Streaming  238
8.5.2 结构化Streaming编程模型  239
8.5.3 结果输出  240
8.6 依赖、打包  242
8.7 本章小结  242

教学资源推荐
作者: 钱丽萍 汪立东 张健 编著
作者: 苏俊
作者: 刘燕君,刘振安,孙忱
参考读物推荐
作者: 刘志铭 等编著
作者: Cedric Beust;Hani Suleiman
作者: Krzysztof Cwalina Brad Abrams
作者: 陈宇姣,徐卉