《Spark大数据分析实战》最先从技术性方面解读了Spark的体制、生态体系与开发设计有关的內容;随后从运用视角解读了日志分析系统、推荐算法、情感分析、协同过滤、搜索引擎、社交媒体剖析、新闻报道数据分析等好几个普遍的互联网大数据场景下的数据分析。在每一个场景中,最先是对场景开展抽象性与归纳,随后将Spark融进在其中构建数据分析算法与运用,最终融合别的开源网站或专用工具构建更加丰富多彩的数据分析生产流水线。
这书一共11章:在其中第一~3章,关键详细介绍了Spark的基本要素、程序编写实体模型、开发设计与布署的方式;第四~11章,详尽详细说明了新闻热点数据分析系统、根据云服务平台的系统日志数据分析、情感分析系统软件、搜索引擎链接分析系统软件等的运用与算法等关键知识要点。
目录
- 前 言
- 第1章 Spark简介 1
- 1.1 初识Spark 1
- 1.2 Spark生态系统BDAS 3
- 1.3 Spark架构与运行逻辑 4
- 1.4 弹性分布式数据集 6
- 1.4.1 RDD简介 6
- 1.4.2 RDD算子分类 8
- 1.5 本章小结 17
- 第2章 Spark开发与环境配置 18
- 2.1 Spark应用开发环境配置 18
- 2.1.1 使用Intellij开发Spark程序 18
- 2.1.2 使用SparkShell进行交互式数据分析 23
- 2.2 远程调试Spark程序 24
- 2.3 Spark编译 26
- 2.4 配置Spark源码阅读环境 29
- 2.5 本章小结 29
- 第3章 BDAS简介 30
- 3.1 SQL on Spark 30
- 3.1.1 为什么使用Spark SQL 31
- 3.1.2 Spark SQL架构分析 32
- 3.2 Spark Streaming 35
- 3.2.1 Spark Streaming简介 35
- 3.2.2 Spark Streaming架构 38
- 3.2.3 Spark Streaming原理剖析 38
- 3.3 GraphX 45
- 3.3.1 GraphX简介 45
- 3.3.2 GraphX的使用简介 45
- 3.3.3 GraphX体系结构 48
- 3.4 MLlib 50
- 3.4.1 MLlib简介 50
- 3.4.2 MLlib中的聚类和分类 52
- 3.5 本章小结 57
- 第4章 Lamda架构日志分析流水线 58
- 4.1 日志分析概述 58
- 4.2 日志分析指标 61
- 4.3 Lamda架构 62
- 4.4 构建日志分析数据流水线 64
- 4.4.1 用Flume进行日志采集 64
- 4.4.2 用Kafka将日志汇总 68
- 4.4.3 用Spark Streaming进行实时日志分析 70
- 4.4.4 Spark SQL离线日志分析 75
- 4.4.5 用Flask将日志KPI可视化 78
- 4.5 本章小结 81
- 第5章 基于云平台和用户日志的推荐系统 82
- 5.1 Azure云平台简介 82
- 5.1.1 Azure网站模型 83
- 5.1.2 Azure数据存储 84
- 5.1.3 Azure 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.5 Spark Streaming实时分析用户日志 96
- 5.5.1 构建Azure Queue的Spark Streaming Receiver 96
- 5.5.2 Spark Streaming实时处理Azure Queue日志 97
- 5.5.3 Spark Streaming数据存储于Azure Table 98
- 5.6 MLlib离线训练模型 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.2 Twitter数据收集 104
- 6.2.1 设置 104
- 6.2.2 Spark Streaming接收并输出Tweet 109
- 6.3 数据预处理与Cassandra存储 111
- 6.3.1 添加SBT依赖 111
- 6.3.2 创建Cassandra Schema 112
- 6.3.3 数据存储于Cassandra 112
- 6.4 Spark Streaming热点Twitter分析 113
- 6.5 Spark Streaming在线情感分析 115
- 6.6 Spark SQL进行Twitter分析 118
- 6.6.1 读取Cassandra数据 118
- 6.6.2 查看JSON数据模式 118
- 6.6.3 Spark SQL分析Twitter 119
- 6.7 Twitter可视化 123
- 6.8 本章小结 125
- 第7章 热点新闻分析系统 126
- 7.1 新闻数据分析 126
- 7.2 系统架构 126
- 7.3 爬虫抓取网络信息 127
- 7.3.1 Scrapy简介 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.6 Spark 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.1 Spark中的矩阵类型 152
- 8.3.2 Spark中的矩阵运算 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.1 MLlib的推荐算法工具 155
- 8.4.2 MLlib协同过滤推荐示例 156
- 8.5 案例:使用MLlib协同过滤实现电影推荐 157
- 8.5.1 MovieLens数据集 157
- 8.5.2 确定ZUI佳的协同过滤模型参数 158
- 8.5.3 利用ZUI佳模型进行电影推荐 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.3 Spark中的K均值算法 168
- 9.3.1 Spark中与K均值有关的对象和方法 168
- 9.3.2 Spark下K均值算法示例 168
- 9.4 案例:基于Spark的Facebook社团挖掘 169
- 9.4.1 SNAP社交网络数据集介绍 169
- 9.4.2 基于Spark的社团挖掘实现 170
- 9.5 社交网络中的链路预测算法 172
- 9.5.1 分类学习简介 172
- 9.5.2 分类器的评价指标 173
- 9.5.3 基于Logistic回归的链路预测算法 174
- 9.6 Spark MLlib中的Logistic回归 174
- 9.6.1 分类器相关对象 174
- 9.6.2 模型验证对象 175
- 9.6.3 基于Spark的Logistic回归示例 175
- 9.7 案例:基于Spark的链路预测算法 177
- 9.7.1 SNAP符号社交网络Epinions数据集 177
- 9.7.2 基于Spark的链路预测算法 177
- 9.8 本章小结 179
- 第10章 基于Spark的大规模新闻主题分析 180
- 10.1 主题模型简介 180
- 10.2 主题模型LDA 181
- 10.2.1 LDA模型介绍 181
- 10.2.2 LDA的训练算法 183
- 10.3 Spark中的LDA模型 185
- 10.3.1 MLlib对LDA的支持 185
- 10.3.2 Spark中LDA模型训练示例 186
- 10.4 案例:Newsgroups新闻的主题分析 189
- 10.4.1 Newsgroups数据集介绍 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.1 PageRank的MapReduce实现 200
- 11.4.2 Spark的分布式图模型GraphX 203
- 11.4.3 基于GraphX的PageRank实现 203
- 11.5 案例:GoogleWeb Graph的PageRank计算 204
- 11.6 查询相关模型Ranking SVM 206
- 11.7 Spark中支持向量机的实现 208
- 11.7.1 Spark中的支持向量机模型 208
- 11.7.2 使用Spark测试数据演示支持向量机的训练 209
- 11.8 案例:基于MSLR数据集的查询排序 211
- 11.8.1 Microsoft Learning to Rank数据集介绍 211
- 11.8.2 基于Spark的Ranking SVM实现 212
- 11.9 本章小结 213