Flink大數據分析實戰

Flink大數據分析實戰

作者: 張偉洋
出版社: 清華大學
出版在: 2022-02-01
ISBN-13: 9787302598183
ISBN-10: 7302598185





內容描述


本書由資深大數據專家精心編寫,循序漸進地介紹了Flink生態系統主流的大數據開發技術。全書共7章,第1章講解Flink的基礎知識,包括Flink應用場景、主要組件、編程模型等,最後通過一個單詞計數示例帶領讀者快速體驗Flink應用程序的編寫;第2、3章講解Flink的多種運行時架構、任務調度原理、數據分區以及Flink集群的安裝部署,同時包括Flink命令行操作、應用程序提交、常用Shell命令等;第4~7章講解了Flink流式計算DataStream API、關系型計算Table&SQL API以及圖計算框架Gelly等的基礎知識、架構原理,同時包括常用Shell命令、API操作、內核源碼剖析,並通過多個實際案例講解各個框架的具體應用以及與Hadoop生態系統框架Hive、Kafka的整合操作。
本書內容翔實,實例豐富,適合Flink新手、大數據開發人員閱讀,也可作為培訓機構和大專院校相關專業的教學用書。


目錄大綱


目    錄
 
第1章  初識Flink 1
1.1  大數據開發總體架構 1
1.2  什麽是Flink 3
1.3  Flink的應用場景 5
1.4  流計算框架對比 6
1.5  Flink的主要組件 8
1.6  Flink編程模型 9
1.6.1  數據集 9
1.6.2  編程接口 11
1.6.3  程序結構 12
1.7  快速體驗Flink程序 13
1.7.1  IntelliJ IDEA安裝Scala插件 13
1.7.2  IntelliJ IDEA創建Flink項目 15
1.7.3  示例:批處理單詞計數 17
1.7.4  示例:流處理單詞計數 20
第2章  Flink運行架構及原理 23
2.1  Flink運行時架構 23
2.1.1  YARN集群架構 23
2.1.2  Flink Standalone架構 27
2.1.3  Flink On YARN的架構 29
2.2  Flink任務調度原理 30
2.2.1  任務鏈 30
2.2.2  並行度 31
2.2.3  共享Task Slot 32
2.2.4  數據流 33
2.2.5  執行圖 34
2.2.6  執行計劃 35
2.3  Flink數據分區 38
2.3.1  分區數量 38
2.3.2  分區策略 39
第3章  Flink安裝及部署 41
3.1  Flink集群搭建 41
3.1.1  Flink本地模式搭建 42
3.1.2  Flink Standalone搭建 44
3.1.3  Flink On YARN搭建 46
3.2  Flink HA模式 54
3.2.1  Flink Standalone模式的HA
架構 55
3.2.2  Flink Standalone模式HA集群
搭建 56
3.2.3  Flink On YARN模式HA集群
搭建 60
3.3  Flink命令行界面 61
3.4  Flink應用提交 65
3.5  Flink Shell的使用 67
第4章  Flink DataStream API 72
4.1  基本概念 72
4.2  執行模式 73
4.3  作業流程 76
4.4  程序結構 77
4.5  Source數據源 79
4.5.1  基本數據源 79
4.5.2  高級數據源 81
4.5.3  自定義數據源 81
4.6  Transformation數據轉換 85
4.7  Sink數據輸出 97
4.8  數據類型與序列化 98
4.9  分區策略 100
4.9.1  內置分區策略 101
4.9.2  自定義分區策略 114
4.10  窗口計算 117
4.10.1  事件時間 117
4.10.2  窗口分類 118
4.10.3  窗口函數 124
4.10.4  觸發器 133
4.10.5  清除器 134
4.11  水印 137
4.11.1  計算規則 138
4.11.2  允許延遲與側道輸出 140
4.11.3  生成策略 142
4.12  狀態管理 147
4.12.1  Keyed State 149
4.12.2  Operator State 152
4.13  容錯機制 156
4.13.1  Checkpoint 156
4.13.2  Barrier 162
4.13.3  重啟與故障恢復策略 165
4.13.4  Savepoint 167
4.14  案例分析:計算5秒內輸入的單詞
數量 168
4.15  案例分析:統計5分鐘內每個用戶
產生的日誌數量 170
4.16  案例分析:統計24小時內每個用戶的
訂單平均消費額 173
4.17  案例分析:計算5秒內每個信號燈
通過的汽車數量 177

4.18  案例分析:Flink整合Kafka計算
實時單詞數量 183
4.19  案例分析:天貓雙十一實時交易額
統計 188
4.19.1  創建自定義數據源 188
4.19.2  計算各個分類的訂單總額 189
4.19.3  計算全網銷售總額與
分類Top3 192
第5章  Flink Table API&SQL 196
5.1  基本概念 196
5.1.1  計劃器 197
5.1.2  API架構 197
5.1.3  程序結構 199
5.2  動態表 200
5.2.1  流映射為動態表 201
5.2.2  連續查詢 201
5.2.3  動態表轉換為流 203
5.3  TableEnvironment API 205
5.3.1  基本概念 205
5.3.2  創建TableEnvironment 205
5.3.3  示例:簡單訂單統計 206
5.4  Table API 210
5.4.1  基本概念 210
5.4.2  示例:訂單分組計數 211
5.4.3  示例:每小時訂單分組求
平均值 213
5.4.4  關系操作 214
5.5  SQL API 217
5.5.1  DDL操作 218
5.5.2  DML操作 221
5.5.3  DQL操作 222
5.5.4  窗口函數 223
5.5.5  窗口聚合 230
5.5.6  分組聚合 233
5.5.7  OVER聚合 235
5.5.8  連接查詢 237
5.6  TopN查詢 240
5.6.1  OVER子句 240
5.6.2  示例:計算產品類別銷
售額TopN 242
5.6.3  示例:搜索詞熱度統計 243
5.6.4  窗口TopN 246
5.7  Catalog元數據管理 248
5.8  Flink SQL整合Kafka 250
5.8.1  基本概念 250
5.8.2  示例:Flink SQL整合Kafka實現
實時ETL 253
5.9  Flink SQL CLI 258
5.9.1  啟動SQL CLI 259
5.9.2  執行SQL查詢 260
5.9.3  可視化結果模式 262
5.10  Flink SQL整合Hive 263
5.10.1  整合步驟 264
5.10.2  Table API操作Hive 272
5.10.3  示例:Flink SQL整合Hive分析
搜狗用戶搜索日誌 274
5.11  案例分析:Flink SQL實時單詞
計數 279
5.12  案例分析:Flink SQL實時計算
5秒內用戶訂單總金額 283
5.13  案例分析:微博用戶行為分析 288
5.13.1  離線與實時計算業務架構 288
5.13.2  Flume數據採集架構 291
5.13.3  Kafka消息隊列架構 293
5.14  案例分析:Flink SQL智慧交通數據
分析 294
5.14.1  項目介紹 294
5.14.2  數據準備 295
5.14.3  統計正常卡口數量 297
5.14.4  統計車流量排名前3的
卡口號 299
5.14.5  統計每個卡口通過速度最快的
前3輛車 300
5.14.6  車輛軌跡分析 302
第6章  Flink內核源碼 304
6.1  流圖 304
6.1.1  StreamGraph核心對象 305
6.1.2  StreamGraph生成過程 308
6.2  作業圖 310
6.2.1  JobGraph的核心對象 312
6.2.2  JobGraph的生成過程 312
6.3  執行圖 319
6.3.1  ExecutionGraph的核心對象 319
6.3.2  ExecutionGraph的生成過程 320
第7章  Gelly圖計算 324
7.1  什麽是Gelly 324
7.2  第一個Gelly程序 325
7.3  Gelly數據結構 328
7.4  如何使用Gelly 329
7.5  圖操作 330
7.5.1  基本操作 330
7.5.2  屬性操作 332
7.5.3  結構操作 335
7.5.4  連接操作 335
7.6  圖常用API 337
7.6.1  創建圖 337
7.6.2  圖的轉換 339
7.6.3  圖的添加與移除 342
7.6.4  圖的鄰域方法 343
7.7  案例分析:Gelly計算社交網絡中
粉絲的平均年齡 346




相關書籍

機器學習與振動信號處理

作者 楊宏暉 閆孝偉 盛美萍

2022-02-01

Programming Google App Engine with Python: Build and Run Scalable Python Apps on Google's Infrastructure (Paperback)

作者 Dan Sanderson

2022-02-01

Python 程式設計|大數據資料分析

作者 蔡明志

2022-02-01