Flink 內核原理與實現

馮飛//崔鵬雲//陳冠華

  • 出版商: 機械工業
  • 出版日期: 2020-08-01
  • 定價: $714
  • 售價: 8.0$571
  • 語言: 簡體中文
  • 頁數: 328
  • 裝訂: 平裝
  • ISBN: 7111661893
  • ISBN-13: 9787111661894
  • 相關分類: 大數據 Big-dataMachine Learning
  • 立即出貨 (庫存 < 4)

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

商品描述

本書既講解了Flink的入門、安裝、流計算開發入門、類型和序列化系統、監控運維、
安全管理配置等基礎知識,又講解了Flink的時間概念、Window的實現原理及其代碼解析,
 Flink的容錯機制原理,Flink容錯的關鍵設計、代碼實現分析,Flink Job從源碼到執行整個過程的解析,
Flink Job的調度策略、資源管理策略、內存管理、數據交換的關鍵設計和代碼實現分析, Flink的RPC通信框架等深度內容。
本書適合對實時計算感興趣的大數據開發、
運維領域的從業人員閱讀,此外對機器學習工程技術人員也有所幫助。

作者簡介

馮飛

有10餘年IT研發經驗,專注於大數據相關技術領域,持續跟踪研究大數據計算引擎的理論模型及其演進,
深入研讀Flink、Apache Beam、Spark等的源碼,尤其精通Flink。
目前從事批流AI融合的新一代數據倉庫設計、研發等工作。

目錄大綱

目錄
前言
第1章Flink入門
1.1核心特點
1.1.1批流一體
1.1.2可靠的容錯能力
1.1.3高吞吐、低延遲
1.1.4大規模複雜計算
1.1.5多平台部署
1.2架構
1.2.1技術架構
1.2.2運行架構
1.3 Flink的未來
1.4準備工作
1.5總結

第2章Flink應用
2.1 Flink應用開發
2.2 API層次
2.3數據流
2.4數據流API
2.4.1數據讀取
2.4.2處理數據
2.4.3數據寫出
2.4.4旁路輸出
2.5總結

第3章核心抽象
3.1環境對象
3.1.1執行環境
3.1.2運行時環境
3.1.3運行時上下文
3.2數據流元素
3.3數據轉換
3.4算子
3.4.1算子行為
3.4.2 Flink算子
3.4.3 Blink算子
3.4.4異步算子
3.5函數體系
3.5.1函數層次
3.5.2處理函數
3.5.3廣播函數
3.5. 4異步函數
3.5.5數據源函數
3.5.6輸出函數
3.5.7檢查點函數
3.6數據分區
3.7連接器
3.8分佈式ID
3.9總結

第4章時間與窗口
4.1時間類型
4.2窗口類型
4.3窗口原理與機制
4.3 .1 WindowAssigner
4.3.2 WindowTrigger
4.3.3 WindowEvictor
4.3.4 Window函數
4.4水印
4.4.1 DataStream Watermark生成
4.4.2 Flink SQL Watermark生成
4.4.3多流的Watermark
4.5時間服務
4.5.1定時器服務
4.5.2定時器
4.5.3優先級隊列
4.6窗口實現
4.6.1時間窗口
4.6.2會話窗口
4.6.3計數窗口
4.7總結

第5章類型與序列化
5.1 DataStream類型系統
5.1.1物理類型
5.1.2邏輯類型
5.1.3類型推斷
5.1.4顯式類型
5.1.5類型系統存在的問題
5.2 SQL類型系統
5.2. 1 Flink Row
5.2.2 Blink Row
5.2.3 ColumnarRow
5.3數據序列化
5.3.1數據序列化/反序列化
5.3.2 String序列化過程示例
5.3.3作業序列化
5.3.4 Kryo序列化
5.4總結

第6章內存管理
6.1自主內存管理
6.2內存模型
6.2.1內存佈局
6.2.2內存計算
6.3內存數據結構
6.3.1內存段
6.3.2內存頁
6.3.3 Buffer
6.3.4 Buffer資源池
6.4內存管理器
6.4.1內存申請
6.4.2內存釋放
6.5網絡緩衝器
6.5.1內存申請
6.5.2內存回收
6.6總結

第7章狀態原理
7.1狀態類型
7.1.1 KeyedState與OperatorState
7.1.2原始和託管狀態
7.2狀態描述
7.3廣播狀態
7.4狀態接口
7.4.1狀態作接口
7.4.2狀態訪問接口
7.5狀態存儲
7.5.1內存型和文件型狀態存儲
7.5.2基於RocksDB的StateBackend
7.6狀態持久化
7.7狀態重分佈
7.7.1 OperatorState重分佈
7.7.2 KeyedState重分佈
7.8狀態過期
7.8.1 DataStream中狀態過期
7.8.2 Flink SQL中狀態過期
7.8.3狀態過期清理
7.9總結

第8章作業提交
8.1提交流程
8.1.1流水線執行器PipelineEecutor
8.1.2 Yarn Session提交流程
8.1.3 Yarn Per-Job提交流程
8.1.4 K8s Session提交流程
8.2 Graph總覽
8.3流圖
8.3.1 StreamGraph核心對象
8.3.2 StreamGraph生成過程
8.3.3單輸入物理Transformation的轉換示例
8.3.4虛擬Transformation的轉換示例
8.4作業圖
8.4.1 JobGraph核心對象
8.4.2 JobGraph生成過程
8.4.3算子融合
8.5執行圖
8.5.1 EecutionGraph核心對象
8.5.2 EecutionGraph生成過程
8.6總結

第9章資源管理
9.1資源抽象
9.2資源管理器
9.3 Slot管理器
9.4 SlotProvider
9.5 Slot選擇策略
9.6 Slot資源池
9.7 Slot共享
9.8總結

第10章作業調度
10.1調度
10.2執行模式
10.3數據交換模式
10.4作業生命週期
10.4.1作業生命週期狀態
10.4.2 Task的生命週期
10.5關鍵組件
10.5.1 JobMaster
10.5.2 TaskManager
10.5.3 Task
10.5.4 StreamTask
10.6作業啟動
10.6.1 JobMaster啟動作業
10.6.2流作業啟動調度
10.6.3批作業調度
10.6.4 TaskManger啟動Task
10.7作業停止
10.8作業失敗調度
10.8.1默認作業失敗調度
10.8.2遺留的作業失敗調度
10.9組件容錯
10.9.1容錯設計
10.9.2 HA服務
10.9.3 JobMaster的容錯
10.9.4 ResourceManager容錯
10.9.5 TaskManager的容錯
10.10總結