《深入理解Flink:實時大數據處理實踐》是2019年4月電子工業出版社出版的圖書,作者是余海峰。
基本介紹
- 書名:深入理解Flink:實時大數據處理實踐
- 作者:余海峰
- ISBN:978-7-121-36045-9
- 頁數:304頁
- 定價:89
- 出版社:電子工業出版社
- 出版時間:2019年4月
- 裝幀:平裝
- 開本:16開
內容簡介,目錄,
內容簡介
本書介紹了當下最流行的實時數據處理引擎Flink,講解了流處理API、批處理API、機器學習引擎FlinkML、關係型API、複雜事件處理FLinkCEP,以及指標度量與部署模式。此外,本書展開分析了流式數據處理理論中時間、視窗、水印、觸發器、遲到生存期之間的關聯關係;深入分析了多項式曲線擬合、分類算法SVM、推薦算法ALS-WR的理論和FlinkML實現。希望快速上手Flink以開展實時大數據處理與線上機器學習套用的從業者,本書是不二的選擇:本書首先介紹相關概念引入的原因、解決方案的演進過程、Flink的對應架構、編程案例以及開放式的思考問題。
目錄
第1 章 流式數據架構理論 1
1.1 大數據處理架構演進歷程 . 1
1.2 案例分析 . 8
1.2.1 SK 電信駕駛安全性評分 . 8
1.2.2 流式機器學習套用 12
1.3 流式數據架構基本概念 . 17
1.3.1 流 17
1.3.2 時間 . 18
1.3.3 視窗 . 21
1.3.4 水印 . 23
1.3.5 觸發器 . 23
1.3.6 數據處理模式 . 23
1.3.7 如何理解流式數據架構的內在機制 27
1.4 根據事件時間開滾動視窗 . 28
1.4.1 what:轉換/where:視窗 . 29
1.4.2 when:水印 29
1.4.3 when:觸發器 32
1.4.4 when:遲到生存期 . 34
1.4.5 how:累加模式 35
1.5 一致性 . 37
1.5.1 有狀態計算 37
1.5.2 exactly-once 語義 . 38
1.5.3 異步屏障快照 . 39
1.5.4 保存點 . 44
1.6 思考題 . 45
第2 章 編程基礎 46
2.1 Flink 概述 46
2.2 讓輪子轉起來 47
2.2.1 本書約定 47
2.2.2 搭建單機版環境 48
2.2.3 配置IDEA . 51
2.3 編程模型 . 53
2.3.1 分層組件棧 53
2.3.2 流式計算模型 . 54
2.3.3 流處理編程 57
2.4 運行時 . 62
2.4.1 運行時結構 62
2.4.2 任務調度 66
2.4.3 物理執行計畫 . 69
2.5 思考題 . 70
第3 章 流處理API 71
3.1 流處理API 概述. 71
3.2 時間處理 . 73
3.2.1 時間 . 73
3.2.2 水印 . 74
3.2.3 周期性水印生成器 75
3.2.4 間歇性水印生成器 77
3.2.5 遞增式水印生成器 78
3.3 運算元 79
3.3.1 運算元函式 80
3.3.2 數據分區 83
3.3.3 資源共享 85
3.3.4 RichFunction . 85
3.3.5 輸出帶外數據 . 86
3.4 視窗 86
3.4.1 視窗分類 87
3.4.2 視窗函式 90
3.4.3 觸發器 . 94
3.4.4 清除器 . 96
3.4.5 遲到生存期 96
3.5 連線器 . 97
3.5.1 HDFS 連線器 98
3.5.2 Kafka . 99
3.5.3 異步I/O 102
3.6 狀態管理 104
3.6.1 狀態分類 104
3.6.2 託管的Keyed State 104
3.6.3 狀態後端配置 . 106
3.7 檢查點 . 107
3.8 思考題 . 108
第4 章 批處理API 109
4.1 批處理API 概述. 109
4.1.1 程式結構 110
4.1.2 Source 111
4.1.3 Sink 112
4.1.4 連線器 112
4.2 運算元 113
4.2.1 運算元函式 113
4.2.2 廣播變數 121
4.2.3 檔案快取 122
4.2.4 容錯 . 123
4.3 疊代 123
4.3.1 深度神經網路訓練 . 123
4.3.2 網路社團發現算法 . 125
4.3.3 Bulk Iteration 127
4.3.4 Delta Iteration 的疊代形式 . 128
4.4 註解 130
4.4.1 直接轉發 130
4.4.2 非直接轉發 . 131
4.4.3 觸達 . 132
4.5 思考題 132
第5 章 機器學習引擎架構與套用編程 133
5.1 概述 133
5.1.1 數據載入 134
5.1.2 多項式曲線擬合的例子 135
5.2 流水線 137
5.2.1 機器學習面臨的架構問題 . 137
5.2.2 Scikit-learn 架構實踐總結 . 138
5.2.3 FlinkML 實現 . 140
5.3 深入分析多項式曲線擬合 170
5.3.1 數值計算的底層框架 170
5.3.2 向量 . 172
5.3.3 數據預處理 . 178
5.3.4 特徵變換 184
5.3.5 線性擬合 188
5.4 分類算法 . 190
5.4.1 最優超平面 . 190
5.4.2 凸最佳化理論 . 193
5.4.3 求解最優超平面 198
5.4.4 核方法 200
5.4.5 軟間隔 205
5.4.6 最佳化解法 208
5.4.7 SVM 的FlinkML 實現 211
5.4.8 SVM 的套用 220
5.5 推薦算法 . 221
5.5.1 推薦系統的分類 221
5.5.2 ALS-WR 算法 223
5.5.3 FlinkML 實現 . 225
5.5.4 ALS-WR 的套用 230
5.6 思考題 230
第6 章 關係型API 234
6.1 為什麼需要關係型API 234
6.2 Calcite 235
6.3 關係型API 概述. 236
6.3.1 程式結構 236
6.3.2 Table 運行時 239
6.3.3 表註冊 241
6.3.4 TableSource 與TableSink 242
6.3.5 查詢 . 244
6.3.6 相互轉換 244
6.4 動態表概述 247
6.4.1 流式關係代數 247
6.4.2 動態表 248
6.4.3 持續查詢 250
6.5 思考題 255
第7 章 複雜事件處理 . 256
7.1 什麼是複雜事件處理 256
7.1.1 股票異常交易檢測 . 256
7.1.2 重新審視DataStream 與Table API 258
7.2 複雜事件處理的自動機理論 259
7.2.1 有窮自動機模型NFA 259
7.2.2 NFAb 模型 261
7.2.3 帶版本號的共享快取 263
7.3 FlinkCEP API 265
7.3.1 基本模式 266
7.3.2 模式拼合 267
7.3.3 模式分組 268
7.3.4 匹配輸出 269
7.4 基於FlinkCEP 的股票異常交易檢測的實現 270
7.5 思考題 274
第8 章 監控與部署 275
8.1 監控 275
8.1.1 度量指標 275
8.1.2 指標的作用域 279
8.1.3 監控配置 279
8.2 集群部署模式 281
8.2.1 Standalone 281
8.2.2 YARN . 281
8.2.3 高可用 284
8.3 訪問安全 . 284
8.4 思考題 286
參考資料 287