描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787302449959
本书共六章,涉及的主题主要包括大数据处理技术从Hadoop发展到Spark的必然性、快速体验Spark的指引、Spark架构和原理、RDD算子使用方法和示例、Spark算法设计实例、Spark程序优化方法。
本书适合需要使用Spark进行大数据处理的程序员、架构师和产品经理作为技术参考和培训资料,亦可作为高校研究生和本科生教材。
第1章从Hadoop到Spark
1.1Hadoop——大数据时代的火种
1.1.1大数据的由来
1.1.2Google解决大数据计算问题的方法
1.1.3Hadoop的由来与发展
1.2Hadoop的局限性
1.2.1Hadoop运行机制
1.2.2Hadoop的性能问题
1.2.3针对Hadoop的改进
1.3大数据技术新星——Spark
1.3.1Spark的出现与发展
1.3.2Spark协议族
1.3.3Spark的应用及优势
第2章体验Spark
2.1安装和使用Spark
2.1.1安装Spark
2.1.2了解Spark目录结构
2.1.3使用Spark Shell
2.2编写和运行Spark程序
2.2.1安装Scala插件
2.2.2编写Spark程序
2.2.3运行Spark程序
2.3Spark Web UI
2.3.1访问实时Web UI
2.3.2从实时UI查看作业信息
第3章Spark原理
3.1Spark工作原理
3.2Spark架构及运行机制
3.2.1Spark系统架构与节点角色
3.2.2Spark作业执行过程
3.2.3应用初始化
3.2.4构建RDD有向无环图
3.2.5RDD有向无环图拆分
3.2.6Task调度
3.2.7Task执行
第4章RDD算子
4.1创建算子
4.1.1基于集合类型数据创建RDD
4.1.2基于外部数据创建RDD
4.2变换算子
4.2.1对Value型RDD进行变换
4.2.2对Key/ Value型RDD进行变换
4.3行动算子
4.3.1数据运算类行动算子
4.3.2存储型行动算子
4.4缓存算子
第5章Spark算法设计
5.1过滤
5.2去重计数
5.3相关计数
5.4相关系数
5.5数据联结
5.6TopK
5.7Kmeans
5.8关联规则挖掘
5.9kNN
5.10朴素贝叶斯分类
第6章善用Spark
6.1合理分配资源
6.2控制并行度
6.3利用持久化
6.4选择恰当的算子
6.5利用共享变量
6.5.1累加器变量
6.5.2广播变量
6.6利用序列化技术
6.7关注数据本地性
6.8内存优化策略
6.9集成外部工具
参考文献
自2012年回归校园开始电信与互联网大数据分析科研生涯,我与Hadoop那头黄色小象就结下了不解之缘。感谢Google的论文、Yahoo的资助、Doug Cutting无与伦比的聪明才智,以及Hadoop开源社区无私奉献的参与者,让成千上万跟我们一样的中小开发者团队拥有了低成本处理大规模数据的能力。HDFS、MapReduce、Pig、Hive、HBase这些技术组件,帮助我们完成了一个又一个TB甚至PB级数据集的分析任务。那头可爱的黄色小象,陪伴我度过了一个又一个美好的日子。多么希望这种只用一个技术族就能解决各种大数据处理问题的美好日子能一直持续下去,相信这也是很多开发者梦寐以求的理想国度。然而,梦想终归是梦想。在两年前的某一天,无意中从网络上的一篇技术文章中看到了Spark这一新兴技术,文中宣称Spark性能和功能均优于Hadoop。将信将疑的我按照文章中的线索找到了Spark官网,下载解压后经过短暂试用,我就被Spark的简洁、高效、灵活的特性彻底迷住了。从那时起我就知道,Hadoop,我心目中大数据处理王者技术上的真正挑战者到来了。Spark以分布式内存对象架构为基础,以RDD转换模式为核心,并辅以丰富的RDD算子,不仅解决了大数据处理迭代任务的性能问题,还将开发者从简陋的Map/Reduce编程模式中解放出来,以更加灵活的方式控制数据的计算过程,并激发无穷的创意。因此,我们的团队逐渐将数据处理技术栈由Hadoop转向Spark。在这个过程中,我们发现目前已有的Spark相关书籍大多集中在介绍Spark技术的基础原理以及Spark相关工具(例如SparkSQL、SparkR等)的基本使用方法上。而要学习如何使用Spark中提供的丰富算子进行算法设计时,只能以大浪淘沙的方式从网络中零散的资料中寻找参考。因此,我们觉得如果有一本能以丰富示例介绍Spark程序和数据挖掘算法设计的书籍,应当能更好地帮助Spark开发者提高学习效率,这也就是我们撰写本书的原动力。基于这一原动力,本书突出以实例的方式介绍和展示Spark程序和算法设计的方法。第1章以科技为著名的6个失败预言引出了大数据时代以及Hadoop技术出现的必然性,然后通过Hadoop与Spark的对比揭示了Hadoop的局限性和Spark的优势。第2章以简洁明了的方式说明了如何以快的方式搭建一个Spark运行环境,并通过Shell环境体验Spark的强大功能。第3章以图文并茂的形式讲解了Spark的工作原理、架构与运行机制,并着重介绍了Spark的核心RDD的变换过程。第4章以大量示例代码的形式详细说明了Spark丰富的算子,包括创建算子、变换算子、行动算子和缓存算子。为了帮助读者掌握使用Spark设计和实现复杂算法的方法,第5章以10个常见算法实例展示了Spark处理复杂数据处理工作的能力。第6章从合理分配资源、控制并行度等9个方面介绍了优化Spark性能、拓展Spark功能的方法。与市面上大部分Spark书籍不同,除原理性文字外,本书还提供了大量的Spark代码实例,完成这些代码是一项艰巨的工作。因此,除本书的作者外,我们必须要感谢为文中代码编写和测试作出了巨大贡献的参与者,他们是来自北京邮电大学数据科学中心的研究生梁阳、林澍荣、王蒙、秦超、邱德扬等同学,以及北京浩瀚深度信息技术股份有限公司大数据专家张硕、宋若宁。由于作者水平有限,加之开源社区的高度活跃性,Spark技术仍在快速发展中。因此,书中难免会存在不足之处,还请读者见谅并批评指正。意见、建议或交流请发电子邮件至[email protected]。北京邮电大学 数据科学中心 刘军2016年8月
评论
还没有评论。