前言
为什么要写这本书
Spark大数据技术还在如火如荼地发展,Spark中国峰会的召开,各地meetup的火爆举行,开源软件Spark也因此水涨船高,很多公司已经将Spark大范围落地并且应用。Spark使用者的需求已经从最初的部署安装、运行实例,到现在越来越需要通过Spark构建丰富的数据分析应用。写一本Spark实用案例类的技术书籍,是一个持续了很久的想法。由于工作较为紧张,最初只是将参与或学习过的Spark相关案例进行总结,但是随着时间的推移,最终还是打算将其中通用的算法、系统架构以及应用场景抽象出来,并进行适当简化,也算是一种总结和分享。
Spark发源于美国加州大学伯克利分校AMPLab的大数据分析平台,它立足于内存计算,从多迭代批量处理出发,兼顾数据仓库、流处理和图计算等多种计算范式,是大数据系统领域的全栈计算平台。Spark当下已成为Apache基金会的顶级开源项目,拥有着庞大的社区支持,生态系统日益完善,技术也逐渐走向成熟。
现在越来越多的同行已经了解Spark,并且开始使用Spark,但是国内缺少一本Spark的实战案例类的书籍,很多Spark初学者和开发人员只能参考网络上零散的博客或文档,学习效率较慢。本书也正是为了解决上述问题而着意编写。
本书希望带给读者一个系统化的视角,秉承大道至简的主导思想,介绍Spark的基本原理,如何在Spark上构建复杂数据分析算法,以及Spark如何与其他开源系统进行结合构建数据分析应用,让读者开启Spark技术应用之旅。
本书特色
Spark作为一款基于内存的分布式计算框架,具有简洁的接口,可以快速构建上层数据分析算法,同时具有很好的兼容性,能够结合其他开源数据分析系统构建数据分析应用或者产品。
为了适合读者阅读和掌握知识结构,本书从Spark基本概念和机制介绍入手,结合笔者实践经验讲解如何在Spark之上构建机器学习算法,并最后结合不同的应用场景构建数据分析应用。
读者对象
本书中一些实操和应用章节,比较适数据分析和开发人员,可以作为工作手边书;机器学习和算法方面的章节,比较适合机器学习和算法工程师,可以分享经验,拓展解决问题的思路。
·Spark初学者
·Spark应用开发人员
·Spark机器学习爱好者
·开源软件爱好者
·其他对大数据技术感兴趣的人员
如何阅读本书
本书分为11章内容。
第1章 从Spark概念出发,介绍Spark的来龙去脉,阐述Spark机制与如何进行Spark编程。
第2章 详细介绍Spark的开发环境配置。
第3章 详细介绍Spark生态系统重要组件Spark SQL、Spark Streaming、GraphX、MLlib的实现机制,为后续使用奠定基础。
第4章 详细介绍如何通过Flume、Kafka、Spark Streaming、HDFS、Flask等开源工具构建实时与离线数据分析流水线。
第5章 从实际出发,详细介绍如何在Azure云平台,通过Node.js、Azure Queue、Azure Table、Spark Streaming、MLlib等组件对用户行为数据进行分析与推荐。
第6章 详细介绍如何通过Twitter API、Spark SQL、Spark Streaming、Cassandra、D3等组件对Twitter进行情感分析与统计分析。
第7章 详细介绍如何通过Scrapy、Kafka、MongoDB、Spark、Spark Streaming、Elastic Search等组件对新闻进行抓取、分析、热点新闻聚类等挖掘工作。
第8章 详细介绍了协同过滤概念和模型,讲解了如何在Spark中实现基于Item-based、User-based和Model-based协同过滤算法的推荐系统。
第9章 详细介绍了社交网络分析的基本概念和经典算法,以及如何利用Spark实现这些经典算法,用于真实网络的分析。
第10章 详细介绍了主题分析模型(LDA),讲解如何在Spark中实现LDA算法,并且对真实的新闻数据进行分析。
第11章 详细介绍了搜索引擎的基本原理,以及其中用到的核心搜索排序相关算法——PageRank和Ranking SVM,并讲解了如何在Spark中实现PageRank和Ranking SVM算法,以及如何对真实的Web数据进行分析。
如果你有一定的经验,能够理解Spark的相关基础知识和使用技巧,那么可以直接阅读第4~11章。然而,如果你是一名初学者,请一定从第1章的基础知识开始学起。
勘误和支持
由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,我们会尽量为读者提供最满意的解答。你也可以通过微博@高彦杰gyj,博客:http://blog.csdn.net/gaoyanjie55,或者邮箱gaoyanjie55@163.com联系到高彦杰。你也可以通过邮箱niyayu@foxmail.com联系到倪亚宇。
期待能够得到大家的真挚反馈,在技术之路上互勉共进。
致谢
感谢微软亚洲研究院的Thomas先生和Ying Yan,在每一次迷茫时给予我鼓励与支持。
感谢机械工业出版社华章公司的杨福川和高婧雅,在近半年的时间里始终支持我们的写作,你们的鼓励和帮助引导我顺利完成全部书稿。
特别致谢
谨以此书献给我最亲爱的爱人,家人,同事,以及众多热爱大数据技术的朋友们!
高彦杰