注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)高性能Spark

高性能Spark

高性能Spark

定 價(jià):¥98.00

作 者: [美] 霍頓·卡勞,[美] 雷切爾·沃倫 著
出版社: 中國(guó)電力出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書(shū)可以去


ISBN: 9787519863531 出版時(shí)間: 2022-02-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 372 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  通過(guò)本書(shū),你可以了解到:Spark SQL的新接口如何為SQL的RDD數(shù)據(jù)結(jié)構(gòu)提升性能。Spark Core與Spark SQL中數(shù)據(jù)join的不同選擇方式。充分利用標(biāo)準(zhǔn)RDD轉(zhuǎn)換的技術(shù)。如何解決Spark中鍵值范式的性能問(wèn)題。不借助Scala或其他JVM語(yǔ)言來(lái)編寫(xiě)高性能的Spark代碼。采用改進(jìn)建議后,如何來(lái)測(cè)試其功能及性能情況。使用Spark MLlib和Spark ML機(jī)器學(xué)習(xí)庫(kù)。Spark的流處理組件、外部的社區(qū)擴(kuò)展包。

作者簡(jiǎn)介

  Holden Karau是一位加拿大人,在IBM的Spark技術(shù)中心擔(dān)任軟件開(kāi)發(fā)工程師。同時(shí)作為一位Spark committer,經(jīng)常在PySpark和機(jī)器學(xué)習(xí)方面進(jìn)行貢獻(xiàn)。另外曾在多次國(guó)際會(huì)議中發(fā)表關(guān)于Spark的演講。 Rachel Warren是Alpine Data的軟件工程師和數(shù)據(jù)科學(xué)家。在工作中,她利用Spark來(lái)解決實(shí)際場(chǎng)景中的數(shù)據(jù)處理和機(jī)器學(xué)習(xí)問(wèn)題。另外,她還曾在工業(yè)界以及學(xué)術(shù)界擔(dān)任過(guò)分析師和導(dǎo)師。

圖書(shū)目錄

目錄
前言 .1
第1 章 高性能Spark 介紹 7
1.1 Spark 是什么以及性能的重要性 .7
1.2 你可以從本書(shū)中得到什么 8
1.3 Spark 版本 .9
1.4 為什么是 Scala ? 9
1.4.1 成為一名 Spark 專家必須要學(xué)習(xí)一點(diǎn) Scala .9
1.4.2 Spark 的 Scala API 比 Java API 更好用 10
1.4.3 Scala 比 Python 更高效 10
1.4.4 為什么不用 Scala ? 11
1.4.5 學(xué)習(xí) Scala 11
1.5 小結(jié) 12
第2 章 Spark 運(yùn)行原理 .13
2.1 Spark 如何融入大數(shù)據(jù)生態(tài)系統(tǒng) 14
2.2 Spark 并行計(jì)算模型:RDD 16
2.2.1 惰性求值 17
2.2.2 內(nèi)存持久化和內(nèi)存管理 20
2.2.3 不可變性和 RDD 接口 . 21
2.2.4 RDD 的類型 23
2.2.5 RDD 上的函數(shù):轉(zhuǎn)換與行動(dòng) 24
2.2.6 寬依賴和窄依賴 25
2.3 Spark 作業(yè)調(diào)度 . 27
2.3.1 應(yīng)用程序間的資源分配 27
2.3.2 Spark 應(yīng)用程序 . 28
2.4 Spark Job 剖析 29
2.4.1 有向無(wú)環(huán)圖(DAG) 30
2.4.2 作業(yè)(Job) 31
2.4.3 階段(Stage) 31
2.4.4 任務(wù)(Task) 32
2.5 小結(jié) 34
第 3 章 DataFrame、Dataset 和Spark SQL 35
3.1 從 SparkSession(或者 HiveContext 和 SQLContext)入門 . 36
3.2 Spark SQL 依賴 39
3.2.1 管理 Spark 依賴 39
3.2.2 避免使用 Hive JAR 40
3.3 schema 基礎(chǔ) 41
3.4 DataFrame API 45
3.4.1 轉(zhuǎn)換 45
3.4.2 基于多個(gè) DataFrame 的轉(zhuǎn)換 . 56
3.4.3 普通的 SQL 查詢以及與 Hive 數(shù)據(jù)交互 . 57
3.5 DataFrame 和 Dataset 中的數(shù)據(jù)表示 . 58
3.6 數(shù)據(jù)加載和保存函數(shù) . 59
3.6.1 DataFrameWriter 和 DataFrameReader . 60
3.6.2 格式 60
3.6.3 保存模式 70
3.6.4 分區(qū)(發(fā)現(xiàn)和寫(xiě)入) . 70
3.7 Dataset 71
3.7.1 與 RDD、DataFrame 和本地集合的互操作性 72
3.7.2 編譯時(shí)強(qiáng)類型 73
3.7.3 簡(jiǎn)易函數(shù)式轉(zhuǎn)換操作(類似 RDD) . 74
3.7.4 關(guān)系型轉(zhuǎn)換操作 74
3.7.5 多 Dataset 關(guān)系轉(zhuǎn)換操作 . 75
3.7.6 Dataset 的分組操作 75
3.8 使用用戶自定義的函數(shù)和聚合函數(shù)(UDF、UDAF)進(jìn)行擴(kuò)展 . 76
3.9 查詢優(yōu)化器 . 79
3.9.1 邏輯和物理計(jì)劃 79
3.9.2 代碼生成 79
3.9.3 大型查詢計(jì)劃和迭代算法 80
3.10 調(diào)試 Spark SQL 查詢 80
3.11 JDBC/ODBC 服務(wù)器 81
3.12 小結(jié) . 82
第 4 章 Join (SQL 和Spark Core) 84
4.1 Spark Core 中的 Join . 84
4.1.1 選擇 Join 類型 86
4.1.2 選擇執(zhí)行計(jì)劃 88
4.2 Spark SQL 中的 Join 91
4.2.1 DataFrame 的 Join 91
4.2.2 Dataset 的 Join 95
4.3 小結(jié) 96
第 5 章 高效的轉(zhuǎn)換 .97
5.1 窄轉(zhuǎn)換與寬轉(zhuǎn)換 98
5.1.1 對(duì)于性能的影響 100
5.1.2 對(duì)于容錯(cuò)的影響 101
5.1.3 coalesce 的特殊情況 102
5.2 轉(zhuǎn)換會(huì)返回什么類型的 RDD . 102
5.3 最小化對(duì)象創(chuàng)建成本 104
5.3.1 重用現(xiàn)有對(duì)象 . 104
5.3.2 使用更小的數(shù)據(jù)結(jié)構(gòu) 108
5.4 mapPartitions 迭代器到迭代器的轉(zhuǎn)換 111
5.4.1 什么是迭代器到迭代器的轉(zhuǎn)換? 112
5.4.2 空間和時(shí)間優(yōu)勢(shì) 113
5.4.3 案例 . 114
5.5 集合操作 117
5.6 降低初始化開(kāi)銷 118
5.6.1 共享變量 119
5.6.2 廣播變量 119
5.6.3 累加器 121
5.7 重用 RDD . 125
5.7.1 重用的案例 126
5.7.2 判斷重新計(jì)算是否足夠劃算 129
5.7.3 重用類型:緩存、持久化、檢查點(diǎn)、shuffle 文件 130
5.7.4 Alluxio(之前的 Tachyon) 135
5.7.5 LRU 緩存 . 135
5.7.6 繁忙集群的注意事項(xiàng) 137
5.7.7 與累加器交互 . 138
5.8 小結(jié) . 139
第 6 章 處理鍵值對(duì)數(shù)據(jù) . 140
6.1 金發(fā)女孩案例 . 142
6.1.1 金發(fā)女孩之版本 0:迭代方案 143
6.1.2 如何使用 PairRDDFunctions 和 OrderedRDDFunctions 146
6.2 鍵值對(duì)上的行動(dòng)操作 147
6.3 groupByKey 函數(shù)有什么風(fēng)險(xiǎn) . 148
6.3.1 金發(fā)女孩之版本 1:groupByKey 方案 148
6.3.2 為什么 groupByKey 會(huì)失敗 150
6.4 選擇聚合操作 . 152
6.5 涉及多個(gè) RDD 的操作 156
6.6 分區(qū)器和鍵值對(duì)數(shù)據(jù) 157
6.6.1 使用 Spark 的分區(qū)器對(duì)象 . 158
6.6.2 哈希分區(qū) 158
6.6.3 范圍分區(qū) 159
6.6.4 自定義分區(qū) 160
6.6.5 保留跨不同轉(zhuǎn)換的分區(qū)信息 160
6.6.6 利用協(xié)同位置(Co-located)和協(xié)同分區(qū)(Co-Partitioned)
的 RDD 161
6.6.7 PairRDDFunctions 中關(guān)于映射和分區(qū)函數(shù)的字典 163
6.7 OrderedRDDFunctions 字典 165
6.8 二級(jí)排序和 repartitionAndSortWithinPartitions 167
6.8.1 在按鍵分組和按值排序的函數(shù)中利用
repartitionAndSortWithinPartitions 168
6.8.2 如何不按照兩個(gè)排序鍵排序 172
6.8.3 金發(fā)女孩之版本 2:二級(jí)排序 172
6.8.4 金發(fā)女孩問(wèn)題的另外一種不同解法 . 176
6.8.5 金發(fā)女孩之版本 3:對(duì)單元格值排序 . 181
6.9 掉隊(duì)檢測(cè)與不均衡數(shù)據(jù) . 182
6.9.1 再次回到金發(fā)女孩問(wèn)題 . 184
6.9.2 金發(fā)女孩之版本 4:在每個(gè)分區(qū)上歸并為不同值 184
6.10 小結(jié) 191
第 7 章 Scala 之外 192
7.1 JVM 之內(nèi)、Scala 之外 194
7.2 Scala 之外、JVM 之外 198
7.2.1 PySpark 工作原理 . 198
7.2.2 SparkR 工作原理 207
7.2.3 Spark.jl(Julia Spark) 209
7.2.4 Eclair JS 工作原理 210
7.2.5 Spark 基于公共語(yǔ)言運(yùn)行時(shí)(CLR),C# 及類似語(yǔ)言 211
7.3 在 Spark 中調(diào)用其他語(yǔ)言 . 211
7.3.1 使用管道及類似工具 211
7.3.2 JNI 213
7.3.3 Java 本地訪問(wèn)(JNA) . 216
7.3.4 一切的背后都是 FORTRAN 217
7.3.5 談?wù)?GPU . 218
7.4 未來(lái) . 219
7.5 小結(jié) . 219
第 8 章 測(cè)試和驗(yàn)證 221
8.1 單元測(cè)試 221
8.1.1 一般 Spark 單元測(cè)試 222
8.1.2 模擬 RDD . 227
8.2 獲取測(cè)試數(shù)據(jù) . 228
8.2.1 生成大數(shù)據(jù)集 . 229
8.2.2 抽樣 . 230
8.3 用 ScalaCheck 檢查屬性 232
8.4 集成測(cè)試 235
8.5 性能驗(yàn)證 237
8.5.1 用于性能驗(yàn)證的 Spark 計(jì)數(shù)器 237
8.5.2 性能驗(yàn)證相關(guān)項(xiàng)目 238
8.6 作業(yè)驗(yàn)證 239
8.7 小結(jié) . 240
第 9 章 Spark MLlib 和ML 241
9.1 在 Spark MLlib 和 Spark ML 之間選擇 . 241
9.2 使用 MLlib 242
9.2.1 MLlib 入門(組織和導(dǎo)入) 242
9.2.2 MLlib 特征編碼和數(shù)據(jù)準(zhǔn)備 244
9.2.3 特征縮放和選擇 248
9.2.4 MLlib 模型訓(xùn)練 . 249
9.2.5 預(yù)測(cè) . 250
9.2.6 服務(wù)和持久化 . 251
9.2.7 模型評(píng)估 254
9.3 使用 Spark ML 254
9.3.1 Spark ML 組織和導(dǎo)入 254
9.3.2 管道階段 256
9.3.3 參數(shù)解釋 257
9.3.4 數(shù)據(jù)編碼 258
9.3.5 數(shù)據(jù)清洗 261
9.3.6 Spark ML 模型 261
9.3.7 整合成管道 262
9.3.8 訓(xùn)練管道 263
9.3.9 訪問(wèn)單個(gè)階段 . 264
9.3.10 數(shù)據(jù)持久化和 Spark ML . 264
9.3.11 使用自定義算法擴(kuò)展 Spark ML 管道 267
9.3.12 模型和管道持久化與 Spark ML 服務(wù) 275
9.4 一般服務(wù)考量因素 276
9.5 小結(jié) . 276
第 10 章 Spark 組件和包 278
10.1 基于 Spark 的流處理 280
10.1.1 Source 和 Sink . 281
10.1.2 批處理間隔 283
10.1.3 數(shù)據(jù) checkpoint 間隔 284
10.1.4 DStream 的注意事項(xiàng) 284
10.1.5 Structured Streaming 的考量因素 286
10.1.6 高可用性模式(或處理 Driver 程序故障或進(jìn)行 checkpoint) 294
10.2 GraphX 295
10.3 使用社區(qū)包和庫(kù) 295
10.4 小結(jié) 298
附錄 調(diào)優(yōu)、調(diào)試以及開(kāi)發(fā)者容易忽略的其他問(wèn)題 301

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)