Spark GraphX實戰 Spark GraphX实战

邁克爾·S.馬拉克 (Michael S. Malak), 羅賓·伊斯特 (Robin East)

  • 出版商: 電子工業
  • 出版日期: 2017-03-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 300
  • 裝訂: 平裝
  • ISBN: 7121310430
  • ISBN-13: 9787121310430
  • 相關分類: Spark
  • 此書翻譯自: Spark GraphX in Action
  • 已絕版

買這商品的人也買了...

商品描述

本書是一本Spark GraphX入門書籍。前5章為基礎內容,即使讀者對Spark、GraphX、Scala不
熟悉,也能快速上手;後5章為圖計算進階,主要是圖算法和機器學習算法的相關內容。專門講
圖計算的書很少,本書在第2、3、4章介紹了圖的基礎知識、GraphX基礎知識、GraphX內置的圖算法。第6章到第10章,主要介紹了GraphX之外的圖算法、機器學習、圖工具、GraphX監控和優化、GraphX的能力增強等實用技能。第9章和第10章主要介紹性能調優和監控,主要面向生產環境,有不少可以借鑒的技巧。
本書面向對圖計算感興趣的讀者,旨在幫助讀者掌握Spark GraphX的相關知識及其應用。

目錄大綱

第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 P regel 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