注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)家庭與辦公軟件基于Apache Spark的流處理

基于Apache Spark的流處理

基于Apache Spark的流處理

定 價:¥128.00

作 者: [美] 杰拉德·馬斯(Gerard Maas) 著
出版社: 中國電力出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787519852948 出版時間: 2021-04-01 包裝: 平裝
開本: 16開 頁數(shù): 444 字?jǐn)?shù):  

內(nèi)容簡介

  學(xué)習(xí)流處理的基本概念、研究各種流處理架構(gòu)。 通過具體實例來研究Structured Streaming、深入理解流處理概念。 通過Spark Streaming創(chuàng)建并管理流作業(yè),使用其他Spark API與Spark Streaming集成。 學(xué)習(xí)Spark Streaming高級技巧,包括近似算法和機(jī)器學(xué)習(xí)算法。 將Apache Spark與其他流處理項目比較,包括Apache Storm、Apache Flink和Apache Kafka Streams。

作者簡介

  Gerard Mass是Lightbend的首席工程師,致力于將Structured Streaming與流處理擴(kuò)展技術(shù)無縫集成到Lightbend平臺中。 François Garillot在Facebook從事于分布式計算相關(guān)工作。曾在Lightbend從事Spark Streaming反壓機(jī)制研究,同時擁有巴黎綜合理工學(xué)院的博士學(xué)位。

圖書目錄

目錄
序 1
前言 3
第一部分 Apache Spark 流處理的基本原理
第1 章 流處理概述 13
什么是流處理 14
批處理與流處理 15
流處理中的時間概念 15
不確定性因素 16
流處理案例 16
可擴(kuò)展的數(shù)據(jù)處理能力 18
擴(kuò)展性與容錯性 19
分布式流處理 19
Apache Spark 概述 20
第一波浪潮:函數(shù)式API 20
第二波浪潮:SQL 21
統(tǒng)一的引擎21
Spark 組件 22
Spark Streaming 23
Structured Streaming 23
接下來? 24
第2 章 流處理模型 25
數(shù)據(jù)源與接收器 26
不可變流 27
轉(zhuǎn)換與聚合 27
窗口聚合 28
滾動窗口 28
滑動窗口 29
無狀態(tài)處理與有狀態(tài)處理 29
有狀態(tài)的流 30
案例:Scala 中的本地狀態(tài)計算 31
無狀態(tài)流,還是有狀態(tài)流? 33
時間效應(yīng) 33
帶時間戳的事件計算 33
通過時間戳來定義時間概念 34
事件時間與處理時間 34
使用水位線計算 37
小結(jié) 39
第3 章 流處理架構(gòu) 41
數(shù)據(jù)平臺的組件 41
體系模型 43
在流處理應(yīng)用中使用批處理組件 44
流處理架構(gòu)參考 45
Lambda 架構(gòu) 45
Kappa 架構(gòu) 46
流處理算法與批處理算法 47
流處理算法有時候本質(zhì)上與批處理算法完全不同 47
流處理算法難以保證比批處理算法表現(xiàn)更好 48
小結(jié) 50
第4 章 流處理引擎Apache Spark 51
兩種API 的由來 51
Spark 的內(nèi)存使用 52
故障恢復(fù) 53
惰性執(zhí)行 53
緩存使用建議 53
延遲 54
面向吞吐的數(shù)據(jù)處理 55
Spark 的多語言API 55
快速實現(xiàn)數(shù)據(jù)分析 56
更多關(guān)于Spark 的內(nèi)容 57
小結(jié) 57
第5 章 Spark 分布式處理模型 59
通過集群管理器來運(yùn)行Apache Spark 59
Spark 的集群管理器 61
分布式系統(tǒng)的彈性與容錯 62
故障恢復(fù) 63
集群管理器對容錯的支持 63
數(shù)據(jù)交付語義 64
微批處理與一次處理一個 66
微批處理:整體同步處理應(yīng)用案例 66
一次處理一個 68
微批與一次處理一個:權(quán)衡 68
微批處理與一次處理一個方式地結(jié)合 69
動態(tài)的批次間隔 69
Structured Streaming 處理模型 69
第6 章 Spark 彈性模型 71
Spark 中的彈性分布式數(shù)據(jù)集 71
Spark 組件 73
Spark 容錯保證 75
Task 失敗恢復(fù) 76
stage 失敗恢復(fù) 77
Driver 失敗恢復(fù) 77
小結(jié) 78
參考文獻(xiàn) 81
第二部分 Structured Streaming
第7 章 Structured Streaming 概述 87
學(xué)習(xí)Structured Streaming 之前 88
批處理分析 89
流分析 92
連接Stream 93
準(zhǔn)備流數(shù)據(jù)93
流式Dataset 操作 94
創(chuàng)建查詢(Query) 95
啟動流處理96
瀏覽數(shù)據(jù) 97
小結(jié) 97
第8 章 Structured Streaming 編程模型 99
初始化Spark 實例 100
source:接收流數(shù)據(jù) 100
流數(shù)據(jù)的轉(zhuǎn)換 102
sink:輸出結(jié)果數(shù)據(jù) 105
format 106
outputMode 107
queryName 107
option 108
options 108
trigger 108
start() 109
小結(jié) 109
第9 章 Structured Streaming 實戰(zhàn) 111
消費(fèi)流source 112
程序邏輯 114
寫入流sink 114
小結(jié) 116
第10 章 Structured Streaming 的Source 117
source 概述 117
可靠的source 需要能夠重放數(shù)據(jù) 118
source 需要提供schema 119
可用的source 121
文件source 122
指定文件格式 122
公共配置 123
常用的文本解析配置項(CSV、JSON) 124
JSON 文件source 125
CSV 文件source127
Parquet 文件source 128
文本文件source 128
Kafka source 129
創(chuàng)建Kafka source 130
選擇訂閱主題的方法 131
Kafka source 的配置項 132
Kafka 消費(fèi)者的配置項 133
Socket source 134
配置 135
操作 136
Rate source 136
第11 章 Structured Streaming 的Sink 139
sink 概述 139
可用的sink 140
可靠的sink 140
實驗型sink 141
sink API 141
深入學(xué)習(xí)sink 141
文件sink 142
在文件sink 中使用觸發(fā)器 143
文件格式的通用配置項 145
常見的時間和日期格式化設(shè)置(CSV、JSON) 146
CSV 文件sink 146
JSON 文件sink 147
Parquet 文件sink 148
文本文件sink 148
Kafka sink 148
Kafka 發(fā)布模型 148
Kafka sink 的使用 149
內(nèi)存sink 152
控制臺sink 153
配置項 153
輸出模式 153
Foreach sink 154
ForeachWriter 接口 154
TCP Writer sink: ForeachWriter 使用案例 155
案例總結(jié) 158
ForeachWriter 序列化問題排查 159
第12 章 基于事件時間的流處理 161
Structured Streaming 中的事件時間 161
事件時間 163
處理時間 164
水位線 164
基于時間的窗口聚合 165
基于時間的窗口定義 166
如何計算間隔 167
多維聚合 167
滾動窗口和滑動窗口 168
記錄去重 170
小結(jié) 170
第13 章 高級狀態(tài)操作 173
案例:車隊管理 174
分組狀態(tài)操作 174
使用MapGroupsWithState 176
使用FlatMapGroupsWithState 180
輸出模式 182
管理狀態(tài)的時變性 183
小結(jié) 186
第14 章 Structured Streaming 應(yīng)用監(jiān)控 187
Spark 指標(biāo)子系統(tǒng) 188
StreamingQuery 實例 189
StreamingQueryListener 接口 192
第15 章 實驗性模塊:連續(xù)處理與機(jī)器學(xué)習(xí) 195
連續(xù)處理 195
連續(xù)處理介紹 195
使用連續(xù)處理 197
局限性 198
機(jī)器學(xué)習(xí) 199
學(xué)習(xí)與應(yīng)用199
在流中使用機(jī)器學(xué)習(xí)模型 200
案例:利用環(huán)境傳感器估計房間使用情況 201
在線訓(xùn)練 204
參考文獻(xiàn) 207
第三部分 Spark Streaming
第16 章 Spark Streaming 概述 213
DStream 抽象 214
基于DStream 的編程模型 214
基于DStream 的執(zhí)行模型 216
Spark Streaming 程序結(jié)構(gòu) 216
創(chuàng)建Spark Streaming Context 217
定義DStream 218
定義輸出操作 218
啟動Spark Streaming Context 218
停止Streaming 進(jìn)程 219
小結(jié) 219
第17 章 Spark Streaming 編程模型 221
RDD,DStream 的底層抽象 221
DStream 轉(zhuǎn)換操作 224
元素級別的DStream 轉(zhuǎn)換 226
RDD 級別的DStream 轉(zhuǎn)換228
Count 操作 229
修改結(jié)構(gòu)的轉(zhuǎn)換操作 230
小結(jié) 231
第18 章 Spark Streaming 執(zhí)行模型 233
整體同步架構(gòu) 233
Receiver 模型 235
Receiver API 235
Receiver 工作流程 236
Receiver 數(shù)據(jù)流 237
內(nèi)部的數(shù)據(jù)彈性 238
Receiver 的并行 239
資源平衡:Receiver 與處理核數(shù) 239
通過預(yù)寫式日志(Write-Ahead Log)達(dá)到零數(shù)據(jù)丟失 240
無Receiver(Direct)模式 241
小結(jié) 242
第19 章 Spark Streaming 的Source 245
source 分類 245
基礎(chǔ)source 246
基于Receiver 模式的source 246
基于Direct 模式的source 247
常用source 247
文件source 248
隊列source 251
工作流程 252
使用隊列source 進(jìn)行單元測試 252
隊列source 的簡單替代方案:ConstantInputDStream 254
Socket source 256
Kafka source 258
使用Kafka source 260
工作流程 261
哪里有更多的source 262
第20 章 Spark Streaming 的Sink 263
輸出操作 263
內(nèi)置的輸出操作 265
print 266
saveAs 系列 266
foreachRDD 268
使用foreachRDD 編寫自定義sink 268
第三方輸出操作 271
第21 章 基于時間的流處理 273
窗口聚合 273
滾動窗口 274
滑動窗口 275
滑動窗口與批次間隔 275
滑動窗口與滾動窗口 276
使用窗口還是較長的批次間隔 276
窗口上的reduce 操作 277
reduceByWindow 278
reduceByKeyAndWindow 278
countByWindow 278
countByValueAndWindow 279
可逆的窗口聚合操作 279
流的分片 281
小結(jié) 281
第22 章 任意有狀態(tài)的流處理 283
流的狀態(tài)性 283
updateStateByKey 284
updateStateByKey 的局限性 286
性能 286
內(nèi)存占用 287
使用mapwithState 進(jìn)行有狀態(tài)的計算 287
使用mapWithState 289
使用mapWithState 進(jìn)行基于事件時間的流計算 291
第23 章 使用Spark SQL 295
Spark SQL 296
在Spark Streaming 中使用Spark SQL 函數(shù) 297
靜態(tài)數(shù)據(jù)處理 301
Join 優(yōu)化 304
更新流處理程序中的參考數(shù)據(jù)集 307
小結(jié) 309
第24 章 checkpoint 機(jī)制 311
checkpoint 的使用 312
DStream 的checkpoint 機(jī)制 317
從checkpoint 中恢復(fù) 318
checkpoint 的代價 320
checkpoint 調(diào)優(yōu) 320
第25 章 Spark Streaming 應(yīng)用監(jiān)控 323
Streaming UI 324
通過Streaming UI 了解作業(yè)性能 326
輸入速率圖326
調(diào)度延遲圖327
處理時間圖328
總延遲圖 328
批次細(xì)節(jié) 329
監(jiān)控REST API 331
監(jiān)控REST API 的使用 331
監(jiān)控REST API 詳解 331
指標(biāo)子系統(tǒng) 333
內(nèi)部事件總線 335
小結(jié) 339
第26 章 性能調(diào)優(yōu) 341
Spark Streaming 中的性能平衡 341
批次間隔與處理延遲的關(guān)系 342
作業(yè)是如何失敗的 342
深入理解調(diào)度延遲和處理延遲 343
checkpoint 對處理時間的影響 344
影響作業(yè)性能的外部因素 345
如何提高性能 345
調(diào)整批次間隔 346
以固定速率對數(shù)據(jù)攝入限流 346
反壓 347
動態(tài)限流 348
PID 反壓調(diào)優(yōu) 349
自定義速率估算器 349
另一種動態(tài)處理策略 350
緩存 350
推測執(zhí)行 352
參考文獻(xiàn) 353
第四部分 Spark Streaming 高級技巧
第27 章 流式近似與抽樣算法 357
準(zhǔn)確性、實時性與大數(shù)據(jù) 358
準(zhǔn)確性 358
實時處理 358
大數(shù)據(jù) 359
準(zhǔn)確性、實時性與大數(shù)據(jù)之間的三角關(guān)系 359
近似算法 362
哈希與素描 362
去重統(tǒng)計:HyperLogLog 363
角色扮演練習(xí):假如我們是系統(tǒng)管理員 364
HyperLogLog 在Spark 中的實踐 367
統(tǒng)計元素頻率:Count-min Sketch 371
布隆過濾器概述 372
在Spark 中使用布隆過濾器 373
使用Count-min Sketch 統(tǒng)計頻率 373
排名與分位數(shù):T-Digest 算法 376
減少元素數(shù)量:抽樣 378
隨機(jī)抽樣 379
分層抽樣 380
第28 章 實時機(jī)器學(xué)習(xí) 381
利用樸素貝葉斯進(jìn)行流分類 382
streamDM 介紹384
樸素貝葉斯實踐案例 385
訓(xùn)練一個電影評論分類器 386
決策樹介紹 387
Hoeffding 樹 389
使用在線K-means 進(jìn)行流聚類 392
K-means 聚類 392
在線數(shù)據(jù)與在線K-means 算法 393
聚類的衰退問題 394
使用Spark Streaming 運(yùn)行流式K-means 396
參考文獻(xiàn) 399
第五部分 Apache Spark 之外的世界
第29 章 其他分布式實時流處理系統(tǒng) 405
Apache Storm 405
編程模型 406
Storm 拓?fù)?406
Storm 集群 407
與Spark 相比 407
Apache Flink 408
流處理優(yōu)先的框架 408
與Spark 相比 409
Kafka Streams 409
Kafka Streams 編程模型 410
與Spark 相比 410
云上的流處理系統(tǒng) 411
AWS 上的Amazon Kinesis 411
微軟的Azure Stream Analytics 412
Apache Beam 和Google Cloud Dataflow 413
第30 章 展望 417
緊隨Spark 項目 418
在Stack Overflow 上尋求幫助 418
在郵件列表中進(jìn)行討論 418
參加會議 419
參加交流會 419
貢獻(xiàn)Apache Spark 項目 419
參考文獻(xiàn) 421
作者介紹 423
封面介紹 423

本目錄推薦

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