發表於2024-11-26
科大訊飛和百分點資深大數據專傢實踐經驗結晶,秉承老莊哲學,從開發、數據分析、計算、管理和性能優化等多角度係統、深度地講解瞭Spark的核心技術與高級應用
上善若水,水善利萬物而不爭。數據一如水,無色無味,非方非圓,以百態存於自然,於自然無違也。綿綿密密,微則無聲,巨則洶湧;與人無爭卻又容納萬物。生活離不開水,同樣離不開數據,我們被數據包圍,在數據中生活。數據之道,水之道也。
Spark作為一個快速、通用的大規模數據處理引擎,憑藉其可伸縮、基於內存計算等特點,以及可以直接讀寫HDFS上數據的優勢,進行批處理時更加高效,並有更低的延遲,已經成為輕量級大數據快速處理的統一平颱,集成Spark SQL、Spark Streaming、MLlib、GraphX、SparkR等子框架,可以提供一站式解決方案,讓從業者的工作變得越來越便捷。
本書源於實踐,又不囿於現有實踐,以老莊哲學來探討大數據的本質與應用,兼具高度與實用性。
閱讀本書的可能受益:
愛好者——可加深對大數據生態環境發展趨勢的理解,愛上大數據和Spark,開啓日後探究之旅。
大數據開發人員——理解原理、編程思想、應用實現與技術優缺點。
大數據運維人員——瞭解Spark框架、編程思想與應用情況,保障運行環境穩定與資源的閤理利用。
大數據科學傢與算法研究者——深入理解原理與應用場景,降低學習成本,開啓通往高階之路的大門。
本書是Spark領域少有的專注於核心原理與深度應用的著作,由科大訊飛和百分點科技的4位大數據專傢撰寫。不僅細緻介紹瞭Spark的程序開發、編程模型、作業執行解析等基礎知識,而且還深度講解瞭Spark SQL、Spark ML、Spark Streaming等大量內部模塊和周邊模塊的原理與使用。除此之外,還從管理和性能優化的角度對Spark進行瞭深入探索。
本書分為四大部分,共計20章:
基礎篇(第1~10章),詳細說明什麼是Spark、Spark的重要擴展、Spark的部署和運行、Spark程序開發、Spark編程模型,以及Spark作業執行解析。通過閱讀本篇,讀者可以構建更加清晰的Spark基礎知識體係,進一步加深對大數據核心技術的理解。
實戰篇(第11~14章),本書重點篇章,重點講解Spark SQL與DataFrame、Spark Streaming、Spark MLlib與Spark ML、GraphX,以及基於以上內容在大數據分析、係統資源統計、LR模型、二級鄰居關係圖獲取方麵的實例。通過體察本篇的內容,讀者可以掌握如何在實踐中應用Spark,優化自身的應用場景,完善相應的解決方案。
高級篇(第15~18章),深入講解Spark調度管理、存儲管理、監控管理、性能調優。本篇的內容,為閤理利用資源、有效進行資源監控、保障運行環境的穩定、平颱性能調優、推進企業級的大數據平颱管理提供瞭參考依據。
擴展篇(第19~20章),介紹Jobserver和Tachyon在Spark上的使用情況。通過本篇,延續基礎、實戰、高級等環節,並進一步擴展,更好地管理好Job、更有效地利用內存,為讀者拓展齣更深入、更全麵的思路。
為瞭讓讀者從更高的角度認識與應用大數據,從《道德經》和《莊子》各精選10句,引導大傢以老莊哲學的思考方式來認識大數據的內涵。本書不隻是一本技術書,更是一本大數據哲學的思考之作。
於俊,
科大訊飛大數據專傢,專注大數據Hadoop和Spark平颱;主要工作是大數據統計分析和機器學習算法工程實現。
嚮海,
科大訊飛大數據專傢,Spark愛好者,專注於大數據領域,現從事基於Spark的用戶行為分析相關工作。
代其鋒,
百分點科技大數據架構師,專注於分布式係統架構;主要工作是負責公司底層基礎平颱的建設和Spark技術的推廣。
馬海平,
科大訊飛大數據高級研究員,專注於用機器學習做大數據商業變現;主要工作是數據挖掘算法研究和Spark實現。
前 言
基 礎 篇
第1章 Spark簡介 2
1.1 什麼是Spark 2
1.1.1 概述 3
1.1.2 Spark大數據處理框架 3
1.1.3 Spark的特點 4
1.1.4 Spark應用場景 5
1.2 Spark的重要擴展 6
1.2.1 Spark SQL和DataFrame 6
1.2.2 Spark Streaming 7
1.2.3 Spark MLlib和ML 8
1.2.4 GraphX 8
1.2.5 SparkR 9
1.3 本章小結 10
第2章 Spark部署和運行 11
2.1 部署準備 11
2.1.1 下載Spark 11
2.1.2 編譯Spark版本 12
2.1.3 集群部署概述 14
2.2 Spark部署 15
2.2.1 Local模式部署 16
2.2.2 Standalone模式部署 16
2.2.3 YARN模式部署 18
2.3 運行Spark應用程序 19
2.3.1 Local模式運行Spark應用程序 19
2.3.2 Standalone模式運行Spark應用程序 20
2.3.3 YARN模式運行Spark 22
2.3.4 應用程序提交和參數傳遞 23
2.4 本章小結 26
第3章 Spark程序開發 27
3.1 使用Spark Shell編寫程序 27
3.1.1 啓動Spark Shell 28
3.1.2 加載text文件 28
3.1.3 簡單RDD操作 28
3.1.4 簡單RDD操作應用 29
3.1.5 RDD緩存 30
3.2 構建Spark的開發環境 30
3.2.1 準備環境 30
3.2.2 構建Spark的Eclipse開發環境 31
3.2.3 構建Spark的IntelliJ IDEA開發環境 32
3.3 獨立應用程序編程 40
3.3.1 創建SparkContext對象 40
3.3.2 編寫簡單應用程序 40
3.3.3 編譯並提交應用程序 40
3.4 本章小結 43
第4章 編程模型 44
4.1 RDD介紹 44
4.1.1 RDD特徵 45
4.1.2 RDD依賴 45
4.2 創建RDD 47
4.2.1 集閤(數組)創建RDD 47
4.2.2 存儲創建RDD 48
4.3 RDD操作 49
4.3.1 轉換操作 50
4.3.2 執行操作 52
4.3.3 控製操作 54
4.4 共享變量 56
4.4.1 廣播變量 57
4.4.2 纍加器 57
4.5 本章小結 58
第5章 作業執行解析 59
5.1 基本概念 59
5.1.1 Spark組件 59
5.1.2 RDD視圖 60
5.1.3 DAG圖 61
5.2 作業執行流程 62
5.2.1 基於Standalone模式的Spark架構 62
5.2.2 基於YARN模式的Spark架構 64
5.2.3 作業事件流和調度分析 65
5.3 運行時環境 67
5.3.1 構建應用程序運行時環境 68
5.3.2 應用程序轉換成DAG 68
5.3.3 調度執行DAG圖 70
5.4 應用程序運行實例 71
5.5 本章小結 72
第6章 Spark SQL與DataFrame 73
6.1 概述 73
6.1.1 Spark SQL 發展 74
6.1.2 Spark SQL 架構 74
6.1.3 Spark SQL 特點 76
6.1.4 Spark SQL 性能 76
6.2 DataFrame 77
6.2.1 DataFrame和RDD的區彆 78
6.2.2 創建DataFrame 78
6.2.3 DataFrame 操作 80
6.2.4 RDD轉化為DataFrame 82
6.3 數據源 84
6.3.1 加載保存操作 84
6.3.2 Parquet 文件 85
6.3.3 JSON 數據集 88
6.3.4 Hive 錶 89
6.3.5 通過JDBC 連接數據庫 91
6.3.6 多數據源整閤查詢的小例子 92
6.4 分布式的SQL Engine 93
6.4.1 運行Thrift JDBC/ODBC 服務 93
6.4.2 運行 Spark SQL CLI 94
6.5 性能調優 94
6.5.1 緩存數據 94
6.5.2 調優參數 94
6.5.3 增加並行度 95
6.6 數據類型 95
6.7 本章小結 96
第7章 深入瞭解Spark Streaming 97
7.1 基礎知識 97
7.1.1 Spark Streaming工作原理 98
7.1.2 DStream編程模型 99
7.2 DStream操作 100
7.2.1 Input DStream 100
7.2.2 DStream轉換操作 102
7.2.3 DStream狀態操作 104
7.2.4 DStream輸齣操作 106
7.2.5 緩存及持久化 107
7.2.6 檢查點 108
7.3 性能調優 109
7.3.1 優化運行時間 109
7.3.2 設置閤適的批次大小 111
7.3.3 優化內存使用 111
7.4 容錯處理 112
7.4.1 文件輸入源 112
7.4.2 基於Receiver的輸入源 112
7.4.3 輸齣操作 113
7.5 一個例子 113
7.6 本章小結 115
第8章 Spark MLlib與機器學習 116
8.1 機器學習概述 116
8.1.1 機器學習分類 117
8.1.2 機器學習算法 117
8.2 Spark MLlib介紹 118
8.3 Spark MLlib庫 119
8.3.1 MLlib數據類型 120
8.3.2 MLlib的算法庫與實例 123
8.4 ML庫 142
8.4.1 主要概念 143
8.4.2 算法庫與實例 145
8.5 本章小結 147
第9章 GraphX圖計算框架與應用 148
9.1 概述 148
9.2 Spark GraphX架構 149
9.3 GraphX編程 150
9.3.1 GraphX的圖操作 152
9.3.2 常用圖算法 161
9.4 應用場景 164
9.4.1 圖譜體檢平颱 164
9.4.2 多圖閤並工具 165
9.4.3 能量傳播模型 165
9.5 本章小結 166
第10章 SparkR(R on Spark) 167
10.1 概述 167
10.1.1 SparkR介紹 168
10.1.2 SparkR的工作原理 168
10.1.3 R語言介紹 169
10.1.4 R語言與其他語言的通信 170
10.2 安裝SparkR 170
10.2.1 安裝R語言與rJava 171
10.2.2 SparkR的安裝 171
10.3 SparkR的運行與應用示例 172
10.3.1 運行SparkR 172
10.3.2 SparkR示例程序 173
10.3.3 R的DataFrame操作方法 175
10.3.4 SparkR的DataFrame 183
10.4 本章小結 186
實 戰 篇
第11章 大數據分析係統 188
11.1 背景 188
11.2 數據格式 189
11.3 應用架構 189
11.4 業務實現 190
11.4.1 流量、性能的實時分析 190
11.4.2 流量、性能的統計分析 192
11.4.3 業務關聯分析 193
11.4.4 離綫報錶分析 195
11.5 本章小結 199
第12章 係統資源分析平颱 200
12.1 業務背景 200
12.1.1 業務介紹 201
12.1.2 實現目標 201
12.2 應用架構 201
12.2.1 總體架構 202
12.2.2 模塊架構 202
12.3 代碼實現 203
12.3.1 Kafka集群 203
12.3.2 數據采集 207
12.3.3 離綫數據處理 207
12.3.4 數據錶現 207
12.4 結果驗證 213
12.5 本章小結 214
第13章 在Spark上訓練LR模型 215
13.1 邏輯迴歸簡介 215
13.2 數據格式 216
13.3 MLlib中LR模型源碼介紹 217
13.3.1 邏輯迴歸分類器 217
13.3.2 優化方法 219
13.3.3 算法效果評估 221
13.4 實現案例 223
13.4.1 訓練模型 223
13.4.2 計算AUC 223
13.5 本章小結 224
第14章 獲取二級鄰居關係圖 225
14.1 理解PageRank 225
14.1.1 初步理解PageRank 225
14.1.2 深入理解PageRank 227
14.2 PageRank算法基於Spark的實現 228
14.3 基於PageRank的二級鄰居獲取 232
14.3.1 係統設計 232
14.3.2 係統實現 232
14.3.3 代碼提交命令 235
14.4 本章小結 236
高 級 篇
第15章 調度管理 238
15.1 調度概述 238
15.1.1 應用程序間的調度 239
15.1.2 應用程序中的調度 241
15.2 調度器 242
15.2.1 調度池 243
15.2.2 Job調度流程 243
15.2.3 調度模塊 245
15.2.4 Job的生與死 249
15.3 本章小結 253
第16章 存儲管理 254
16.1 硬件環境 254
16.1.1 存儲係統 254
16.1.2 本地磁盤 255
16.1.3 內存 255
16.1.4 網絡和CPU 255
16.2 Storage模塊 256
16.2.1 通信層 256
16.2.2 存儲層 258
16.3 Shuff?le數據持久化 261
16.4 本章小結 263
第17章 監控管理 264
17.1 Web界麵 264
17.2 Spark UI曆史監控 266
17.2.1 使用spark-server的原因 266
17.2.2 配置spark-server 266
17.3 監控工具 269
17.3.1 Metrics工具 269
17.3.2 其他工具 271
17.4 本章小結 272
第18章 性能調優 273
18.1 文件的優化 273
18.1.1 輸入采用大文件 273
18.1.2 lzo壓縮處理 274
18.1.3 Cache壓縮 275
18.2 序列化數據 277
18.3 緩存 278
18.4 共享變量 278
18.4.1 廣播變量 279
18.4.2 纍加器 279
18.5 流水綫優化 280
18.6 本章小結 280
擴 展 篇
第19章 Spark-jobserver實踐 282
19.1 Spark-jobserver是什麼 282
19.2 編譯、部署及體驗 283
19.2.1 編譯及部署 283
19.2.2 體驗 286
19.3 Spark-jobserver程序實戰 288
19.3.1 創建步驟 288
19.3.2 一些常見的問題 289
19.4 使用場景:用戶屬性分布計算 289
19.4.1 項目需求 290
19.4.2 計算架構 290
19.4.3 使用NamedRDD 291
19.5 本章小結 291
第20章 Spark Tachyon實戰 292
20.1 Tachyon文件係統 292
20.1.1 文件係統概述 293
20.1.2 HDFS和Tachyon 294
20.1.3 Tachyon設計原理 294
20.1.4 Tachyon特性 295
20.2 Tachyon入門 295
20.2.1 Tachyon 部署 295
20.2.2 Tachyon API 297
20.2.3 在Spark上使用Tachyon 298
20.3 容錯機製 299
20.4 本章小結 300
上善若水,水善利萬物而不爭。
數據一如水,無色無味,非方非圓,以百態存於自然,於自然無違也。綿綿密密,微則無聲,巨則洶湧;與人無爭卻又容納萬物。
生活離不開水,同樣離不開數據,我們被數據包圍,在數據中生活,在數據中入夢和清醒。
某夜入夢時分,趴桌而眠,偶遇莊周那隻彩色翅膀的蝴蝶飛入夢中,在數據上翩翩起舞;清醒時分,蝴蝶化身數據,繼續在眼前飛舞,頓悟大數據之哲學。本書從《道德經》和《莊子》各精選10句名言,並結閤大數據相關內容,對名言加以講解,引導大傢以老莊的思考方式來認識大數據的內涵,探求老子道之路和莊子智慧之路。
為什麼要寫這本書2014年春天,我所在的知識雲團隊聚焦大數據,調研過程中,深深感覺到國內資料匱乏,可供參考的資料僅是Spark官方文檔。團隊人員英文水平參差不齊,Spark官方文檔門檻比較高,學習起來睏難重重。
當時和幾個同事一起,對Spark官方文檔進行瞭翻譯,參考瞭機械工業齣版社《Spark快速數據處理》的小冊子,編瞭一本《Spark數據處理》內部文檔,解決瞭一部分問題,並將Spark應用推嚮具體業務。在實際業務中,相比傳統的數據處理,尤其是實時處理和迭代計算,MapReduce在Spark麵前顯得蒼白無力。隨著Spark的應用越來越多,深深感覺到《Spark數據處理》內部文檔的不足,遺憾的是,一直沒有時間進行補充和完善,儼然成瞭一 Spark核心技術與高級應用 下載 mobi epub pdf txt 電子書 格式
Spark核心技術與高級應用 下載 mobi pdf epub txt 電子書 格式 2024
Spark核心技術與高級應用 下載 mobi epub pdf 電子書看起來還不錯,還沒打開開始看,希望不錯
評分不錯值得看。。。。。。
評分産品的質量很不錯。活動優惠特彆劃算。
評分對自己有幫助
評分挑瞭很久,書很好,買來就看瞭,送的也很快。
評分這是大傢一起在京東買的書,每次團隊都一起買,互相屯書...有時間一起看
評分書是全新的,還以為很厚一本的,希望對自己有用吧
評分書本是全新的,在亞馬遜上也沒有幾個評價。寫的內容比較廣,但不夠深,不過我主要是衝著應用部分來的,結閤其他視頻,還好吧
評分很好的一本書,spring書太少瞭
Spark核心技術與高級應用 mobi epub pdf txt 電子書 格式下載 2024