-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
深入理解Flink核心設計與實踐原理 版權信息
- ISBN:9787121399114
- 條形碼:9787121399114 ; 978-7-121-39911-4
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
深入理解Flink核心設計與實踐原理 本書特色
適讀人群 :本書適合初級和中級軟件工程師閱讀,未接觸過流計算領域的Java開發者也可以從本書中獲益。針對初學者,本書提供Windows環境搭建的演示,使不具備Linux系統操作經驗的讀者也可以快速學習Apache Flink。講解Flink的多種部署方式——單機部署、Standalone模式部署、YARN模式部署及相應的高可用設置。 分析Flink分布式開發的基礎概念、Flink的流處理開發的基本功能,包括讀取數據和輸出數據,以及對數據流進行各種轉換操作等,同時還講解如何對開發的Flink應用程序進行本地測試。 講解Flink在流處理開發中對有狀態計算的支持,包括檢查點機制、保存點機制、各種狀態后端等。 講解Flink在流處理開發中的高級功能,如窗口操作、時間處理、連接操作、側端輸出操作,以及自定義數據源和自定義數據接收器,同時講解Apache Kafka連接器對數據源和數據接收器的支持。 介紹Flink在批處理開發中的基本操作,包括讀取數據和輸出數據,以及對數據集進行的各種轉換操作等。 介紹Flink的Table API和SQL如何統一流處理和批處理,以及Table API和SQL在流處理中的一些特別情況,包括動態表、時間屬性和時態表等。 介紹Flink中部署程序的基本操作,包括配置程序的執行參數、程序的并行度、程序的重啟策略、發布程序的方式等。
深入理解Flink核心設計與實踐原理 內容簡介
本書從Apache Flink的緣起開始,由淺入深,理論結合實踐,多方面地介紹Apache Flink這一處理海量數據集的高性能工具。本書圍繞部署、流處理、批處理、Table API和SQL四大模塊進行講解,并詳細說明Apache Flink的每個特性的實際業務背景,使讀者不僅能編寫可運行的Apache Flink程序代碼,還能深刻理解并正確地將其運用到合適的生產業務環境中。雖然本書是以Apache Flink技術框架來講解流計算技術的,但是流計算領域開發所面臨的各種問題同樣是Java后端開發者在進行服務端開發時所要面臨的,如有狀態計算、Exactly Once語義等。因此,Apache Flink框架為解決這些問題而設計的方案同樣值得Java后端開發者借鑒。本書適合初級和中級軟件工程師閱讀,未接觸過流計算領域的Java開發者也可以從本書中獲益。針對初學者,本書提供Windows環境搭建的演示,使不具備Linux系統操作經驗的讀者也可以快速學習Apache Flink。
深入理解Flink核心設計與實踐原理 目錄
目錄
第1章 Apache Flink介紹
1.1 Apache Flink簡介
1.1.1 Apache Flink是什么
1.1.2 Apache Flink應用場景
1.2 Apache Flink組件
1.2.1 分層API
1.2.2 作業管理器、任務管理器、客戶端
第2章 Apache Flink的安裝與部署
2.1 本地模式
2.1.1 安裝JDK
2.1.2 下載并安裝Flink
2.1.3 本地模式集群
2.1.4 Windows系統部署
2.2 Standalone模式
2.2.1 配置集群免密登錄
2.2.2 部署Standalone模式的集群
2.3 YARN模式
2.3.1 在YARN集群中啟動一個長期運行的Flink集群
2.3.2 在YARN集群中運行Flink作業
2.3.3 Flink和YARN的交互方式
2.3.4 問題匯總
2.4 Flink集群高可用
2.4.1 Standalone模式下JobManager的高可用
2.4.2 YARN模式下JobManager的高可用
第3章 Apache Flink的基礎概念和通用API
3.1 基礎概念
3.1.1 數據集和數據流
3.1.2 Flink程序的組成
3.1.3 延遲計算
3.1.4 指定分組數據集合的鍵
3.1.5 指定轉換函數
3.1.6 支持的數據類型
3.2 Flink程序模型
3.2.1 程序和數據流
3.2.2 并行數據流
3.2.3 窗口
3.2.4 時間
3.2.5 有狀態計算
3.2.6 容錯檢查點
3.2.7 狀態后端
3.2.8 保存點
3.3 Flink程序的分布式執行模型
3.3.1 任務和任務鏈
3.3.2 任務槽和資源
3.4 Java的Lambda表達式
3.4.1 類型擦除
3.4.2 類型提示
第4章 流處理基礎操作
4.1 DataStream的基本概念
4.1.1 流處理示例程序
4.1.2 數據源
4.1.3 數據流的轉換操作
4.1.4 數據接收器
4.2 數據流基本操作
4.2.1 Map
4.2.2 FlatMap
4.2.3 Filter
4.2.4 KeyBy
4.2.5 Reduce
4.2.6 Aggregations
4.2.7 Split和Select
4.2.8 Project
4.2.9 Union
4.2.10 Connect和CoMap、CoFlatMap
4.2.11 Iterate
4.3 富函數
4.3.1 基本概念
4.3.2 代碼演示
4.4 任務鏈和資源組
4.4.1 默認鏈接
4.4.2 開啟新鏈接
4.4.3 禁用鏈接
4.4.4 設置任務槽共享組
4.5 物理分區
4.5.1 自定義分區策略
4.5.2 shuffle分區策略
4.5.3 broadcast分區策略
4.5.4 rebalance分區策略
4.5.5 rescale分區策略
4.5.6 forward分區策略
4.5.7 global分區策略
4.6 流處理的本地測試
4.6.1 本地執行環境
4.6.2 集合支持的數據源和數據接收器
4.6.3 單元測試
4.6.4 集成測試
4.7 分布式緩存
4.7.1 注冊分布式緩存文件
4.7.2 訪問分布式緩存文件
4.7.3 BLOB服務的配置參數
4.7.4 部署到集群中運行
4.8 將參數傳遞給函數
4.8.1 通過構造函數傳遞參數
4.8.2 使用ExecutionConfig傳遞參數
4.8.3 將命令行參數傳遞給函數
第5章 流處理中的狀態和容錯
5.1 有狀態計算
5.1.1 Operator狀態和Keyed狀態
5.1.2 托管的Keyed狀態
5.1.3 托管的Operator狀態
5.2 檢查點機制
5.2.1 先決條件
5.2.2 啟用和配置檢查點機制
5.2.3 目錄結構
5.2.4 其他相關的配置選項
5.3 狀態后端
5.3.1 MemoryStateBackend
5.3.2 FsStateBackend
5.3.3 RocksDBStateBackend
5.3.4 配置狀態后端
5.4 保存點機制
5.4.1 分配操作符id
5.4.2 保存點映射
5.4.3 保存點操作
5.4.4 保存點配置
5.5 廣播狀態
5.5.1 前置條件
5.5.2 廣播函數
5.5.3 代碼實現
5.6 調優檢查點和大狀態
5.6.1 監視狀態和檢查點
5.6.2 調優檢查點
5.6.3 使用異步檢查點操作
5.6.4 調優RocksDB
5.6.5 容量規劃
5.6.6 壓縮
第6章 流處理高級操作
6.1 窗口
6.1.1 窗口的基本概念
6.1.2 窗口分配器
6.1.3 窗口函數
6.1.4 窗口觸發器
6.1.5 窗口剔除器
6.1.6 允許數據延遲
6.1.7 窗口的快速實現方法
6.1.8 查看窗口使用組件
6.2 時間
6.2.1 時間語義
6.2.2 事件時間與水印
6.2.3 設置時間特性
6.3 數據流的連接操作
6.3.1 窗口Join
6.3.2 窗口CoGroup
6.3.3 間隔Join
6.4 側端輸出
6.4.1 基于復制數據流的方案
6.4.2 基于Split和Select的方案
6.4.3 基于側端輸出的方案
6.5 ProcessFunction
6.5.1 基本概念
6.5.2 計時器
6.6 自定義數據源函數
6.6.1 SourceFunction接口
6.6.2 ParallelSourceFunction接口
6.6.3 RichParallelSourceFunction抽象類
6.6.4 具備檢查點特性的數據源函數
6.7 自定義數據接收器函數
6.7.1 SinkFunction接口
6.7.2 RichSinkFunction抽象類
6.8 數據流連接器
6.8.1 內置連接器
6.8.2 數據源和數據接收器的容錯保證
6.8.3 Kafka連接器
6.8.4 安裝Kafka的注意事項
6.8.5 Kafka 1.0.0+ 連接器
6.8.6 Kafka消費者
6.8.7 Kafka生產者
6.8.8 Kafka連接器指標
第7章 批處理基礎操作
7.1 DataSet的基本概念
7.1.1 批處理示例程序
7.1.2 數據源
7.1.3 數據接收器
7.2 數據集的基本操作
7.2.1 Map
7.2.2 FlatMap
7.2.3 MapPartition
7.2.4 Filter
7.2.5 Project
7.2.6 Union
7.2.7 Distinct
7.2.8 GroupBy
7.2.9 Reduce
7.2.10 ReduceGroup
7.2.11 Aggregate
7.2.12 Join
7.2.13 OuterJoin
7.2.14 Cross
7.2.15 CoGroup
7.3 將參數傳遞給函數
7.4 廣播變量
7.4.1 注冊廣播變量
7.4.2 訪問廣播變量
7.4.3 代碼實現
7.5 物理分區
7.5.1 Rebalance
7.5.2 PartitionByHash
7.5.3 PartitionByRange
7.5.4 SortPartition
7.6 批處理的本地測試
7.6.1 本地執行環境
7.6.2 集合支持的數據源和數據接收器
第8章 Table API和SQL
8.1 基礎概念和通用API
8.1.1 添加依賴
8.1.2 **個Hello World表程序
8.1.3 表程序的公共結構
8.1.4 創建一個TableEnvironment
8.1.5 在目錄中注冊表
8.1.6 查詢一個表
8.1.7 DataStream和DataSet API的集成
8.1.8 數據類型到表模式的映射
8.1.9 查詢優化
8.2 SQL
8.2.1 指定一個查詢
8.2.2 SQL支持的語法
8.2.3 SQL操作
8.2.4 數據類型
8.2.5 保留關鍵字
8.3 Table API
8.4 自定義函數
8.4.1 標量函數
8.4.2 表函數
8.4.3 聚合函數
8.4.4 自定義函數與運行環境集成
8.5 SQL客戶端
8.5.1 啟動SQL客戶端
8.5.2 配置參數
8.5.3 分離的SQL查詢
8.5.4 SQL客戶端中的視圖
8.5.5 SQL客戶端中的時態表
第9章 流處理中的Table API和SQL
9.1 動態表
9.1.1 動態表和連續查詢
9.1.2 在數據流中定義動態表
9.1.3 動態表到數據流的轉換
9.2 時間屬性
9.2.1 基本概念
9.2.2 組窗口
9.2.3 處理時間
9.2.4 事件時間
9.3 動態表的Join
9.3.1 常規Join
9.3.2 時間窗口Join
9.4 時態表
9.4.1 需求背景
9.4.2 時態表函數
9.5 查詢配置
9.5.1 查詢配置對象
9.5.2 空閑狀態保留時間
9.6 連接外部系統
9.6.1 概述
9.6.2 表模式
9.6.3 更新模式
9.6.4 表格式
9.6.5 表連接器
9.6.6 未統一的TableSources和TableSinks
第10章 執行管理
10.1 執行參數
10.1.1 在ExecutionEnvironment中設置參數
10.1.2 在ExecutionConfig中設置參數
10.2 并行執行
10.2.1 操作符級別
10.2.2 執行環境級別
10.2.3 客戶端級別
10.2.4 系統級別
10.2.5 設置*大并行度
10.3 重啟策略
10.3.1 固定延遲重啟策略
10.3.2 故障率重啟策略
10.3.3 沒有重新啟動策略
10.3.4 回退重啟策略
10.4 程序打包和部署
10.4.1 打包Flink程序
10.4.2 Web UI(Web管控臺)提交
10.4.3 命令行客戶端提交
10.5 命令行接口
10.5.1 將Flink程序提交到Flink集群
10.5.2 列出集群中的作業
10.5.3 調整集群中的作業
10.5.4 保存點操作命令
10.6 執行計劃
10.6.1 在線可視化工具
10.6.2 Web管控臺可視化
深入理解Flink核心設計與實踐原理 作者簡介
國家認證軟件設計師,獲得Apache Kylin管理員認證。現任某上市咨詢公司高級咨詢顧問,有多年大數據、流式計算方面的開發經驗,對Hadoop、Strom、Flink等大數據計算引擎有著非常深入的理解,積累了豐富的項目實踐經驗。先后利用相關技術為銀行、保險、能源等領域的頭部企業解決業務痛點。個人技術博客:www.cnblogs.com/intsmaze個人Github項目:github.com/intsmaze
- >
名家帶你讀魯迅:故事新編
- >
龍榆生:詞曲概論/大家小書
- >
姑媽的寶刀
- >
伯納黛特,你要去哪(2021新版)
- >
人文閱讀與收藏·良友文學叢書:一天的工作
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)
- >
羅曼·羅蘭讀書隨筆-精裝
- >
名家帶你讀魯迅:朝花夕拾