Flink 原理深入與編程實戰 — Scala + Java (微課視頻版)

辛立偉

  • 出版商: 清華大學
  • 出版日期: 2023-02-01
  • 定價: $954
  • 售價: 8.5$811
  • 語言: 簡體中文
  • ISBN: 7302626944
  • ISBN-13: 9787302626947
  • 相關分類: 大數據 Big-dataJVM 語言
  • 立即出貨

  • Flink 原理深入與編程實戰 — Scala + Java (微課視頻版)-preview-1
  • Flink 原理深入與編程實戰 — Scala + Java (微課視頻版)-preview-2
  • Flink 原理深入與編程實戰 — Scala + Java (微課視頻版)-preview-3
Flink 原理深入與編程實戰 — Scala + Java (微課視頻版)-preview-1

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

商品描述

本書講述Apache Flink大數據框架的原理,以及如果將Apache Flink應用於大數據的實時流處理、批處理、批流一體分析等各個場景。通過原理深入學習和實踐示例、案例的學習應用,使讀者瞭解並掌握Apache Flink流處理的框架的基本原理和技能,接近理論與實踐的距離。 全書共分為8章,主要內容包括Flink架構與集群安裝、Flink開發環境準備(基於IntelliJ IDEA和Maven)、開發Flink實時數據處理程序、Flink流數據分析、時間和水印概念、窗口操作、狀態和容錯、側輸出流、Flink流連接器、Flink流處理案例、開發Flink批數據處理程序、使用Table API進行數據處理、Flink on YARN、基於Flink構建批流一體數倉、基於Flink和Iceberg數據湖構建實時數倉。本書源碼全部在Apache Flink 1.13.2上調試成功,所有示例和案例均提供Scala語言和Java語言兩套API的實現(第8章除外),供讀者參考。 本書系統講解了Apache Flink大數據框架的原理和流、批處理的開發實踐,內容全面、實例豐富、可操作性強,做到了理論與實踐相結合。本書適合大數據學習愛好者、想要入門Apache Flink的讀者作為入門和提高的技術參考書,也適合用作大中專院校大數據專業相關的學生和老師的教材或教學參考書。

目錄大綱

 

目錄

 

 

 

 

第1章Flink架構與集群安裝(81min)

 

1.1Flink簡介

 

1.1.1Flink發展歷程

 

1.1.2Flink特性

 

1.2Flink應用場景

 

1.2.1事件驅動應用程序

 

1.2.2數據分析應用程序

 

1.2.3數據管道應用程序

 

1.3Flink體系架構

 

1.3.1Flink系統架構

 

1.3.2Flink運行時架構

 

1.3.3Flink資源管理

 

1.3.4Flink作業調度

 

1.3.5Flink故障恢復

 

1.3.6Flink程序執行模式

 

1.4Flink集群安裝

 

1.4.1Flink獨立集群安裝和測試

 

1.4.2Flink完全分佈式集群安裝

 

1.4.3Flink常用命令

 

第2章Flink開發環境準備(37min)

 

2.1安裝和配置

 

2.1.1安裝和配置Maven

 

2.1.2修改Maven本地倉庫默認位置

 

2.1.3創建初始模板項目

 

2.1.4構建打包項目

 

2.2使用IntelliJ IDEA+Maven開發Flink項目

 

2.2.1在IntelliJ IDEA中創建Flink項目

 

2.2.2設置項目基本依賴

 

2.2.3用於構建具有依賴項的JAR的模板

 

2.2.4編寫批處理代碼並測試執行

 

2.2.5項目打包並提交Flink集群執行

 

2.3Flink相關概念

 

2.3.1Flink數據流

 

2.3.2Flink分層API

 

第3章開發Flink實時數據處理程序(376min)

 

3.1Flink流處理程序編程模型

 

3.1.1流數據類型

 

3.1.2流應用程序實現

 

3.1.3流應用程序剖析

 

3.2Flink支持的數據源

 

3.2.1基於Socket的數據源

 

3.2.2基於文件的數據源

 

3.2.3基於集合的數據源

 

3.2.4自定義數據源

 

3.3Flink數據轉換

 

3.3.1map轉換

 

3.3.2flatMap轉換

 

3.3.3filter轉換

 

3.3.4keyBy轉換

 

3.3.5reduce轉換

 

3.3.6聚合轉換

 

3.3.7union轉換

 

3.3.8connect轉換

 

3.3.9coMap及coFlatMap轉換

 

3.3.10iterate轉換

 

3.3.11project轉換

 

3.4Flink流數據分區

 

3.4.1流數據分發模式

 

3.4.2數據分區方法

 

3.4.3數據分區示例

 

3.4.4理解操作符鏈

 

3.5Flink數據接收器

 

3.5.1內置數據接收器

 

3.5.2使用流文件連接器

 

3.5.3自定義數據接收器

 

3.6時間和水印概念

 

3.6.1時間概念

 

3.6.2事件時間和水印

 

3.6.3水印策略

 

3.6.4處理空閑數據源

 

3.6.5編寫水印生成器

 

3.6.6內置水印生成器

 

3.6.7分配時間戳和水印示例

 

3.7窗口操作

 

3.7.1理解Flink窗口概念

 

3.7.2窗口分配器

 

3.7.3窗口函數

 

3.7.4觸發器

 

3.7.5清除器

 

3.7.6處理遲到數據

 

3.7.7處理窗口結果

 

3.7.8窗口連接

 

3.8低級操作

 

3.8.1ProcessFunction

 

3.8.2KeyedProcessFunction示例

 

3.8.3案例: 服務器故障檢測報警程序

 

3.9狀態和容錯

 

3.9.1狀態運算

 

3.9.2狀態的類型

 

3.9.3使用托管的Keyed State

 

3.9.4使用托管Operator State

 

3.9.5廣播狀態

 

3.9.6狀態後端

 

3.9.7檢查點機制

 

3.9.8狀態快照

 

3.10側輸出流

 

3.10.1什麽是側輸出流

 

3.10.2側輸出流應用示例

 

3.11Flink流連接器

 

3.11.1Kafka連接器

 

3.11.2JDBC連接器

 

3.12其他

 

3.12.1在應用程序中使用日誌

 

3.12.2使用ParameterTool

 

3.12.3命名大型TupleX類型

 

3.13Flink流處理案例

 

3.13.1處理IoT事件流

 

3.13.2運輸公司車輛超速實時監測

 

第4章開發Flink批數據處理程序(64min)

 

4.1Flink批處理程序編程模型

 

4.1.1批應用程序實現

 

4.1.2批應用程序剖析

 

4.2數據源

 

4.2.1基於文件的數據源

 

4.2.2基於集合的數據源

 

4.2.3通用的數據源

 

4.2.4壓縮文件

 

4.3數據轉換

 

4.3.1map轉換

 

4.3.2flatMap轉換

 

4.3.3mapPartition轉換

 

4.3.4filter轉換

 

4.3.5reduce轉換

 

4.3.6在分組數據集上的reduce轉換

 

4.3.7在分組數據集上的GroupReduce轉換

 

4.3.8在分組數據集上的GroupCombine轉換

 

4.3.9在分組元組數據集上執行聚合

 

4.3.10在分組元組數據集上執行minBy轉換

 

4.3.11在分組元組數據集上執行maxBy轉換

 

4.3.12在全部元組數據集上執行聚合操作

 

4.3.13distinct轉換

 

4.3.14join連接轉換

 

4.3.15union轉換

 

4.3.16project轉換

 

4.3.17firstn轉換

 

4.4數據接收器

 

4.4.1將計算結果保存到文本文件

 

4.4.2將計算結果保存到JDBC

 

4.4.3標準DataSink方法

 

4.4.4本地排序輸出

 

4.5廣播變量

 

4.6分佈式緩存

 

4.7參數傳遞

 

4.7.1通過構造函數傳參

 

4.7.2通過withParameters(Configuration)傳參

 

4.7.3通過ExecutionConfig傳遞全局參數

 

 

4.8數據集中的拉鏈操作

 

4.8.1密集索引

 

4.8.2唯一索引

 

4.9Flink批處理示例

 

4.9.1分析豆瓣熱門電影數據集——Scala實現

 

4.9.2分析豆瓣熱門電影數據集——Java實現

 

第5章使用Table API進行數據處理(136min)

 

5.1依賴

 

5.2Table API與SQL編程模式

 

5.2.1TableEnvironment

 

5.2.2Table API與SQL程序的結構

 

5.2.3在Catalog中創建表

 

5.2.4查詢表

 

5.2.5向下游發送表

 

5.2.6翻譯並執行查詢

 

5.3Table API

 

5.3.1關系運算

 

5.3.2窗口運算

 

5.3.3基於行的操作

 

5.4Table API與DataStream API集成

 

5.4.1依賴

 

5.4.2在DataStream和Table之間轉換

 

5.4.3處理insertonly流

 

5.4.4處理變更日誌流

 

5.5Table API實時流處理案例

 

5.5.1傳感器溫度實時統計

 

5.5.2車輛超速實時監測

 

5.5.3電商用戶行為實時分析

 

第6章Flink on YARN(13min)

 

6.1Flink on YARN session

 

6.1.1下載Flink集成Hadoop依賴包

 

6.1.2運行Flink on YARN session

 

6.1.3提交Flink作業

 

6.1.4停止Flink on YARN session

 

6.2Flink on YARN支持的部署模式

 

6.2.1Application模式

 

6.2.2PerJob集群模式

 

6.2.3session模式

 

第7章基於Flink構建流批一體數倉(27min)

 

7.1Flink集成Hive數倉

 

 

7.1.1Flink集成Hive的方式

 

7.1.2Flink集成Hive的步驟

 

7.1.3Flink連接Hive模板代碼

 

7.2批流一體數倉構建實例

 

7.2.1數據集說明

 

7.2.2創建Flink項目

 

7.2.3創建執行環境

 

7.2.4註冊HiveCatalog

 

7.2.5創建Kafka流表

 

7.2.6創建Hive表

 

7.2.7流寫Hive表

 

7.2.8動態讀取Hive流表

 

7.2.9完整示例代碼

 

7.2.10執行步驟

 

7.3純SQL構建批流一體數倉

 

7.3.1使用Flink SQL客戶端

 

7.3.2集成Flink SQL CLI和Hive

 

7.3.3註冊HiveCatalog

 

7.3.4使用SQL Client提交作業

 

7.3.5構建批流一體數倉完整過程

 

第8章基於Flink和Iceberg數據湖構建實時數倉(23min)

 

8.1現代數據湖概述

 

8.1.1什麽是數據湖

 

8.1.2數據湖架構

 

8.1.3開源數據湖框架

 

8.2基於Flink+Iceberg構建企業數據湖

 

8.2.1Apache Iceberg的優勢

 

8.2.2Apache Iceberg經典業務場景

 

8.2.3應用Apache Iceberg的準備工作

 

8.2.4創建和使用Catalog

 

8.2.5Iceberg DDL命令

 

8.2.6Iceberg SQL查詢

 

8.2.7Iceberg SQL寫入

 

8.2.8使用DataStream讀取

 

8.2.9使用DataStream寫入

 

8.2.10重寫文件操作

 

8.2.11未來改進

 

8.3基於Flink+Iceberg構建準實時數倉

 

8.3.1實時數倉構建

 

8.3.2執行OLAP聯機分析

 

圖書推薦