前言
大数据像当年的石油、人工智能(Artificial Intelligence)像当年的电力一样,正以前所未有的广度和深度影响所有的行业,现在及未来公司的核心壁垒是数据,核心竞争力来自基于大数据的人工智能的竞争。Spark是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台,2009年诞生于美国加州大学伯克利分校AMP实验室,2010年正式开源,2013年成为Apache基金项目,2014年成为Apache基金的顶级项目。基于RDD,Spark成功构建起了一体化、多元化的大数据处理体系。
在任何规模的数据计算中,Spark在性能和扩展性上都更具优势。
(1)Hadoop之父Doug Cutting指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark(大数据项目的MapReduce引擎的使用将下降,由Apache Spark取代。)
(2)Hadoop商业发行版本的市场领导者Cloudera、HortonWorks、MapR纷纷转投Spark,并把Spark作为大数据解决方案的首选和核心计算引擎。
2014年的Sort Benchmark测试中,Spark秒杀Hadoop,在使用十分之一计算资源的情况下,相同数据的排序上,Spark比MapReduce快3倍!在没有官方PB排序对比的情况下,首次将Spark推到了1PB数据(十万亿条记录)的排序,在使用190个节点的情况下,工作负载在4小时内完成,同样远超雅虎之前使用3800台主机耗时16个小时的记录。
2015年6月,Spark最大的集群来自腾讯——8000个节点,单个Job最大分别是阿里巴巴和Databricks——1PB,震撼人心!同时,Spark的Contributor比2014年涨了3倍,达到730人;总代码行数也比2014年涨了2倍多,达到40万行。IBM于2015年6月承诺大力推进Apache Spark项目,并称该项目为:以数据为主导的,未来十年最重要的新的开源项目。这一承诺的核心是将Spark嵌入IBM业内领先的分析和商务平台,并将Spark作为一项服务,在IBMBluemix平台上提供给客户。IBM还将投入超过3500名研究和开发人员在全球10余个实验室开展与Spark相关的项目,并将为Spark开源生态系统无偿提供突破性的机器学习技术——IBM SystemML。同时,IBM还将培养超过100万名Spark数据科学家和数据工程师。
2016年,在有“计算界奥运会”之称的国际著名Sort Benchmark全球数据排序大赛中,由南京大学计算机科学与技术系PASA大数据实验室、阿里巴巴和Databricks公司组成的参赛团队NADSort,以144美元的成本完成100TB标准数据集的排序处理,创下了每TB数据排序1.44美元成本的最新世界纪录,比2014年夺得冠军的加州大学圣地亚哥分校TritonSort团队每TB数据4.51美元的成本降低了近70%,而这次比赛依旧使用Apache Spark大数据计算平台,在大规模并行排序算法以及Spark系统底层进行了大量的优化,以尽可能提高排序计算性能并降低存储资源开销,确保最终赢得比赛。
在Full Stack理想的指引下,Spark中的Spark SQL、SparkStreaming、MLLib、GraphX、R五大子框架和库之间可以无缝地共享数据和操作,这不仅打造了Spark在当今大数据计算领域其他计算框架都无可匹敌的优势,而且使得Spark正在加速成为大数据处理中心首选通用计算平台,而Spark商业案例和性能优化必将成为接下来的重中之重!
本书根据王家林老师亲授课程及结合众多大数据项目经验编写而成,其中王家林、段智华编写了本书近90%的内容,具体编写章节如下:
第3章 Spark的灵魂:RDD和DataSet;
第4章 Spark Driver启动内幕剖析;
第5章 Spark集群启动原理和源码详解;
第6章 Spark Application提交给集群的原理和源码详解;
第7章 Shuffle原理和源码详解;
第8章 Job工作原理和源码详解;
第9章 Spark中Cache和checkpoint原理和源码详解;
第10章 Spark中Broadcast和Accumulator原理和源码详解;
第11章 Spark与大数据其他经典组件整合原理与实战;
第12章 Spark商业案例之大数据电影点评系统应用案例;
第13章 Spark 2.2实战之Dataset开发实战企业人员管理系统应用案例;
第14章 Spark商业案例之电商交互式分析系统应用案例;
第15章 Spark商业案例之NBA篮球运动员大数据分析系统应用案例;
第16章 电商广告点击大数据实时流处理系统案例;
第17章 Spark在通信运营商生产环境中的应用案例;
第18章 使用Spark GraphX实现婚恋社交网络多维度分析案例;
第23章 Spark集群中Mapper端、Reducer端内存调优;
第24章 使用Broadcast实现Mapper端Shuffle聚合功能的原理和调优实战;
第25章 使用Accumulator高效地实现分布式集群全局计数器的原理和调优案例;
第27章 Spark五大子框架调优最佳实践;
第28章 Spark 2.2.0新一代钨丝计划优化引擎;
第30章 Spark性能调优之数据倾斜调优一站式解决方案原理与实战;
第31章 Spark大数据性能调优实战专业之路。
其中,段智华根据自身多年的大数据工作经验对本书的案例等部分进行了扩展。
除上述章节外,剩余内容由夏阳、郑采翎、闫恒伟三位作者根据王家林老师的大数据授课内容而完成。
在阅读本书的过程中,如发现任何问题或有任何疑问,可以加入本书的阅读群(QQ:418110145)讨论,会有专人答疑。同时,该群也会提供本书所用案例源码及本书的配套学习视频。
如果读者想要了解或者学习更多大数据相关技术,可以关注DT大数据梦工厂微信公众号DT_Spark,也可以通过YY客户端登录68917580永久频道直接体验。
王家林老师的新浪微博是http://weibo.com/ilovepains/欢迎大家在微博上与作者进行互动。
由于时间仓促,书中难免存在不妥之处,请读者谅解,并提出宝贵意见。
王家林2017年中秋之夜于美国硅谷