预购商品
书目分类
特别推荐
這是一部以實戰為導向,能指導讀者零基礎掌握Flink並快速完成進階的著作,從功能、原理、實戰和調優等4個維度循序漸進地講解了如何利用Flink進行分散式流式應用開發。作者是該領域的資深專家,現就職于第四范式,曾就職於明略資料。 全書一共10章,邏輯上可以分為三個部分: 第一部分(第1~2章) 主要介紹了Flink的核心概念、特性、應用場景、基本架構,開發環境的搭建和配置,以及原始程式碼的編譯。 第二部分(第3~9章) 詳細講解了Flink的程式設計範式,各種程式設計介面的功能、應用場景和使用方法,以及核心模組和元件的原理和使用。 第三部分(第10章) 重點講解了Flink的監控和優化,參數調優,以及對反壓、Checkpoint和記憶體的優化。
前言 第1章 Apache Flink介紹 1 1.1 Apache Flink是什麼 1 1.2 數據架構的演變 2 1.2.1 傳統資料基礎架構 3 1.2.2 大資料資料架構 4 1.2.3 有狀態流計算架構 5 1.2.4 為什麼會是Flink 6 1.3 Flink應用場景 8 1.4 Flink基本架構 10 1.4.1 基本組件棧 10 1.4.2 基本架構圖 11 1.5 本章小結 13 第2章 環境準備 14 2.1 運行環境介紹 14 2.2 Flink專案範本 15 2.2.1 基於Java實現的專案範本 15 2.2.2 基於Scala實現的專案範本 18 2.3 Flink開發環境配置 20 2.3.1 下載IntelliJ IDEA IDE 21 2.3.2 安裝Scala Plugins 21 2.3.3 導入Flink應用代碼 22 2.3.4 專案配置 22 2.4 運行Scala REPL 24 2.4.1 環境支援 24 2.4.2 運行程式 24 2.5 Flink源碼編譯 25 2.6 本章小結 26 第3章 Flink程式設計模型 27 3.1 資料集類型 27 3.2 Flink程式設計介面 29 3.3 Flink程式結構 30 3.4 Flink資料類型 37 3.4.1 資料類型支援 37 3.4.2 TypeInformation資訊獲取 40 3.5 本章小結 43 第4章 DataStream API 介紹與使用 44 4.1 DataStream程式設計模型 44 4.1.1 DataSources資料登錄 45 4.1.2 DataSteam轉換操作 49 4.1.3 DataSinks資料輸出 59 4.2 時間概念與Watermark 61 4.2.1 時間概念類型 61 4.2.2 EventTime和Watermark 63 4.3 Windows窗口計算 69 4.3.1 Windows Assigner 70 4.3.2 Windows Function 77 4.3.3 Trigger窗口觸發器 83 4.3.4 Evictors數據剔除器 87 4.3.5 延遲資料處理 88 4.3.6 連續窗口計算 89 4.3.7 Windows多流合併 90 4.4 作業鏈和資源組 95 4.4.1 作業鏈 95 4.4.2 Slots資源組 96 4.5 Asynchronous I/O非同步作業 97 4.6 本章小結 98 第5章 Flink狀態管理和容錯 100 5.1 有狀態計算 100 5.2 Checkpoints和Savepoints 109 5.2.1 Checkpoints檢查點機制 109 5.2.2 Savepoints機制 111 5.3 狀態管理器 114 5.3.1 StateBackend類別 114 5.3.2 狀態管理器配置 116 5.4 Querable State 118 5.5 本章小結 123 第6章 DataSet API介紹與使用 124 6.1 DataSet API 124 6.1.1 應用實例 125 6.1.2 DataSources數據接入 126 6.1.3 DataSet轉換操作 128 6.1.4 DataSinks資料輸出 134 6.2 反覆運算計算 136 6.2.1 全量反覆運算 136 6.2.2 增量反覆運算 137 6.3 廣播變數與分散式緩存 139 6.3.1 廣播變數 139 6.3.2 分散式緩存 140 6.4 語義注解 141 6.4.1 Forwarded Fileds注解 141 6.4.2 Non-Forwarded Fileds注解 143 6.4.3 Read Fields注解 144 6.5 本章小結 145 第7章 Table API & SQL介紹與使用 146 7.1 TableEnviroment概念 146 7.1.1 開發環境構建 147 7.1.2 TableEnvironment基本操作 147 7.1.3 外部連接器 155 7.1.4 時間概念 162 7.1.5 Temporal Tables臨時表 166 7.2 Flink Table API 167 7.2.1 Table API應用實例 167 7.2.2 資料查詢和過濾 168 7.2.3 視窗操作 168 7.2.4 聚合操作 173 7.2.5 多表關聯 175 7.2.6 集合操作 177 7.2.7 排序操作 178 7.2.8 資料寫入 179 7.3 Flink SQL使用 179 7.3.1 Flink SQL實例 179 7.3.2 執行SQL 180 7.3.3 資料查詢與過濾 181 7.3.4 Group Windows視窗操作 182 7.3.5 數據聚合 184 7.3.6 多表關聯 186 7.3.7 集合操作 187 7.3.8 資料輸出 189 7.4 自訂函數 189 7.4.1 Scalar Function 189 7.4.2 Table Function 191 7.4.3 Aggregation Function 192 7.5 自訂資料來源 193 7.5.1 TableSource定義 193 7.5.2 TableSink定義 196 7.5.3 TableFactory定義 199 7.6 本章小結 201 第8章 Flink元件棧介紹與使用 202 8.1 Flink複雜事件處理 202 8.1.1 基礎概念 203 8.1.2 Pattern API 204 8.1.3 事件獲取 210 8.1.4 應用實例 212 8.2 Flink Gelly圖計算應用 213 8.2.1 基本概念 213 8.2.2 Graph API 214 8.2.3 反覆運算圖處理 220 8.2.4 圖生成器 226 8.3 FlinkML機器學習應用 227 8.3.1 基本概念 227 8.3.2 有監督學習運算元 229 8.3.3 數據預處理 231 8.3.4 推薦演算法 234 8.3.5 Pipelines In FlinkML 235 8.4 本章小結 236 第9章 Flink部署與應用 237 9.1 Flink集群部署 237 9.1.1 Standalone Cluster部署 238 9.1.2 Yarn Cluster部署 240 9.1.3 Kubernetes Cluster部署 244 9.2 Flink高可用配置 247 9.2.1 Standalone集群高可用配置 248 9.2.2 Yarn Session集群高可用配置 250 9.3 Flink安全管理 251 9.3.1 認證目標 251 9.3.2 認證配置 252 9.3.3 SSL配置 253 9.4 Flink集群升級 255 9.4.1 任務重啟 256 9.4.2 狀態維護 256 9.4.3 版本升級 257 9.5 本章小結 258 第10章 Flink監控與性能優化 259 10.1 監控指標 259 10.1.1 系統監控指標 259 10.1.2 監控指標註冊 261 10.1.3 監控指標報表 264 10.2 Backpressure監控與優化 266 10.2.1 Backpressure進程抽樣 266 10.2.2 Backpressure頁面監控 267 10.2.3 Backpressure配置 268 10.3 Checkpointing監控與優化 268 10.3.1 Checkpointing頁面監控 268 10.3.2 Checkpointing優化 271 10.4 Flink記憶體優化 273 10.4.1 Flink記憶體配置 274 10.4.2 Network Buffers配置 275 10.5 本章小結 277
張利兵 資深架構師,流式計算領域專家,第四范式華東區AI專案架構師,原明略資料華東區大資料架構師。 有多年大資料、流式計算方面的開發經驗,對Hadoop、Spark、Flink等大資料計算引擎有著非常深入的理解,積累了豐富的專案實踐經驗。 先後利用相關技術為銀行、證券、地鐵等領域的頭部企業構建了內部大資料平臺,參與了基於Flink的即時反欺詐風控、即時地鐵故障預警等流式計算平臺的設 計和研發。
客服公告
热门活动
订阅电子报