Flink入門與實戰
汪明
買這商品的人也買了...
-
無瑕的程式碼-敏捷軟體開發技巧守則 + 番外篇-專業程式設計師的生存之道 (雙書合購)$940$700 -
向上管理‧向下管理:埋頭苦幹沒人理,出人頭地有策略,承上啟下、左右逢源的職場聖典$380$300 -
領域驅動設計:軟體核心複雜度的解決方法 (Domain-Driven Design: Tackling Complexity in the Heart of Software)$680$530 -
區塊鏈智能合約與 DApp 實務應用$520$411 -
拒當三明治主管!服務上級、培育下屬,居中領導的雙向管理智慧$360$306 -
Working Effectively with Legacy Code : 管理、修改、重構遺留程式碼的藝術 (中文版)$720$562 -
$507精通 Tableau 商業數據分析與可視化 -
帶人的問題,Amazon 都怎麼解決?:亞馬遜的管理學,就算資質普通也被你變成幹練。 下指令、建標準,課本沒教的管理實務。$340$289 -
大數據時代超吸睛視覺化工具與技術:Tableau 資料分析師進階高手養成實戰經典$600$468 -
心理安全感的力量:別讓沉默扼殺了你和團隊的未來$420$357 -
$654Flink 實戰派 (雙色版) -
好人主管的狡猾管理學: 我自己來做還比較快?難怪你老是替部屬收爛攤,當主管該有的心理素質,要從狡猾開始。(三萬本紀念版)$360$306 -
$709業務可視化分析: 從問題到圖形的 Tableau 方法 (全彩) -
如何改變一個人:華頓商學院教你消除抗拒心理,從心擁抱改變$450$383 -
【圖解】零基礎入門 Excel ╳ Python 高效工作術:輕鬆匯入大量資料、交叉分析、繪製圖表,連 PDF 轉檔都能自動化處理,讓效率倍增$500$450
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$576 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
Apache Flink是一個框架和分佈式處理引擎,用於對無界和有界數據流進行有狀態的計算,廣泛應用於大數據相關的實際業務場景中。本書是一本從零開始講解Flink的入門教材,學習本書需要有Java編程基礎。 本書共分10章,內容包括Flink開發環境搭建、Flink架構和原理、時間和窗口、狀態管理和容錯機制、數據類型與序列化、DataStream API和DataSet API、Table API和SQL、Flink並行、Flink部署與應用,最後以一個Flink實戰項目為例,對Flink相關知識進行綜合實踐,其中涉及Web頁面展示、WebSocket協議和Node.js服務等技術。 本書內容詳盡、示例豐富,適合作為Flink初學者必備的參考書,也非常適合作為高等院校和培訓機構大數據及相關專業的師生教學參考。
作者簡介
汪明,中國礦業大學碩士,徐州軟件協會副理事長,某創業公司合夥人。
從事軟件行業十餘年,發表論文數十篇。著有圖書《Python大數據處理庫PySpark實戰》《TypeScript實戰》《Go並發編程實戰》。
目錄大綱
目錄
第1章 Flink環境搭建 1
1.1 下載安裝 1
1.1.1 什麼是Flink 1
1.1.2 Flink用戶 3
1.1.3 JDK安裝 4
1.1.4 Scala安裝 7
1.1.5 Python安裝 10
1.1.6 FinalShell安裝 12
1.2 配置與開發工具 15
1.2.1 基礎配置 15
1.2.2 IDEA開發工具 17
1.3 編譯 19
1.3.1 Scala項目模板 19
1.3.2 Java項目模板 24
1.3.3 Python項目 28
1.3.4 項目編譯 30
1.4 運行Flink應用 31
1.4.1 單機Standalone模式 31
1.4.2 多機Standalone模式 37
1.4.3 On Yarn集群模式 37
1.5 本章小結 38
第2章 定義、架構與原理 39
2.1 流處理的應用場景 39
2.1.1 數據預處理場景 40
2.1.2 預警場景 40
2.1.3 實時數量統計場景 40
2.1.4 數據庫交互場景 40
2.1.5 跟蹤場景 40
2.1.6 基於數據流的機器學習場景 41
2.1.7 實時自動控制場景 41
2.2 流處理的原理 41
2.2.1 流數據特徵 41
2.2.2 Dataflow模型 42
2.2.3 數據流圖 43
2.2.4 流處理操作 45
2.2.5 窗口操作 46
2.3 Flink架構分析 49
2.3.1 Flink常見概念 49
2.3.2 Flink主從架構 51
2.3.3 任務和算子鏈 52
2.4 Flink中的幾個語義——Streams、State、Time、API 53
2.4.1 Streams流 53
2.4.2 State狀態 54
2.4.3 Time時間 55
2.4.4 API接口 55
2.5 Flink組件 56
2.6 本章小結 57
第3章 時間和窗口 58
3.1 時間 58
3.1.1 Flink中的時間 58
3.1.2 時間的特性 60
3.2 Timestamp和Watermark 61
3.2.1 在SourceFunction中生成 61
3.2.2 在assignTimestampsAndWatermarks中生成 64
3.2.3 Watermarks傳播機制 83
3.3 EventTime+Watermark解決亂序數據 95
3.3.1 無遲到的亂序數據 96
3.3.2 有遲到的亂序數據 104
3.4 WindowAssigner、Evictor以及Trigger 109
3.4.1 WindowAssigner 111
3.4.2 Trigger 116
3.4.3 Evictor 122
3.5 Window內部實現 126
3.5.1 Flink Window源碼分析 126
3.5.2 Flink Window執行過程 130
3.6 Window使用 131
3.6.1 Time Window 131
3.6.2 Count Window 135
3.6.3 Session Window 138
3.6.4 自定義Window 140
3.7 Window聚合分類 144
3.7.1 增量聚合 144
3.7.2 全量聚合 146
3.8 本章小結 149
第4章 狀態管理及容錯機制 150
4.1 什麼是狀態 150
4.2 什麼場景會用到狀態 150
4.3 狀態的類型與使用 151
4.3.1 Keyed State托管狀態 152
4.3.2 Operator State托管狀態 159
4.4 Checkpoint機制 162
4.4.1 Checkpoint配置 163
4.4.2 State Backends狀態後端 164
4.4.3 重啟策略 165
4.5 SavePoint機制 169
4.6 本章小結 169
第5章 數據類型與序列化 170
5.1 Flink的數據類型 170
5.1.1 元組類型 171
5.1.2 Java POJOs類型 172
5.1.3 Scala樣例類 173
5.1.4 基礎類型 174
5.1.5 普通類 175
5.1.6 值類型 177
5.1.7 特殊類型 177
5.2 序列化原理 178
5.3 Flink的序列化過程 181
5.4 序列化的最佳實踐 186
5.5 本章小結 186
第6章 DataStream API和DataSet API 187
6.1 DataStream API 187
6.1.1 DataSources數據輸入 187
6.1.2 DataSteam轉換操作 195
6.1.3 DataSinks數據輸出 214
6.2 DataSet API 222
6.2.1 DataSources數據輸入 223
6.2.2 DataSet轉換操作 227
6.2.3 DataSinks數據輸出 235
6.3 疊代計算 238
6.3.1 全量疊代 239
6.3.2 增量疊代 240
6.4 廣播變量與分佈式緩存 244
6.4.1 廣播變量 244
6.4.2 分佈式緩存 246
6.5 語義註解 248
6.5.1 Forwarded Fileds註解 248
6.5.2 Non-Forwarded Fileds註解 249
6.5.3 Read Fields註解 250
6.6 本章小結 251
第7章 Table API和SQL 252
7.1 TableEnviroment 252
7.1.1 開發環境構建 253
7.1.2 TableEnvironment基本操作 254
7.1.3 外部連接器 257
7.1.4 時間概念 261
7.1.5 Temporal Tables時態表 263
7.2 WordCount 267
7.3 Table API的操作 268
7.3.1 獲取Table 268
7.3.2 輸出Table 272
7.3.3 查詢Table 275
7.3.4 聚合操作 277
7.3.5 多表關聯 278
7.3.6 集合操作 279
7.3.7 排序操作 281
7.4 DataStream、DataSet和Table之間的轉換 282
7.4.1 DataStream to Table 283
7.4.2 DataSet to Table 284
7.4.3 Table to DataStream 285
7.4.4 Table to DataSet 287
7.5 window aggregate與non-window aggregate 288
7.6 Flink SQL使用 297
7.6.1 使用SQL CLI客戶端 298
7.6.2 在流上運行SQL查詢 299
7.6.3 Group Windows窗口操作 300
7.6.4 多表關聯 306
7.6.5 集合操作 307
7.6.6 去重操作 308
7.6.7 Top-N操作 310
7.6.8 數據寫入 311
7.7 自定義函數 313
7.7.1 Scalar Function 313
7.7.2 Table Function 315
7.7.3 Aggregation Function 317
7.8 本章小結 319
第8章 並行 320
8.1 Flink並行度 320
8.2 TaskManager和Slot 321
8.3 並行度的設置 322
8.3.1 執行環境層面 322
8.3.2 操作算子層面 323
8.3.3 客戶端層面 324
8.3.4 系統層面 324
8.3.5 最大並行度 324
8.4 並行度案例分析 325
8.5 本章小結 329
第9章 Flink部署與應用 330
9.1 Flink集群部署 330
9.1.1 Standalone Cluster部署 330
9.1.2 Yarn Cluster部署 333
9.1.3 Kubernetes Cluster部署 334
9.2 Flink高可用配置 340
9.2.1 Standalone集群高可用配置 340
9.2.2 Yarn Session集群高可用配置 341
9.3 Flink安全管理 341
9.3.1 認證目標 341
9.3.2 認證配置 342
9.3.3 SSL配置 343
9.4 Flink集群升級 344
9.4.1 任務重啟 344
9.4.2 狀態維護 344
9.4.3 版本升級 344
9.5 本章小結 345
第10章 Flink項目實戰 346
10.1 實時數據清洗(實時ETL) 346
10.1.1 需求分析 346
10.1.2 項目架構設計 346
10.1.3 項目代碼實現 347
10.2 實時數據報表 357
10.2.1 需求分析 357
10.2.2 項目架構設計 357
10.2.3 項目代碼實現 357
10.3 本章小結 362



