Spark海量数据处理:技术详解与平台实战epub电子书提取码

简介: 在数字经济时代,数据是重要的资源要素;同时,新的数据又在源源不断地产生,企业面临的一个基本问题就是如何管理和利用这些数据,这对传统的数据处理方法与分析框架提出了新的诉求和挑战,也是全球业界与学界为关心的问题。为了满足大数据时代对信息的快速处理的需求,一个分布式的开源计算框架Apache Spark应运而生。经过十年的发展,Spark已经成为目前大数据处理的标杆,在整个业界得到了广泛的使用。对大数据工程师来说,用Spark构建数据管道无疑是很好的选择,而对数据科学家来说,Spark也是高效的数据探索工具。 本书基于Spark发行版2.4.4写作而成,包含大量的实例与一个完整项目,技术理论与实战相结合,层次分明,循序渐进。本书不仅介绍了如何开发Spark应用的基础内容,包括Spark架构、Spark编程、SparkSQL、Spark调优等,还探讨了Structured Streaming、Spark机器学习、Spark图挖掘、Spark深度学习、Alluxio系统等高级主题,同时完整实现了一个企业背景调查系统,借鉴了数据湖与Lambda架构的思想,涵盖了批处理、流处理应用开发,并加入了一些开源组件来满足业务需求。学习该系统可以使读者从实战中巩固所学,并将技术理论与应用实战融会贯通。 本书适合准备学习Spark的开发人员和数据分析师,以及准备将Spark应用到实际项目中的开发人员和管理人员阅读,也适合计算机相关专业的高年级本科生和研究生学习和参考,对于具有一定的Spark使用经验并想进一步提升的数据科学从业者也是很好的参考资料。

目      录

Spark从2009年问世以来,就以星火燎原之势迅速席卷业界。我还记得在2011年左右,在搜索引擎中输入“Spark”的关键字,置顶结果是雪佛兰的Spark汽车,而如今,Spark已经成了事实上的大数据处理的工业标准、技术栈和行业领先解决方案,不得不令人感叹技术的日新月异。

目前Spark项目被托管在GitHub上,从GitHub上的统计来看,Spark无论是从Contributor还是从commit数量上来说,都可以说是最活跃的开源项目之一,如图1-1和图1-2所示。

图1-1 Spark Contributor人数日益增加

图1-2 Spark活跃度

Spark诞生于学界,成长于社区,它利用了开源社区的力量与文化,集中了世界上的一群天才们,夜以继日地为Spark做出贡献,这也是Spark发展迅速的原因之一。本章将介绍Spark的背景、生态圈以及思想,为本书后面的学习打下基础。

本章包含以下内容:

Spark与BDAS;

Databricks;

如何用GitHub为Spark贡献代码;

函数式编程思想。

Hadoop雏形来源于谷歌公司在2004年到2006年间的3篇论文,从这个层面上来说,Hadoop来自业界。而与Hadoop不同,Spark诞生于加州大学伯克利分校的AMP(Algorithms, Machines, and People)实验室,有着非常浓厚的学术背景,借助于伯克利在计算机科学方面强劲的实力,可谓厚积薄发。虽然Spark在2009年才正式发布,但是它具有很明显的后发优势,针对Hadoop(MapReduce)的不足,有针对性地进行设计与开发,一出手便彰显其不凡特性,迅速赢得了开发者的喜爱。在2012年的时候,正是Hadoop如日中天的时代,Spark也才发布了0.6版本,但当时的情况却是开发者都期待着Spark 1.0的发布,由此可见一斑。Spark从一个追赶者变成领导者用了不到几年时间,AMP实验室也因此闻名世界,在2016年的秋天,伯克利关闭了AMP实验室并在其基础上成立了一个新的RISE(Real-time Intelligence with Secure Execution)实验室,如图1-3所示,在该实验室的官网,可以看到RISE实验室获得了国内外多家企业的资助,且与业界领先公司建立了紧密的合作,如蚂蚁金服、华为、微软等。

图1-3 AMP实验室与RISE实验室

AMP实验室在规划Spark的蓝图时,就没有将其定位为一个工具或者是一个普通的开源项目,而是为其规划了一个生态圈,AMP实验室将其称为伯克利数据分析栈(Berkeley Data Analytics Stack,BDAS),它集成了若干AMP实验室开发的组件,BDAS的初衷是解读大数据,Spark是其中最重要的一个组件,如图1-4所示。

图1-4 BDAS(伯克利数据分析栈)

从图1-4可以看到,在Spark生态圈中,除了HDFS以外,留给Hadoop的位置已经不多了。Hadoop只在存储层和资源管理层占有两个位置,即便如此还面临着Alluxio与Mesos的威胁。Spark生态圈的目的是成为大数据技术的工业标准。

本节的最后,再来谈谈Spark与Hadoop之间的关系。首先这两个名字后面都代表了业界先进的大数据技术生态圈,从这个角度上来说,两者肯定是存在竞争关系的,但在实际情况中,由于Hadoop存量用户数太多,加之Spark生态圈技术成熟度的一些问题,因此,更多情况下,Spark和Hadoop会互补形成生产环境的解决方案,它们之间的关系是竞争与合作并存。

版权:人民邮电出版社