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

Spark大数据处理:技术、应用与性能优化
作者 : 高彦杰 著
丛书名 : 大数据技术丛书
出版日期 : 2014-11-10
ISBN : 978-7-111-48386-1
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 264
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

内容简介:
这是一本依据最新技术版本、系统地、全面地、详细讲解Spark的著作,作者结合自己在微软和IBM的实践经验和对Spark源代码的研究撰写而成。首先从技术层面讲解了Spark的体系结构、工作机制安装与部署、开发环境搭建、计算模型、Benchmark、BDAS等内容;然后从应用角度讲解了一些简单的、有代表性的案例;最后对Spark的性能优化进行了探讨。

图书特色

根据最新技术版本,系统、全面、详细讲解Spark的各项功能使用、原理机制、技术细节、应用方法、性能优化,以及BDAS生态系统的相关技术
作为一个基于内存计算的大数据并行计算框架,Spark不仅很好地解决了数据的实时处理问题,而且保证了高容错性和高可伸缩性。具体来讲,它有如下优势:
打造全栈多计算范式的高效数据流水线
轻量级快速处理
易于使用,支持多语言
与HDFS等存储层兼容
社区活跃度高
……
Spark已经在全球范围内广泛使用,无论是Intel、Yahoo!、Twitter、阿里巴巴、百度、腾讯等国际互联网巨头,还是一些尚处于成长期的小公司,都在使用Spark。本书作者结合自己在微软和IBM实践Spark的经历和经验,编写了这本书。站着初学者的角度,不仅系统、全面地讲解了Spark的各项功能及其使用方法,而且较深入地探讨了Spark的工作机制、运行原理以及BDAS生态系统中的其他技术,同时还有一些可供操作的案例,能让没有经验的读者迅速掌握Spark。更为重要的是,本书还对Spark的性能优化进行了探讨。

作者简介
高彦杰 毕业于中国人民大学,就职于IBM,精通Hadoop相关技术,较早接触并使用Spark,对Spark应用开发、Spark系统的运维和测试比较熟悉,深度阅读了Spark的源代码,了解Spark的运行机制,擅长Spark的查询优化。

内容简介
这是一本依据最新技术版本,系统、全面、详细讲解Spark的著作,作者结合自己在微软和IBM的实践经验和对Spark源代码的研究撰写而成。首先从技术层面讲解了Spark的体系结构、工作机制、安装与部署、开发环境搭建、计算模型、Benchmark、BDAS等内容;然后从应用角度讲解了一些简单的、有代表性的案例;最后对Spark的性能优化进行了探讨。

图书前言

Spark是发源于美国加州大学伯克利分校AMPLab的大数据分析平台,它立足于内存计算,从多迭代批量处理出发,兼顾数据仓库、流处理和图计算等多种计算范式,是大数据系统领域的全栈计算平台。Spark当下已成为Apache基金会的顶级开源项目,拥有庞大的社区支持,技术也逐渐走向成熟。
为什么要写这本书
  大数据还在如火如荼地发展着,突然之间,Spark就火了。还记得最开始接触Spark技术时资料匮乏,只有官方文档和源码可以作为研究学习的资料。写一本Spark系统方面的技术书籍,是我持续了很久的一个想法。由于学习和工作较为紧张,最初只是通过几篇笔记在博客中分享自己学习Spark过程的点滴,但是随着时间的推移,笔记不断增多,最终还是打算将笔记整理成书,也算是一个总结和分享。
  在国外Yahoo!、Intel、Amazon、Cloudera等公司率先应用并推广Spark技术,在国内淘宝、腾讯、网易、星环等公司敢为人先,并乐于分享。在随后的发展中,IBM、MapR、Hortonworks、微策略等公司纷纷将Spark融进现有解决方案,并加入Spark阵营。Spark在工业界的应用也呈星火燎原之势。
  随着Spark技术在国内的大范围落地、Spark中国峰会的召开,及各地meetup的火爆举行,开源软件Spark也因此水涨船高。随着大数据相关技术和产业的逐渐成熟,公司生产环境往往需要同时进行多种类型的大数据分析作业:批处理、各种机器学习、流式计算、图计算、SQL查询等。在Spark出现前,要在一个平台内同时完成以上数种大数据分析任务,就不得不与多套独立的系统打交道,这需要系统间进行代价较大的数据转储,但是这无疑会增加运维负担。
   在1年之前,关注Spark的人和公司不多,由于它包含的软件种类多,版本升级较快,技术较为新颖,初学者难以在有限的时间内快速掌握Spark蕴含的价值。同时国内缺少一本实践与理论相结合的Spark书籍,很多Spark初学者和开发人员只能参考网络上零星的Spark技术相关博客,自己一点一滴地阅读源码和文档,缓慢地学习Spark。本书也正是为了解决上面的问题而编写的。
  本书从一个系统化的视角,秉承大道至简的主导思想,介绍Spark中最值得关注的内容,讲解Spark部署、开发实战,并结合Spark的运行机制及拓展,帮读者开启Spark技术之旅。
本书特色
  本书是国内首本系统讲解Spark编程实战的书籍,涵盖Spark技术的方方面面。
  1)对Spark的架构、运行机制、系统环境搭建、测试和调优进行深入讲解,以期让读者知其所以然。讲述Spark最核心的技术内容,以激发读者的联想,进而衍化至繁。
  2)实战部分不但给出编程示例,还给出可拓展的应用场景。
  3)剖析BDAS生态系统的主要组件的原理和应用,让读者充分了解Spark生态系统。
  本书的理论和实战安排得当,突破传统讲解方式,使读者读而不厌。
  本书中一些讲解实操部署和示例的章节,比较适合作为运维和开发人员工作时手边的书;运行机制深入分析方面的章节,比较适合架构师和Spark研究人员,可帮他们拓展解决问题的思路。
读者对象
  Spark初学者
  Spark二次开发人员
  Spark应用开发人员
  Spark运维工程师
  开源软件爱好者
  其他对大数据技术感兴趣的人员
如何阅读本书
  本书分为两大部分,共计9章内容。
  第1章 从Spark概念出发,介绍了Spark的来龙去脉,阐述Spark生态系统全貌。
  第2章 详细介绍了Spark在Linux集群和Windows上如何进行部署和安装。
  第3章 详细介绍了Spark的计算模型,RDD的概念与原理,RDD上的函数算子的原理和使用,广播和累加变量。
  第4章 详细介绍了Spark应用执行机制、Spark调度与任务分配、Spark I/O机制、Spark通信模块、容错机制、Shuffle机制,并对Spark机制原理进行了深入剖析。
  第5章 从实际出发,详细介绍了如何在Intellij、Eclipse中配置开发环境,如何使用SBT构建项目,如何使用SparkShell进行交互式分析、远程调试和编译Spark源码,以及如何构建Spark源码阅读环境。
  第6章 由浅入深,详细介绍了Spark的编程案例,通过WordCount、Top K到倾斜连接等,以帮助读者快速掌握开发Spark程序的技巧。
  第7章 展开介绍了主流的大数据Benchmark的原理,并对比了Benchmark优劣势,指导Spark系统性能测试和性能问题诊断。
  第8章 围绕Spark生态系统,介绍了Spark之上的SQL on Spark、Spark Streaming、GraphX、MLlib的原理和应用。
  第9章 详细介绍了如何对Spark进行性能调优,以及调优方法的原理。
  如果您是一位有着一定经验的资深开发人员,能够理解Spark的相关基础知识和使用技巧,那么可以直接阅读4章、7章、8章、9章。如果你是一名初学者,请一定从第1章的基础知识开始学起。
勘误和支持
  由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果您有更多的宝贵意见,欢迎访问我的个人Github上的Spark大数据处理专版: https://github.com/YanjieGao/SparkInAction,您可以将书中的错误提交PR或者进行评论,我会尽量在线上为读者提供最满意的解答。您也可以通过微博@高彦杰gyj、微信公共号@Spark大数据、博客http://blog.csdn.net/gaoyanjie55或者邮箱gaoyanjie55@163.com联系到我,期待能够得到读者朋友们的真挚反馈,在技术之路上互勉共进。
致谢
  感谢中国人民大学的杜小勇老师、何军老师、陈跃国老师,是老师们将我带进大数据技术领域,教授我专业知识与学习方法,并在每一次迷茫时给予我鼓励与支持。
  感谢微软亚洲研究院的闫莺老师和其他老师及同事,在实习工作中给予我的帮助和指导。
  感谢IBM中国研究院的陈冠诚老师和其他老师及同事,在实习工作中给予我的帮助和指导。
  感谢连城、明风、Daoyuan Wang等大牛以及Michael Armbrust、Reynold Xin、Sean Owen等多位社区大牛,在开发和技术学习中对我的点拨和指导,以及社区的各位技术专家们的博客文章。本书多处引用了他们的观点和思想。
  感谢机械工业出版社华章分社的首席策划杨福川和编辑高婧雅,在近半年的时间中始终支持我的写作,给我鼓励和帮助,引导我顺利完成全部书稿。
特别致谢
  最后,我要特别感谢我的女友蒋丹彤对我的支持,我为写作这本书,牺牲了很多陪伴你的时间。同时也要感谢你花了很大的精力帮助我进行书稿校对。正因为有了你的付出与支持,我才能坚持写下去。
  感谢我的父母、姐姐,有了你们的帮助和支持,我才有时间和精力去完成全部写作。
  谨以此书献给我最亲爱的家人,以及众多热爱大数据技术的朋友们!

上架指导

计算机\程序设计

封底文字

作为一个基于内存计算的大数据并行计算框架,Spark不仅很好地解决了数据的实时处理问题,而且还保证了高容错性和高可伸缩性。具体来讲,它有如下优势:
? 打造全栈多计算范式的高效数据流水线
? 轻量级快速处理
? 易于使用,Spark支持多语言
? 与HDFS等存储层兼容
? 社区活跃度高
……
Spark已经在全球范围内被广泛使用,无论是Intel、Yahoo!、Twitter、阿里巴巴、百度、腾讯等国际互联网巨头,还是一些尚处于成长期的小公司,都在使用Spark。本书作者结合自己在微软和IBM实践Spark的经历和经验,编写了这本书。从一个初学者的角度,不仅系统、全面地讲解了Spark的各项功能及其使用方法,而且较深入地探讨了Spark的工作机制、运行原理以及BDAS生态系统中的其他技术,同时还有一些可供操作的案例,能让没有经验的读者迅速掌握Spark。更为重要的是,本书还对Spark的性能优化进行了探讨。

作者简介

高彦杰 著:暂无简介

图书目录

前 言
第1章 Spark简介 1
1.1 Spark是什么 1
1.2 Spark生态系统BDAS 4
1.3 Spark架构 6
1.4 Spark分布式架构与单机多核
架构的异同 9
1.5 Spark的企业级应用 10
1.5.1 Spark在Amazon中的应用 11
1.5.2 Spark在Yahoo!的应用 15
1.5.3 Spark在西班牙电信的应用 17
1.5.4 Spark在淘宝的应用 18
1.6 本章小结 20
第2章 Spark集群的安装与部署 21
2.1 Spark的安装与部署 21
2.1.1 在Linux集群上安装与配置Spark 21
2.1.2 在Windows上安装与配置Spark 30
2.2 Spark集群初试 33
2.3 本章小结 35
第3章 Spark计算模型 36
3.1 Spark程序模型 36
3.2 弹性分布式数据集 37
3.2.1 RDD简介 38
3.2.2 RDD与分布式共享内存的异同 38
3.2.3 Spark的数据存储 39
3.3 Spark算子分类及功能 41
3.3.1 Value型Transformation算子 42
3.3.2 Key-Value型Transformation算子 49
3.3.3 Actions算子 53
3.4 本章小结 59
第4章 Spark工作机制详解 60
4.1 Spark应用执行机制 60
4.1.1 Spark执行机制总览 60
4.1.2 Spark应用的概念 62
4.1.3 应用提交与执行方式 63
4.2 Spark调度与任务分配模块 65
4.2.1 Spark应用程序之间的调度 66
4.2.2 Spark应用程序内Job的调度 67
4.2.3 Stage和TaskSetManager调度方式 72
4.2.4 Task调度 74
4.3 Spark I/O机制 77
4.3.1 序列化 77
4.3.2 压缩 78
4.3.3 Spark块管理 80
4.4 Spark通信模块 93
4.4.1 通信框架AKKA 94
4.4.2 Client、Master和Worker间的通信 95
4.5 容错机制 104
4.5.1 Lineage机制 104
4.5.2 Checkpoint机制 108
4.6 Shuffle机制 110
4.7 本章小结 119
第5章 Spark开发环境配置及流程 120
5.1 Spark应用开发环境配置 120
5.1.1 使用Intellij开发Spark程序 120
5.1.2 使用Eclipse开发Spark程序 125
5.1.3 使用SBT构建Spark程序 129
5.1.4 使用Spark Shell开发运行Spark程序 130
5.2 远程调试Spark程序 130
5.3 Spark编译 132
5.4 配置Spark源码阅读环境 135
5.5 本章小结 135
第6章 Spark编程实战 136
6.1 WordCount 136
6.2 Top K 138
6.3 中位数 140
6.4 倒排索引 141
6.5 CountOnce 143
6.6 倾斜连接 144
6.7 股票趋势预测 146
6.8 本章小结 153
第7章 Benchmark使用详解 154
7.1 Benchmark简介 154
7.1.1 Intel Hibench与Berkeley BigDataBench 155
7.1.2 Hadoop GridMix 157
7.1.3 Bigbench、BigDataBenchmark与TPC-DS 158
7.1.4 其他Benchmark 161
7.2 Benchmark的组成 162
7.2.1 数据集 162
7.2.2 工作负载 163
7.2.3 度量指标 167
7.3 Benchmark的使用 168
7.3.1 使用Hibench 168
7.3.2 使用TPC-DS 170
7.3.3 使用BigDataBench 172
7.4 本章小结 176
第8章 BDAS简介 177
8.1 SQL on Spark 177
8.1.1 使用Spark SQL的原因 178
8.1.2 Spark SQL架构分析 179
8.1.3 Shark简介 182
8.1.4 Hive on Spark 184
8.1.5 未来展望 185
8.2 Spark Streaming 185
8.2.1 Spark Streaming简介 186
8.2.2 Spark Streaming架构 188
8.2.3 Spark Streaming原理剖析 189
8.2.4 Spark Streaming调优 198
8.2.5 Spark Streaming 实例 198
8.3 GraphX 205
8.3.1 GraphX简介 205
8.3.2 GraphX的使用 206
8.3.3 GraphX架构 209
8.3.4 运行实例 211
8.4 MLlib 215
8.4.1 MLlib简介 217
8.4.2 MLlib的数据存储 219
8.4.3 数据转换为向量(向量空间模型VSM) 222
8.4.4 MLlib中的聚类和分类 223
8.4.5 算法应用实例 228
8.4.6 利用MLlib进行电影推荐 230
8.5 本章小结 237
第9章 Spark性能调优 238
9.1 配置参数 238
9.2 调优技巧 239
9.2.1 调度与分区优化 240
9.2.2 内存存储优化 243
9.2.3 网络传输优化 249
9.2.4 序列化与压缩 251
9.2.5 其他优化方法 253
9.3 本章小结 255

教学资源推荐
作者: 朱鸣华,刘旭,麟杨微,罗晓芳,李慧,孙大为,赵晶
作者: (美)Y.Daniel Liang 著 阿姆斯特朗亚特兰大州立大学
作者: (美)Richard C.Detmer
参考读物推荐
作者: Andre Lewis Michael Purvis;Jeffrey Sambells Cameron Turner
作者: Richard Anderson Chris Blexrud
作者: 王秀文 郭明鑫 王宇韬 编著