Spark GraphX实战
  • 推荐0
  • 收藏2
  • 浏览2.9K

Spark GraphX实战

【美】Michael S. Malak(迈克尔 S. 马拉克) , 【美】Robin East(罗宾 伊斯特) (作者)  时金魁 , 黄光远 (译者)

  • 书  号:978-7-121-31043-0
  • 出版日期:2017-04-01
  • 页  数:300
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: Spark GraphX in Action
  • 原书号:9781617292521
  • 维护人:张春雨
《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的相关知识及其应用。
Spark GraphX是一个分布式图处理框架,Spark GraphX基于Spark平台提供对图计算和图挖掘简洁易用的而丰富多彩的接口,极大的方便了大家对分布式图处理的需求。本书作者Michael Malak曾为财富500强企业开发Spark应用,现为数据科学协会副主席。Robin East是一名国际支付领域的数据科学家,拥有15年的顾问经验,曾为各个大型机构担任大数据交付及内容智能解决方案顾问,涉及金融、医疗、政府机关、公共事业等各个领域。
Michael Malak一直从事软件开发工作,自 2013年年初以来他一直用 Spark为财富 200强的公司做开发工作,经常进行演示和分享,特别是在科罗拉多州他住的丹佛 /博尔德地区。他的个人技术博客的地址是 http://technicaltidbit.com。

Robin East在一些大型企业曾担任过 15年以上的顾问,在金融、政府、医疗保健和公共事业领域提供大数据和智能解决方案。他是 Worldpay的数据科学家,帮助公司实现把数据用于核心业务上。可以在这里看到他在 Spark、GraphX和机器学习方面的作品: https://mlspeed.wordpress.com。
图(Graph)是什么?图是由边和顶点组成的,不是由坐标轴和刻度构成的。在 Spark中是如何使用图的?这就是本书将要回答的问题。
常常说,“图可以做任何事情”,或者“有很多不同的事情可以用图来实现”。当然了,这两种说法等于什么也没说。所以在本书中我们展示了一些具体的、实际的图应用,以及探讨如何用 Spark GraphX实现这些图应用。
本书中有许多专业术语:大数据、 Hadoop、Spark、图、机器学习、 Scala和函数式编程,这些内容本书都会一一讲解。本书会涉及技术的高级部分,但不会涉及编程能力的每个方面,如 Java编程。
注意,通常用 Spark和图作为规范的通用术语,而不是 Apache Spark和 Edges
and vertices,趋势上后者已明显被取代。机器学习和图,在计算机科学中有悠久的历史,现在作为主流的大数据技术,在商业领域又引起了新的潮流。如果你在学校学习过这些技术的理论知识,那么现在准备实践一下这些技术吧。
许多我们正在或曾经工作过的公司,已经把 Spark用在生产环境中了,尽管不一定用了 GraphX。当尝试用 GraphX做一些图解决方案的原型时,会很方便。如果你已经有了一个 Spark集群或者决定用云平台上的 Spark集群(例如 Databricks或 Amazon),那么无须重新搭建一个新的特定于图计算的集群,并且你可以在 GraphX API中使用已有的 Spark技能。现在越来越多的图应用为大家所熟知,从根据 Twitter数据发掘出恐怖分子网络到根据信用卡交易数据发现欺诈行为, GraphX已成为一个快速尝试这些图算法场景的易于使用的平台。
本书有两个明确目标:一是全面覆盖 Spark GraphX的方方面面;二是以读者在前面提到的大数据和图计算方面没有任何专业知识为假定前提。写这本书最大的挑战是要有许多技术储备,特别是 Spark、Scala和图;了解大量的 GraphX API以及图的不同用法也是不小的挑战。面对这种情形,本书就需要与其他技术书籍略有不同:首先要花点时间入门,前 5章主要讲解的就是基础内容;本书还有大量有趣的实例,可以跟着一步步练习。本书中涉及的其他技术,读者需要另做学习,本书将努力做到让读者并不需要有过多背景知识和经验,就可以浅显易懂地了解图所能解决的问题。

目录

序言 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

读者评论

下载资源

电子书版本

  • Epub
  • Mobi

相关博文

  • Spark:超越Hadoop MapReduce

    Spark:超越Hadoop MapReduce

    管理员账号 2017-04-13

    小编说:和 Hadoop 一样,Spark 提供了一个 Map/Reduce API(分布式计算)和分布 式存储。二者主要的不同点是,Spark 在集群的内存中保存数据,而 Hadoop 在集群的磁盘中存储数据。本文选自《Spark ...

    管理员账号 2017-04-13
    772 0 0 0

相关图书

Spring Boot 2企业应用实战

本书介绍了Java EE领域的全新开源框架:Spring Boot。其中Spring的版本为5.0。本书的示例建议在Tomcat 8上运行。<br>本书重点介绍...

¥58.00

Apache Kafka实战

胡夕 (作者)

本书是涵盖Apache Kafka各方面的具有实践指导意义的工具书和参考书。作者结合典型的使用场景,对Kafka整个技术体系进行了较为全面的讲解,以便读者能够举...

¥59.00

Spring+MyBatis企业应用实战(第2版)

本书主要介绍介绍了Java EE领域的两个开源框架:Spring的MVC和MyBatis。其中Spring的版本为5.0,MyBatis的版本是3.4.5。本书...

¥39.00

轻量级Java EE企业应用实战(第5版)——Struts 2+Spring 5+Hibernate 5/JPA 2整合开发

本书是《轻量级Java EE企业应用实战》的第5版,这一版保持了前几版内容全面、深入的特点,主要完成全部知识的升级。<br>本书介绍了Java EE领域的四个开...

¥128.00

Spark:大数据集群计算的生产实践

李刚 (作者) 李刚 (译者)

本书针对spark从验证性环境迁移到实际生产环境时会遇到的各种问题给出了实际的帮助,涵盖了开发及维护生产级Spark应用的各种方法、组件与有用实践。全书分为6章...

¥65.00

Hadoop金融大数据分析

Rajiv Tiwari (作者) 王小宁 (译者)

在互联网+时代,数据是炙手可热的重要资源,网络使用基础的提升,数据流量增大,用户需求多样化和多变对架构设计提出严峻考验,而Hadoop为快速响应用户需求提供了重...

¥59.00