
Spark GraphX实战
《Spark GraphX实战》一书原作者Michael S. Malak(麦可 S. 马拉克)、Robin East(罗宾 伊斯特),中文版由时金魁、黄光远译,电子工业出版社2017年4月出版
基本介绍
- 书名:Spark GraphX实战
- 作者:【美】Michael S. Malak(麦可 S. 马拉克) 【美】Robin East(罗宾 伊斯特
- 译者:时金魁 黄光远
- ISBN:978-7-121-31043-0
- 页数:300
- 定价:79.00
- 出版社:电子工业出版社
- 出版时间:2017年4月
- 开本:16开
内容提要
《Spark GraphX实战》是一本Spark GraphX入门书籍。前5章为基础内容,即使读者对Spark、GraphX、Scala不熟悉,也能快速上手;后5章为图计算进阶,主要是图算法和机器学习算法的相关内容。专门讲图计算的书很少,《Spark GraphX实战》在第2、3、4章介绍了图的基础知识、GraphX基础知识、GraphX内置的图算法。第6章到第10章,主要介绍了GraphX之外的图算法、机器学习、图工具、GraphX监控和最佳化、GraphX的能力增强等实用技能。第9章和第10章主要介绍性能调优和监控,主要面向生产环境,有不少可以借鉴的技巧。
《Spark GraphX实战》面向对图计算感兴趣的读者,旨在帮助读者掌握Spark GraphX的相关知识及其套用。
目录
序言 XI
致谢XIII
关于本书 XIV
关于封面插图 XVIII
第1部分 Spark和图
1 两项重要的技术:Spark和图 3
1.1 Spark:超越Hadoop MapReduce 4
1.1.1 模糊的大数据定义 6
1.1.2 Hadoop:Spark之前的世界 6
1.1.3 Spark:记忆体中的 MapReduce处理 7
1.2 图:挖掘关係中的含义 9
1.2.1 图的套用 11
1.2.2 图数据的类型 12
1.2.3 普通的关係型资料库在图方面的不足 14
1.3 把快如闪电的图处理放到一起:Spark GraphX 14
1.3.1 图的属性:增加丰富性 15
1.3.2 图的分区:当图变为大数据集时 17
1.3.3 GraphX允许选择:图并行还是数据并行 19
1.3.4 GraphX支持的各种数据处理方式 19
1.3.5 GraphX与其他图系统 21
1.3.6 图存储:分散式档案存储与图资料库 23
1.4 小结 23
2 GraphX快速入门 24
2.1 準备开始并準备数据 24
2.2 用Spark Shell做GraphX互动式查询 26
2.3 PageRank算法示例 29
2.4 小结 31
3 基础知识 32
3.1 Scala—Spark的原生程式语言 33
3.1.1 Scala的理念:简洁和表现力 33
3.1.2 函式式编程 34
3.1.3 类型推断 38
3.1.4 类的声明 39
3.1.5 map和 reduce 41
3.1.6 一切皆是“函式”42
3.1.7 与 Java的互操作性 44
3.2 Spark 44
3.2.1 分散式记忆体数据: RDD 44
3.2.2 延迟求值 47
3.2.3 集群要求和术语解释 49
3.2.4 序列化 50
3.2.5 常用的 RDD操作 50
3.2.6 Spark和 SBT初步 54
3.3 图术语解释 55
3.3.1 基础 55
3.3.2 RDF图和属性图 58
3.3.3 邻接矩阵 59
3.3.4 图查询系统 59
3.4 小结 60
第2部分 连线顶点
4 GraphX 基础 65
4.1 顶点对象与边对象 65
4.2 mapping操作 71
4.2.1 简单的图转换 71
4.2.2 Map/Reduce 73
4.2.3 叠代的 Map/Reduce 77
4.3 序列化/反序列化 79
4.3.1 读 /写二进制格式的数据 79
4.3.2 JSON格式 81
4.3.3 Gephi可视化软体的 GEXF格式 85
4.4 图生成 86
4.4.1 确定的图 86
4.4.2 随机图 88
4.5 Pregel API 90
4.6 小结 96
5 内置图算法 97
5.1 找出重要的图节点:网页排名 98
5.1.1 PageRank算法解释 98
5.1.2 在 GraphX中使用 PageRank 99
5.1.3 个性化的 PageRank 102
5.2 衡量连通性:三角形数103
5.2.1 三角形关係的用法 103
5.2.2 Slashdot朋友和反对者的用户关係示例 104
5.3 查找最少的跳跃:最短路径 106
5.4 找到孤岛人群:连通组件 107
5.4.1 预测社交圈子 108
5.5 受欢迎的回馈:增强连通组件 114
5.6 社区发现算法:标籤传播 115
5.7 小结 117
6 其他有用的图算法118
6.1 你自己的GPS:有权值的最短路径 119
6.2 旅行推销员问题:贪心算法124
6.3 路径规划工具:最小生成树 127
6.3.1 基于 Word2Vec的推导分类法和最小生成树 131
6.4 小结 135
7 机器学习 136
7.1 监督、无监督、半监督学习 137
7.2 影片推荐: SVDPlusPlus. 139
7.2.1 公式解释 146
7.3 在MLlib中使用GraphX 146
7.3.1 主题聚类:隐含狄利克雷分布 147
7.3.2 垃圾信息检测: LogisticRegressionWithSGD 156
7.3.3 使用幂叠代聚类进行图像分割(计算机视觉) 160
7.4 穷人(简化版)的训练数据:基于图的半监督学习 165
7.4.1 K近邻图构建 168
7.4.2 半监督学习标籤传播算法 175
7.5 小结 180
第3部分 更多内容
8 缺失的算法 183
8.1 缺失的基本图操作 184
8.1.1 通用意义上的子图 184
8.1.2 图合併 185
8.2 读取RDF图档案 189
8.2.1 顶点匹配以及图构建 189
8.2.2 使用 IndexedRDD和 RDD HashMap来提升性能 191
8.3 穷人(简化版)的图同构:找到Wikipedia缺失的信息 197
8.4 全局聚类係数:连通性比较 202
8.5 小结 205
9 性能和监控 207
9.1 监控Spark套用 208
9.1.1 Spark如何运行套用 208
9.1.2 用 Spark监控来了解你的套用的运行时信息 211
9.1.3 history server 221
9.2 Spark配置 223
9.2.1 充分利用全部 CPU资源 226
9.3 Spark性能调优 227
9.3.1 用快取和持久化来加速 Spark 227
9.3.2 checkpointing 230
9.3.3 通过序列化降低记忆体压力 232
9.4 图分区 233
9.5 小结 235
10 更多语言以及工具 237
10.1 在GraphX中使用除Scala外的其他语言 238
10.1.1 在 GraphX中使用 Java 7 238
10.1.2 在 GraphX中使用 Java 8 245
10.1.3 未来 GraphX是否会支持 Python或者 R 245
10.2 其他可视化工具:Apache Zeppelin 和 d3.js 245
10.3 类似一个资料库:Spark Job Server 248
10.3.1 示例:查询 Slashdot好友的分离程度 250
10.3.2 更多使用 Spark Job Server的例子 253
10.4 通过GraphFrames在Spark的图上使用SQL 254
10.4.1 GraphFrames和 GraphX的互操作性 255
10.4.2 使用 SQL进行便捷、高性能的操作 257
10.4.3 使用 Cypher语言的子集来进行顶点搜寻 258
10.4.4 稍微複杂一些的 YAGO图同构搜寻 260
10.5 小结 264
附录A 安装Spark 266
附录B Gephi可视化软体 271
附录C 更多资源 275
附录D 本书中的Scala小贴士 278
转载请注明出处海之美文 » Spark GraphX实战