Spark大数据商业实战三部曲:内核解密、商业案例、性能调优(第2版)
上QQ阅读APP看书,第一时间看更新

第2版前言

2019年4月,在美国旧金山举办的Spark+AI峰会提出,大数据和人工智能需要统一,人工智能应用需要大量的、不断更新的训练数据来构建先进的模型。到目前为止,Apache Spark是唯一一个将大规模数据处理与机器学习和人工智能算法完美结合的引擎。

Apache Spark是大数据领域的通用计算平台。在Full Stack思想的指导下,Spark中的Spark SQL、Spark Streaming、MLLib、GraphX、R五大子框架和库之间可以无缝地共享数据和操作,这不仅形成了Spark在当今大数据计算领域其他计算框架无可匹敌的优势,而且使其加速成为大数据处理中心首选的通用计算平台。

回顾Spark的历史可以发现,在任何规模的数据计算中,Spark在性能和扩展性上都更具优势。

Hadoop之父Doug Cutting指出:大数据项目的MapReduce引擎的使用将下降,由Apache Spark取代。

Hadoop商业发行版本的市场领导者Cloudera、HortonWorks、MapR纷纷转投Spark,并把Spark作为大数据解决方案的首选和核心计算引擎。

在2014年的Sort Benchmark测试中,Spark秒杀Hadoop,在使用其十分之一计算资源的情况下,对相同数据的排序,Spark比MapReduce快3倍。在没有官方千万亿字节(PB)排序对比的情况下,首次利用Spark对1PB数据(10万亿条记录)排序,在使用190个节点的情况下,工作负载在4小时内完成,同样远超雅虎之前使用3800台主机耗时16小时的记录。

2015年6月,Spark最大的集群——8000个节点来自腾讯,单个最大Job——1PB来自阿里巴巴和Databricks。

IBM公司于2015年6月承诺大力推进Apache Spark项目,并称该项目为以数据为主导的、未来10年最重要的、新的开源项目。

2016年,在有“计算界奥运会”之称的国际著名Sort Benchmark全球数据排序大赛中,由南京大学计算机科学与技术系PASA大数据实验室、阿里巴巴和Databricks公司组成的参赛团队NADSort,使用Apache Spark大数据计算平台,以144美元的成本完成了100TB标准数据集的排序处理,创下了每万亿字节(TB)数据排序1.44美元成本的世界纪录。

2017年,Spark Structured streaming发布无缝整合流处理和其他计算范式。

2018年,Spark 2.4.0发布,成为全球最大的开源项目。

2019年,任何个人和组织都可以基于Spark打造符合自己需求的基于大数据的AI全生态链计算引擎。

本书以Spark 2.4.3为基础,在第1版的基础上根据Spark的新版本全面更新源码,并以TensorFlow和PyTorch为核心,大幅度增加人工智能的内容及相应的实战案例。本书以Spark内核解密为基石,分为内核解密篇、商业案例篇、性能调优篇和Spark+AI内幕解密篇。虽然本书的内容增加了一篇,为了更好地与第1版延续,仍沿用三部曲的书名。

(1)内核解密篇。第1版基于Spark 2.2.X版本源码,从一个动手实战案例入手,循序渐进地全面解析了Spark新特性及Spark内核源码。第2版在第1版的基础上,将Spark 2.2.X源码更新为Spark 2.4.X源码,并对源码的版本更新做了详细解读,帮助读者学习Spark源码框架的演进及发展。

(2)商业案例篇。沿用第1版的案例内容,选取Spark开发中最具代表性的经典学习案例,深入浅出地介绍综合应用Spark的大数据技术。

(3)性能调优篇。第1版基于Spark 2.2.X源码,基本完全覆盖了Spark在生产环境下的所有调优技术;第2版在第1版的基础上,将Spark 2.2.X源码更新为Spark 2.4.X源码,基于Spark 2.4.X版本讲解Spark性能调优的内容。

(4)Spark+AI内幕解密篇。本篇是第2版的全新内容,大幅度增加大数据在人工智能领域的应用内容,包括深度学习动手实践:人工智能下的深度学习、深度学习数据预处理、单节点深度学习训练、分布式深度学习训练;Spark+PyTorch案例实战:PyTorch在Spark上的安装、使用PyTorch实战图像识别、PyTorch性能调优最佳实践;Spark+TensorFlow实战:TensorFlow在Spark上的安装、TensorBoard解密、Spark TensorFlow的数据转换;Spark上的深度学习内核解密:使用TensorFlow进行图片的分布式处理、数据模型源码剖析、逻辑节点源码剖析、构建索引源码剖析、深度学习下Spark作业源码剖析、性能调优最佳实践。

在阅读本书的过程中,如发现任何问题或有任何疑问,可以加入本书的阅读群(QQ:418110145)讨论,会有专人答疑。同时,该群也会提供本书所用案例源码及本书的配套学习视频。作者的新浪微博是http://weibo.com/ilovepains/,欢迎大家在微博上与作者进行互动。

由于时间仓促,书中难免存在不妥之处,请读者谅解,并提出宝贵意见。

王家林2020年4月于美国硅谷