新書推薦:

《
基于Aspen Plus 和 Aspen HYSYS的化工流程设计与模拟
》
售價:NT$
1010.0

《
青春期的二次成长:给青少年恰如其分的爱和支持
》
售價:NT$
305.0

《
盐与唐帝国
》
售價:NT$
602.0

《
让花成花,让树成树
》
售價:NT$
347.0

《
悍妇女巫和她的故事(第一本以女巫为主角的故事集!)
》
售價:NT$
352.0

《
潮汕古建筑营造
》
售價:NT$
1214.0

《
我所认识的大先生
》
售價:NT$
500.0

《
一念花开:让智慧温柔绽放
》
售價:NT$
265.0
|
目錄:
|
目 录 Contents
前 言
第1章Spark简介 1
1.1初识Spark 1
1.2Spark生态系统BDAS 3
1.3Spark架构与运行逻辑 4
1.4弹性分布式数据集 6
1.4.1RDD简介 6
1.4.2RDD算子分类 8
1.5本章小结 17
第2章Spark开发与环境配置 18
2.1Spark应用开发环境配置 18
2.1.1使用Intellij开发Spark
程序 18
2.1.2使用SparkShell进行交互式数据分析 23
2.2远程调试Spark程序 24
2.3Spark编译 26
2.4配置Spark源码阅读环境 29
2.5本章小结 29
第3章BDAS简介 30
3.1SQL on Spark 30
3.1.1为什么使用Spark SQL 31
3.1.2Spark SQL架构分析 32
3.2Spark Streaming 35
3.2.1Spark Streaming简介 35
3.2.2Spark Streaming架构 38
3.2.3Spark Streaming原理剖析 38
3.3GraphX 45
3.3.1GraphX简介 45
3.3.2GraphX的使用简介 45
3.3.3GraphX体系结构 48
3.4MLlib 50
3.4.1MLlib简介 50
3.4.2MLlib中的聚类和分类 52
3.5本章小结 57
第4章Lamda架构日志分析流水线 58
4.1日志分析概述 58
4.2日志分析指标 61
4.3Lamda架构 62
4.4构建日志分析数据流水线 64
4.4.1用Flume进行日志采集 64
4.4.2用Kafka将日志汇总 68
4.4.3用Spark Streaming进行实时日志分析 70
4.4.4Spark SQL离线日志分析 75
4.4.5用Flask将日志KPI可视化 78
4.5本章小结 81
第5章基于云平台和用户日志的推荐系统 82
5.1Azure云平台简介 82
5.1.1Azure网站模型 83
5.1.2Azure数据存储 84
5.1.3Azure Queue消息传递 84
5.2系统架构 85
5.3构建Node.js应用 86
5.3.1创建Azure Web应用 87
5.3.2构建本地Node.js网站 90
5.3.3发布应用到云平台 90
5.4数据收集与预处理 91
5.4.1通过JS收集用户行为日志 92
5.4.2用户实时行为回传到Azure Queue 94
5.5Spark Streaming实时分析用户日志 96
5.5.1构建Azure Queue的Spark Streaming Receiver 96
5.5.2Spark Streaming实时处理Azure Queue日志 97
5.5.3Spark Streaming数据存储于Azure Table 98
5.6MLlib离线训练模型 99
5.6.1加载训练数据 99
5.6.2使用rating RDD训练ALS模型 100
5.6.3使用ALS模型进行电影推荐 101
5.6.4评估模型的均方差 101
5.7本章小结 102
第6章Twitter情感分析 103
6.1系统架构 103
6.2Twitter数据收集 104
6.2.1设置 104
6.2.2Spark Streaming接收并输出Tweet 109
6.3数据预处理与Cassandra存储 111
6.3.1添加SBT依赖 111
6.3.2创建Cassandra Schema 112
6.3.3数据存储于Cassandra 112
6.4Spark Streaming热点Twitter分析 113
6.5Spark Streaming在线情感分析 115
6.6Spark SQL进行Twitter分析 118
6.6.1读取Cassandra数据 118
6.6.2查看JSON数据模式 118
6.6.3Spark SQL分析Twitter 119
6.7Twitter可视化 123
6.8本章小结 125
第7章热点新闻分析系统 126
7.1新闻数据分析 126
7.2系统架构 126
7.3爬虫抓取网络信息 127
7.3.1Scrapy简介 127
7.3.2创建基于Scrapy的新闻爬虫 128
7.3.3爬虫分布式化 133
7.4新闻文本数据预处理 134
7.5新闻聚类 135
7.5.1数据转换为向量(向量空间模型VSM) 135
7.5.2新闻聚类 136
7.5.3词向量同义词查询 138
7.5.4实时热点新闻分析 138
7.6Spark Elastic Search构建全文检索引擎 139
7.6.1部署Elastic Search 139
7.6.2用Elastic Search索引MongoDB数据 141
7.6.3通过Elastic Search检索数据 143
7.7本章小结 145
第8章构建分布式的协同过滤推荐系统 146
8.1推荐系统简介 146
8.2协同过滤介绍 147
8.2.1基于用户的协同过滤算法User-based CF 148
8.2.2基于项目的协同过滤算法Item-based CF 149
8.2.3基于模型的协同过滤推荐Model-based CF 150
8.3基于Spark的矩阵运算实现协同过滤算法 152
8.3.1Spark中的矩阵类型 152
8.3.2Spark中的矩阵运算 153
8.3.3实现User-based协同过滤的示例 153
8.3.4实现Item-based协同过滤的示例 154
8.3.5基于奇异值分解实现Model-based协同过滤的示例 155
8.4基于Spark的MLlib实现协同过滤算法 155
8.4.1MLlib的推荐算法工具 155
8.4.2MLlib协同过滤推荐示例 156
8.5案例:使用MLlib协同过滤实现电影推荐 157
8.5.1MovieLens数据集 157
8.5.2确定最佳的协同过滤模型参数 158
8.5.3利用最佳模型进行电影推荐 160
8.6本章小结 161
第9章基于Spark的社交网络分析 162
9.1社交网络介绍 162
9.1.1社交网络的类型 162
9.1.2社交网络的相关概念 163
9.2社交网络中社团挖掘算法 164
9.2.1聚类分析和K均值算法简介 165
9.2.2社团挖掘的衡量指标 165
9.2.3基于谱聚类的社团挖掘算法 166
9.3Spark中的K均值算法 168
9.3.1Spark中与K均值有关的对象和方法 168
9.3.2Spark下K均值算法示例 168
9.4案例:基于Spark的Facebook社团挖掘 169
9.4.1SNAP社交网络数据集介绍 169
9.4.2基于Spark的社团挖掘实现 170
9.5社交网络中的链路预测算法 172
9.5.1分类学习简介 172
9.5.2分类器的评价指标 173
9.5.3基于Logistic回归的链路预测算法 174
9.6Spark MLlib中的Logistic回归 174
9.6.1分类器相关对象 174
9.6.2模型验证对象 175
9.6.3基于Spark的Logistic回归示例 175
9.7案例:基于Spark的链路预测算法 177
9.7.1SNAP符号社交网络Epinions数据集 177
9.7.2基于Spark的链路预测算法 177
9.8本章小结 179
第10章基于Spark的大规模新闻主题分析 180
10.1主题模型简介 180
10.2主题模型LDA 181
10.2.1LDA模型介绍 181
10.2.2LDA的训练算法 183
10.3Spark中的LDA模型 185
10.3.1MLlib对LDA的支持 185
10.3.2Spark中LDA模型训练示例 186
10.4案例:Newsgroups新闻的主题分析 189
10.4.1Newsgroups数据集介绍 190
10.4.2交叉验证估计新闻的主题个数 190
10.4.3基于主题模型的文本聚类算法 193
10.4.4基于主题模型的文本分类算法 195
10.5本章小结 196
第11章构建分布式的搜索引擎 197
11.1搜索引擎简介 197
11.2搜索排序概述 198
11.3查询无关模型PageRank 199
11.4基于Spark的分布式PageRank实现 200
11.4.1PageRank的MapReduce实现 200
11.4.2Spark的分布式图模型GraphX 203
11.4.3基于GraphX的PageRank实现 203
11.5案例:GoogleWeb Graph的PageRank计算 204
11.6查询相关模型Ranking SVM 206
11.7Spark中支持向量机的实现 208
11.7.1Spark中的支持向量机模型 208
11.7.2使用Spark测试数据演示支持向量机的训练 209
11.8案例:基于MSLR数据集的查询排序 211
11.8.1Microsoft Learning to Rank数据集介绍 211
11.8.2基于Spark的Ranking SVM实现 212
11.9本章小结 213
|
內容試閱:
|
Preface?前 言为什么要写这本书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,在每一次迷茫时给予我鼓励与支持。
感谢机械工业出版社华章公司的杨福川和高婧雅,在近半年的时间里始终支持我们的写作,你们的鼓励和帮助引导我顺利完成全部书稿。
特别致谢谨以此书献给我最亲爱的爱人,家人,同事,以及众多热爱大数据技术的朋友们!
高彦杰
|
|