关于我们
![]() ![]() |
Spark GraphX实战 定 价:¥79 中 教 价:¥63.20 (8.00折) 库 存 数: 0
本书是一本Spark GraphX入门书籍。前5章为基础内容,即使读者对Spark、GraphX、Scala不熟悉,也能快速上手;后5章为图计算进阶,主要是图算法和机器学习算法的相关内容。专门讲图计算的书很少,本书在第2、3、4章介绍了图的基础知识、GraphX基础知识、GraphX内置的图算法。第6章到第10章,主要介绍了GraphX之外的图算法、机器学习、图工具、GraphX监控和优化、GraphX的能力增强等实用技能。第9章和第10章主要介绍性能调优和监控,主要面向生产环境,有不少可以借鉴的技巧。本书面向对图计算感兴趣的读者,旨在帮助读者掌握Spark GraphX的相关知识及其应用。
描绘了图计算应用场景,用实例教你如何交互式使用GraphX
清晰介绍如何从常规数据构建大图及用图算法和图架构解决问题 了解用于增强应用的图技术及如何将机器学习算法应用于图数据 GraphX API|为大图开发图算法|用于图的机器学习算法|图的可视化 序言 图(Graph)是什么?图是由边和顶点组成的,不是由坐标轴和刻度构成的。在 Spark中是如何使用图的?这就是本书将要回答的问题。 2005 2007 2009 2011 2013 2015 致谢 感谢 Manning出版社许多工作人员对本书出版所做的努力,特别需要感谢三个人,他们的诸多指导使本书可以较好地完成。 Marina Michaels,我们的开发编辑,从一开始就指出有些章节有很大的技术问题,这些问题大都是 Spark和图计算的新问题。Michael Roberts,我们的技术开发编辑,在本书的制作过程中,与 Marina一样,他给出了大量的建议。 Antonio Magnaghi,我们的技术校对,不但对本书的示例代码进行了严谨的核对,还编辑校对了本书的文本内容。 关于本书 通过学习本书,希望能降低难懂的图学习门槛,了解如何在市场份额最大的分布式计算框架 Apache Spark中开发图应用。 .第 2章简单示范了如何使用 GraphX,无须具有 GraphX经验。 .第 3章介绍了 Spark、Scala和图的基础知识。 .第 4章介绍了 Spark GraphX的基础操作,以及如何使用 GraphX的两个主要算法: Map/Reduce和 Pregel。 .第 5章演示了如何使用 GraphX的诸多内置算法。 .第 6章介绍了 GraphX API之外的内容,即 20世纪中期经典的图算法,并用 GraphX实现了这些算法。 .第 7章重点讲机器学习。机器学习的内容本身就够讲一本书的,这里没有讲解太多机器学习的基础知识和经验,而是直接介绍监督学习、无监督学习和半监督学习的高级实例。 .第 8章展示了 GraphX如何完成一些自定义操作,有可能会构建一个图处理库:读 RDF文件、图的合并、图查找和计算全局聚类系数。 .第 9章介绍了如何监控性能以及查看正在执行的 GraphX应用程序,如何利用缓存、checkpointing和序列化调优做性能调优。 .第 10章介绍了在 GraphX中如何使用 Scala之外的语言(强烈建议不要这么做),以及如何使用一些工具来补充 GraphX的不足。展示了用 GraphX在 Apache Zeppelin的交互式命令行 notebook上对图进行可视化。第三方的工具 Spark JobServer可以让 GraphX从单纯的批处理系统转变成一个在线图数据库。最后,介绍了 Github上的一个项目GraphFrames(GraphX的开发者开发的),它用 Spark SQL DataFrames而非 RDD提供了一种方便和高性能的图查询方式。
关于本书中的代码 关于作者 Robin East在一些大型企业曾担任过 15年以上的顾问,在金融、政府、医疗保健和公共事业领域提供大数据和智能解决方案。他是 Worldpay的数据科学家,帮助公司实现把数据用于核心业务上。可以在这里看到他在 Spark、GraphX和机器学习方面的作品: https://mlspeed.wordpress.com。 配套服务 书作译者文字水平较高,行文流畅,且工作在编程第一线,拥有扎实的理论基础和实践经验,相信会为读者奉上一本质量上乘的图书。 Michael Malak一直从事软件开发工作,自 2013年年初以来他一直用 Spark为财富 200强的公司做开发工作,经常进行演示和分享,特别是在科罗拉多州他住的丹佛 /博尔德地区。他的个人技术博客的地址是 http://technicaltidbit.com。 Robin East在一些大型企业曾担任过 15年以上的顾问,在金融、政府、医疗保健和公共事业领域提供大数据和智能解决方案。他是 Worldpay的数据科学家,帮助公司实现把数据用于核心业务上。可以在这里看到他在 Spark、GraphX和机器学习方面的作品: https://mlspeed.wordpress.com。
目录
序言 ...............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 ScalaSpark的原生编程语言 . 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
你还可能感兴趣
我要评论
|