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研究人员,可帮他们拓展解决问题的思路。