劍指大數據——Flink學習精要(Java版)

劍指大數據——Flink學習精要(Java版)

作者: 尚硅谷教育
出版社: 電子工業
出版在: 2022-02-01
ISBN-13: 9787121429125
ISBN-10: 7121429128
總頁數: 348 頁





內容描述


本書基於Flink的穩定版本1.13,從Flink數據處理思想開始講解,帶領讀者深入理解Flink的基本架構,進而由淺入深,結合具體案例,詳細剖析了Flink中DataStream API的使用,並對Flink中的時間語義、狀態、容錯機制等重要概念進行了詳盡的闡述。另外,本書還對實際開發中常用的Flink SQL、CEP等高層級API進行了細致的講解,以電商網站中的實際應用為場景,提供了大量的代碼實現。本書分為三大部分:第1~5章,帶領讀者初步認識Flink並編寫基本的Flink程序;第6~10章,深入探討了Flink內部的高級應用;第11~12章,講解了Flink提供的擴展功能。本書廣泛適用於大數據的學習者與從業人員,以及院校大數據相關專業的學生,也可作為大數據學習的參考書。


目錄大綱


□□章初識Flink1
1.1 Flink的起源和設計理念1
1.□ Flink的應用3
1.□.1 Flink在企業中的應用3
1.□.□ Flink主要的應用場景3
1.3 流式數據處理的發展和演□4
1.3.1 流處理和批處理5
1.3.□ 傳統事務處理6
1.3.3 有狀態的流處理6
1.3.4 Lambda架構9
1.3.5 新一代流處理器10
1.4 Flink的特性總結10
1.4.1 Flink的核心特性10
1.4.□ 分層API10
1.5 Flink與Spark11
1.5.1 數據處理架構1□
1.5.□ 數據模型和運行架構13
1.5.3 Spark還是Flink13
1.6 本章總結14
第□章Flink快速上手15
□.1 環境準備15
□.□ 創建項目15
□.3 編寫代碼18
□.3.1 批處理18
□.3.□ 流處理□0
□.4 本章總結□3
第3章Flink部署□5
3.1 快速啟動一個Flink集群□6
3.1.1 環境配置□6
3.1.□ 本地啟動□6
3.1.3 集群啟動□7
3.1.4 向集群提交作業□9
3.□ 部署模式3□
3.□.1 會話模式33
3.□.□ 單作業模式33
3.□.3 應用模式34
3.3 獨立模式34
3.3.1 會話模式部署35
3.3.□ 單作業模式部署35
3.3.3 應用模式部署35
3.3.4 高可用35
3.4 YARN模式37
3.4.1 相關準備和配置37
3.4.□ 會話模式部署38
3.4.3 單作業模式部署39
3.4.4 應用模式部署40
3.4.5 高可用40
3.5 K8s模式41
3.6 本章總結41
第4章Flink運行時架構4□
4.1 系統架構4□
4.1.1 整體構成4□
4.1.□ JobManager43
4.1.3 TaskManager44
4.□ 作業提交流程45
4.□.1 高層級抽象視角45
4.□.□ 獨立模式45
4.□.3 YARN集群46
4.3 一些重要概念48
4.3.1 數據流圖48
4.3.□ 並行度49
4.3.3 算子鏈51
4.3.4 作業圖與執行圖53
4.3.5 任務和任務槽55
4.4 本章總結60
第5章DataStream API(基礎篇)61
5.1 執行環境61
5.1.1 創建執行環境6□
5.1.□ 執行模式6□
5.1.3 觸發程序執行64
5.□ 源算子64
5.□.1 準備工作64
5.□.□ 從集合中讀取數據65
5.□.3 從文件中讀取數據66
5.□.4 從Socket中讀取數據67
5.□.5 從Kafka中讀取數據67
5.□.6 自定義源算子69
5.□.7 Flink支持的數據類型71
5.3 轉換算子73
5.3.1 基本轉換算子73
5.3.□ 聚合算子76
5.3.3 用戶自定義函數81
5.3.4 物理分區算子87
5.4 輸出算子93
5.4.1 連接到外部系統93
5.4.□ 輸出到文件94
5.4.3 輸出到Kafka96
5.4.4 輸出到Redis97
5.4.5 輸出到ElasticSearch99
5.4.6 輸出到MySQL(JDBC)101
5.4.7 自定義Sink輸出10□
5.5 本章總結104
第6章Flink中的時間和窗口105
6.1 時間語義105
6.1.1 Flink中的時間語義105
6.1.□ 哪種時間語義更重要107
6.□ 水位線108
6.□.1 事件時間和窗口108
6.□.□ 什麼是水位線110
6.□.3 如何生成水位線114
6.□.4 水位線的傳遞1□0
6.□.5 水位線的總結1□1
6.3 窗口1□□
6.3.1 窗口的概念1□□
6.3.□ 窗口的分類1□4
6.3.3 窗口API概覽1□8
6.3.4 窗口分配器1□9
6.3.5 窗口函數131
6.3.6 測試水位線和窗口的使用14□
6.3.7 其他API144
6.3.8 窗口的生命週期148
6.4 遲到數據的處理150
6.4.1 設置水位線延遲時間150
6.4.□ 允許窗口處理遲到數據150
6.4.3 將遲到數據放入窗口側輸出流151
6.5 本章總結154
第7章處理函數155
7.1 基本處理函數155
7.1.1 處理函數的功能和使用155
7.1.□ ProcessFunction解析157
7.1.3 處理函數的分類158
7.□ KeyedProcessFunction159
7.□.1 定時器和定時服務159
7.□.□ KeyedProcessFunction的使用160
7.3 窗口處理函數164
7.3.1 窗口處理函數的使用164
7.3.□ ProcessWindowFunction解析164
7.4 應用案例――Top N166
7.4.1 使用ProcessAllWindowFunction166
7.4.□ 使用KeyedProcessFunction168
7.5 側輸出流173
7.6 本章總結174
第8章多流轉換175
8.1 分流175
8.1.1 簡單實現175
8.1.□ 使用側輸出流177
8.□ 基本合流操作178
8.□.1 聯合178
8.□.□ 連接18□
8.3 基於時間的合流――雙流聯結188
8.3.1 窗口聯結188
8.3.□ 間隔聯結19□
8.3.3 窗口同組聯結195
8.4 本章總結197
第9章狀態編程198
9.1 Flink中的狀態198
9.1.1 有狀態算子198
9.1.□ 狀態的管理199
9.1.3 狀態的分類□00
9.□ 按鍵分區狀態□01
9.□.1 基本概念和特點□01
9.□.□ 支持的結構類型□0□
9.□.3 代碼實現□04
9.□.4 狀態生存時間□13
9.3 算子狀態□14
9.3.1 基本概念和特點□14
9.3.□ 狀態類型□15
9.3.3 代碼實現□16
9.4 廣播狀態□19
9.4.1 基本用法□19
9.4.□ 代碼實例□□0
9.5 狀態持久化和狀態後端□□3
9.5.1 檢查點□□3
9.5.□ 狀態後端□□4
9.6 本章總結□□6
□□0章容錯機制□□7
10.1 檢查點□□7
10.1.1 檢查點的保存□□8
10.1.□ 從檢查點恢復狀態□30
10.1.3 檢查點算法□3□
10.1.4 檢查點配置□37
10.1.5 保存點□39
10.□ 狀態一致性□40
10.□.1 一致性的概念和級別□40
10.□.□ 端到端的狀態一致性□41
10.3 端到端的精確一次□41
10.3.1 輸入端保證□4□
10.3.□ 輸出端保證□4□
10.3.3 Flink和Kafka連接時的精確一次保證□44
10.4 本章總結□48
□□1章Table API和SQL□49
11.1 快速上手□50
11.1.1 需要引入的依賴□50
11.1.□ 一個簡單示例□51
11.□ 基本API□5□
11.□.1 程序架構□5□
11.□.□ 創建表環境□53
11.□.3 創建表□54
11.□.4 表的查詢□55
11.□.5 輸出表□57
11.□.6 表和流的轉換□57
11.3 流處理中的表□6□
11.3.1 動態表和持續查詢□6□
11.3.□ 將流轉換成動態表□63
11.3.3 用SQL持續查詢□65
11.3.4 將動態表轉換為流□69
11.4 時間屬性和窗口□70
11.4.1 事件時間□71
11.4.□ 處理時間□7□
11.4.3 窗口□73
11.5 聚合查詢□75
11.5.1 分組聚合□75
11.5.□ 窗口聚合□76
11.5.3 開窗聚合□79
11.5.4 應用實例――Top N□80
11.6 聯結查詢□84
11.6.1 常規聯結查詢□84
11.6.□ 間隔聯結查詢□85
11.7 函數□86
11.7.1 系統函數□87
11.7.□ 自定義函數□88
11.8 SQL客戶端□94
11.9 連接到外部系統□96
11.9.1 Kafka□96
11.9.□ 文件系統□98
11.9.3 JDBC□99
11.9.4 ElasticSearch300
11.9.5 HBase300
11.9.6 Hive301
11.10 本章總結304
□□□章Flink CEP306
1□.1 基本概念306
1□.1.1 CEP是什麼306
1□.1.□ 模式307
1□.1.3 應用場景307
1□.□ 快速上手308
1□.□.1 需要引入的依賴308
1□.□.□ 一個簡單實例308
1□.3 模式API311
1□.3.1 個體模式311
1□.3.□ 組合模式316
1□.3.3 模式組319
1□.3.4 匹配後跳過策略3□0
1□.4 模式的檢測處理3□1
1□.4.1 將模式應用到流上3□1
1□.4.□ 處理匹配事件3□1
1□.4.3 處理超時事件3□4
1□.4.4 處理遲到數據3□9
1□.5 CEP的狀態機實現330
1□.6 本章總結334




相關書籍

可伸縮架構:面向增長應用的高可用(Architecting for scale: high availability for your growing applications)

作者 李·艾奇遜 (Lee Atchison)

2022-02-01

PHP網站開發實戰項目式教程

作者 朱珍 黃玲

2022-02-01

塊數據1.0:大數據時代真正到來的標誌

作者 大數據戰略重點實驗室-;連玉明-主編

2022-02-01