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

尚硅谷教育

  • 出版商: 電子工業
  • 出版日期: 2022-02-01
  • 定價: $630
  • 售價: 7.9$498
  • 貴賓價: 7.5$473
  • 語言: 簡體中文
  • 頁數: 348
  • ISBN: 7121429128
  • ISBN-13: 9787121429125
  • 相關分類: 大數據 Big-data
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

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

目錄大綱

章初識Flinkt1
1.1 Flink的起源和設計理念t1
1.2 Flink的應用t3
1.2.1 Flink在企業中的應用t3
1.2.2 Flink主要的應用場景t3
1.3 流式數據處理的發展和演t4
1.3.1 流處理和批處理t5
1.3.2 傳統事務處理t6
1.3.3 有狀態的流處理t6
1.3.4 Lambda架構t9
1.3.5 新一代流處理器t10
1.4 Flink的特性總結t10
1.4.1 Flink的核心特性t10
1.4.2 分層APIt10
1.5 Flink與Sparkt11
1.5.1 數據處理架構t12
1.5.2 數據模型和運行架構t13
1.5.3 Spark還是Flinkt13
1.6 本章總結t14
第2章Flink快速上手t15
2.1 環境準備t15
2.2 創建項目t15
2.3 編寫代碼t18
2.3.1 批處理t18
2.3.2 流處理t20
2.4 本章總結t23
第3章Flink部署t25
3.1 快速啟動一個Flink集群t26
3.1.1 環境配置t26
3.1.2 本地啟動t26
3.1.3 集群啟動t27
3.1.4 向集群提交作業t29
3.2 部署模式t32
3.2.1 會話模式t33
3.2.2 單作業模式t33
3.2.3 應用模式t34
3.3 獨立模式t34
3.3.1 會話模式部署t35
3.3.2 單作業模式部署t35
3.3.3 應用模式部署t35
3.3.4 高可用t35
3.4 YARN模式t37
3.4.1 相關準備和配置t37
3.4.2 會話模式部署t38
3.4.3 單作業模式部署t39
3.4.4 應用模式部署t40
3.4.5 高可用t40
3.5 K8s模式t41
3.6 本章總結t41
第4章Flink運行時架構t42
4.1 系統架構t42
4.1.1 整體構成t42
4.1.2 JobManagert43
4.1.3 TaskManagert44
4.2 作業提交流程t45
4.2.1 高層級抽象視角t45
4.2.2 獨立模式t45
4.2.3 YARN集群t46
4.3 一些重要概念t48
4.3.1 數據流圖t48
4.3.2 並行度t49
4.3.3 算子鏈t51
4.3.4 作業圖與執行圖t53
4.3.5 任務和任務槽t55
4.4 本章總結t60
第5章DataStream API(基礎篇)t61
5.1 執行環境t61
5.1.1 創建執行環境t62
5.1.2 執行模式t62
5.1.3 觸發程序執行t64
5.2 源算子t64
5.2.1 準備工作t64
5.2.2 從集合中讀取數據t65
5.2.3 從文件中讀取數據t66
5.2.4 從Socket中讀取數據t67
5.2.5 從Kafka中讀取數據t67
5.2.6 自定義源算子t69
5.2.7 Flink支持的數據類型t71
5.3 轉換算子t73
5.3.1 基本轉換算子t73
5.3.2 聚合算子t76
5.3.3 用戶自定義函數t81
5.3.4 物理分區算子t87
5.4 輸出算子t93
5.4.1 連接到外部系統t93
5.4.2 輸出到文件t94
5.4.3 輸出到Kafkat96
5.4.4 輸出到Redist97
5.4.5 輸出到ElasticSearcht99
5.4.6 輸出到MySQL(BC)t101
5.4.7 自定義Sink輸出t102
5.5 本章總結t104
第6章Flink中的時間和窗口t105
6.1 時間語義t105
6.1.1 Flink中的時間語義t105
6.1.2 哪種時間語義更重要t107
6.2 水位線t108
6.2.1 事件時間和窗口t108
6.2.2 什麼是水位線t110
6.2.3 如何生成水位線t114
6.2.4 水位線的傳遞t120
6.2.5 水位線的總結t121
6.3 窗口t122
6.3.1 窗口的概念t122
6.3.2 窗口的分類t124
6.3.3 窗口API概覽t128
6.3.4 窗口分配器t129
6.3.5 窗口函數t131
6.3.6 測試水位線和窗口的使用t142
6.3.7 其他APIt144
6.3.8 窗口的生命週期t148
6.4 遲到數據的處理t150
6.4.1 設置水位線延遲時間t150
6.4.2 允許窗口處理遲到數據t150
6.4.3 將遲到數據放入窗口側輸出流t151
6.5 本章總結t154
第7章處理函數t155
7.1 基本處理函數t155
7.1.1 處理函數的功能和使用t155
7.1.2 ProcessFunction解析t157
7.1.3 處理函數的分類t158
7.2 KeyedProcessFunctiont159
7.2.1 定時器和定時服務t159
7.2.2 KeyedProcessFunction的使用t160
7.3 窗口處理函數t164
7.3.1 窗口處理函數的使用t164
7.3.2 ProcessWindowFunction解析t164
7.4 應用案例――Top Nt166
7.4.1 使用ProcessAllWindowFunctiont166
7.4.2 使用KeyedProcessFunctiont168
7.5 側輸出流t173
7.6 本章總結t174
第8章多流轉換t175
8.1 分流t175
8.1.1 簡單實現t175
8.1.2 使用側輸出流t177
8.2 基本合流操作t178
8.2.1 聯合t178
8.2.2 連接t182
8.3 基於時間的合流――雙流聯結t188
8.3.1 窗口聯結t188
8.3.2 間隔聯結t192
8.3.3 窗口同組聯結t195
8.4 本章總結t197
第9章狀態編程t198
9.1 Flink中的狀態t198
9.1.1 有狀態算子t198
9.1.2 狀態的管理t199
9.1.3 狀態的分類t200
9.2 按鍵分區狀態t201
9.2.1 基本概念和特點t201
9.2.2 支持的結構類型t202
9.2.3 代碼實現t204
9.2.4 狀態生存時間t213
9.3 算子狀態t214
9.3.1 基本概念和特點t214
9.3.2 狀態類型t215
9.3.3 代碼實現t216
9.4 廣播狀態t219
9.4.1 基本用法t219
9.4.2 代碼實例t220
9.5 狀態持久化和狀態後端t223
9.5.1 檢查點t223
9.5.2 狀態後端t224
9.6 本章總結t226
0章容錯機制t227
10.1 檢查點t227
10.1.1 檢查點的保存t228
10.1.2 從檢查點恢復狀態t230
10.1.3 檢查點算法t232
10.1.4 檢查點配置t237
10.1.5 保存點t239
10.2 狀態一致性t240
10.2.1 一致性的概念和級別t240
10.2.2 端到端的狀態一致性t241
10.3 端到端的一次t241
10.3.1 輸入端保證t242
10.3.2 輸出端保證t242
10.3.3 Flink和Kafka連接時的一次保證t244
10.4 本章總結t248
1章Table API和SQLt249
11.1 快速上手t250
11.1.1 需要引入的依賴t250
11.1.2 一個簡單示例t251
11.2 基本APIt252
11.2.1 程序架構t252
11.2.2 創建表環境t253
11.2.3 創建表t254
11.2.4 表的查詢t255
11.2.5 輸出表t257
11.2.6 表和流的轉換t257
11.3 流處理中的表t262
11.3.1 動態表和持續查詢t262
11.3.2 將流轉換成動態表t263
11.3.3 用SQL持續查詢t265
11.3.4 將動態表轉換為流t269
11.4 時間屬性和窗口t270
11.4.1 事件時間t271
11.4.2 處理時間t272
11.4.3 窗口t273
11.5 聚合查詢t275
11.5.1 分組聚合t275
11.5.2 窗口聚合t276
11.5.3 開窗聚合t279
11.5.4 應用實例――Top Nt280
11.6 聯結查詢t284
11.6.1 常規聯結查詢t284
11.6.2 間隔聯結查詢t285
11.7 函數t286
11.7.1 系統函數t287
11.7.2 自定義函數t288
11.8 SQL客戶端t294
11.9 連接到外部系統t296
11.9.1 Kafkat296
11.9.2 文件系統t298
11.9.3 BCt299
11.9.4 ElasticSearcht300
11.9.5 HBaset300
11.9.6 Hivet301
11.10 本章總結t304
2章Flink CEPt306
12.1 基本概念t306
12.1.1 CEP是什麼t306
12.1.2 模式t307
12.1.3 應用場景t307
12.2 快速上手t308
12.2.1 需要引入的依賴t308
12.2.2 一個簡單實例t308
12.3 模式APIt311
12.3.1 個體模式t311
12.3.2 組合模式t316
12.3.3 模式組t319
12.3.4 匹配後跳過策略t320
12.4 模式的檢測處理t321
12.4.1 將模式應用到流上t321
12.4.2 處理匹配事件t321
12.4.3 處理超時事件t324
12.4.4 處理遲到數據t329
12.5 CEP的狀態機實現t330
12.6 本章總結t334