幫助中心 | 我的帳號 | 關於我們

深入理解Flink核心設計與實踐原理

  • 作者:劉洋|責編:陳曉猛
  • 出版社:電子工業
  • ISBN:9787121399114
  • 出版日期:2020/11/01
  • 裝幀:平裝
  • 頁數:474
人民幣:RMB 138 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書從Apache Flink的緣起開始,由淺入深,理論結合實踐,全方位地介紹Apache Flink這一處理海量數據集的高性能工具。本書圍繞部署、流處理、批處理、Table API和SQL四大模塊進行講解,並詳細說明Apache Flink的每個特性的實際業務背景,使讀者不僅能編寫可運行的Apache Flink程序代碼,還能深刻理解並正確地將其運用到合適的生產業務環境中。
    雖然本書是以Apache Flink技術框架來講解流計算技術的,但是流計算領域開發所面臨的各種問題同樣是Java後端開發者在進行服務端開發時所要面臨的,如有狀態計算、Exactly Once語義等。因此,Apache Flink框架為解決這些問題而設計的方案同樣值得Java後端開發者借鑒。
    本書適合初級和中級軟體工程師閱讀,未接觸過流計算領域的Java開發者也可以從本書中獲益。針對初學者,本書提供Windows環境搭建的演示,使不具備Linux系統操作經驗的讀者也可以快速學習Apache Flink。

作者介紹
劉洋|責編:陳曉猛
    劉洋,國家認證軟體設計師,獲得Apache Kylin管理員認證。     現任某上市咨詢公司高級咨詢顧問,有多年大數據、流式計算方面的開發經驗,對Hadoop、Strom、Flink等大數據計算引擎有著非常深入的理解,積累了豐富的項目實踐經驗。先後利用相關技術為銀行、保險、能源等領域的頭部企業解決業務痛點。     個人技術博客:www.cnblogs.com/intsmaze     個人Github項目:github.com/intsmaze

目錄
第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管控台可視化

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032