發表於2024-12-25
√ 描繪瞭圖計算應用場景,用實例教你如何交互式使用GraphX
√ 清晰介紹如何從常規數據構建大圖及用圖算法和圖架構解決問題
√ 瞭解用於增強應用的圖技術及如何將機器學習算法應用於圖數據
√ GraphX API|為大圖開發圖算法|用於圖的機器學習算法|圖的可視化
本書是一本Spark GraphX入門書籍。前5章為基礎內容,即使讀者對Spark、GraphX、Scala不熟悉,也能快速上手;後5章為圖計算進階,主要是圖算法和機器學習算法的相關內容。專門講圖計算的書很少,本書在第2、3、4章介紹瞭圖的基礎知識、GraphX基礎知識、GraphX內置的圖算法。第6章到第10章,主要介紹瞭GraphX之外的圖算法、機器學習、圖工具、GraphX監控和優化、GraphX的能力增強等實用技能。第9章和第10章主要介紹性能調優和監控,主要麵嚮生産環境,有不少可以藉鑒的技巧。
本書麵嚮對圖計算感興趣的讀者,旨在幫助讀者掌握Spark GraphX的相關知識及其應用。
書作譯者文字水平較高,行文流暢,且工作在編程第一綫,擁有紮實的理論基礎和實踐經驗,相信會為讀者奉上一本質量上乘的圖書。
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 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
序言
圖(Graph)是什麼?圖是由邊和頂點組成的,不是由坐標軸和刻度構成的。在 Spark中是如何使用圖的?這就是本書將要迴答的問題。
常常說,“圖可以做任何事情”,或者“有很多不同的事情可以用圖來實現”。當然瞭,這兩種說法等於什麼也沒說。所以在本書中我們展示瞭一些具體的、實際的圖應用,以及探討如何用 Spark GraphX實現這些圖應用。
本書中有許多專業術語:大數據、 Hadoop、Spark、圖、機器學習、 Scala和函數式編程,這些內容本書都會一一講解。本書會涉及技術的高級部分,但不會涉及編程能力的每個方麵,如 Java編程。
下圖是 Google在趨勢上的統計,展示瞭這些專業術語在 2016年之前的受歡迎程度。
Big Data
Hadoop
Machine learning
Apache Spark Edges and vertices
2005 2007 2009 2011 2013 2015
注意,通常用 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章主要講解的就是基礎內容;本書還有大量有趣的實例,可以跟著一步步練習。本書中涉及的其他技
Spark GraphX實戰 下載 mobi epub pdf txt 電子書 格式
Spark GraphX實戰 下載 mobi pdf epub txt 電子書 格式 2024
Spark GraphX實戰 下載 mobi epub pdf 電子書書是正品,包裝密封完好,正在學習中。
評分翻譯版的質量還是不錯的,思路清晰深入淺齣。推薦看下
評分適閤圖計算的入門,介紹的比較細
評分質量好,價格實惠,送貨快,下次繼續買
評分挺好的,有不少新的知識,講解的通俗易懂,是學習新技術的好材料
評分還沒有來得及看
評分618囤貨,還是非常便宜的
評分適閤圖計算的入門,介紹的比較細
評分送貨很快,好評
Spark GraphX實戰 mobi epub pdf txt 電子書 格式下載 2024