課程簡介:
本次的課程主要包括三大部分:
1. Flink基本原理概述。指導學員了解并掌握Flink使用過程中設計到的基本概念和簡要API,介紹大數據實時流計算相關生態體系,著重梳理清楚Flink上下游體系,掌握Flink的核心技術原理,建立大數據實時流計算的方法論思維。
2. Flink實戰生產技術。從實戰出發,圍繞實時流計算業務場景分析、基本編程模型、高級特性等系統性介紹Flink實時流計算的實戰技術,使得學員具備研發Flink實時流計算相關應用的基礎能力。
3. Druid是一款支持數據實時寫入、低延時、高性能的OLAP引擎,具有優秀的數據聚合能力與實時查詢能力。在大數據分析、實時計算、監控等領域都有特定的應用場景,是大數據基礎架構建設中重要的一環。本次課程我們將介紹Druid的核心特性與原理,以及在性能調優以及最佳實踐經驗。
面向人群:
1. 希望學習大數據實時流計算和實時OLAP的學生;
2. 希望了解大數據實時流計算和OLAP實戰技術的IT從業人員;
3. 未來希望成為大數據實時流計算的求職者;
4. 想在大數據實時流計算方向和OLAP方面進行深入研究者。
學習收益:
通過本課程的學習,學員將會收獲:
1. 學員將系統性的了解并掌握大數據實時流計算的基本技術原理,結合Flink的生產技術案例,可基本實現獨立開發、業務場景分析能力;
2. 了解大數據實時流計算上下游生態;
3. 理解Druid基礎特性與正確使用方式,基本工作原理,并了解Druid面向的問題域以及典型的使用場景;
4. 對有志于從事大數據實時流計算以及OLAP研發的學員,提供系統實現原理的講解與指導。
【課程內容】
第一課: Flink基本概念與部署
1. Flink 簡介
2. 編程模型
3. 運行時概念
4. 應用部署與原理
a. 部署模式
b. On-Yarn 啟動設置與原理
c. Job 啟動設置與原理
第二課: DataStream
1. DataStreamContext環境
2. 數據源(DataSource)
3. 轉化(Transformation)
4. 數據Sink
第三課:Window & Time
1. Window介紹
a. 為什么要有Window
b. Window類型
2. Window API的使用
a. Window的三大組件
b. Time&watermark
c. 時間語義
d. 亂序問題解決WaterMark
e. AllowLateness正確設置與理解
f. Sideoutput在Window中的使用
3. Window的內部實現原理
a. Window的處理流程
b. Window中的狀態存儲
4. 生產環境中的Window使用遇到的一些問題
第四課: Connector
1. 基本Connnector
2. 自定義Source 與 Sink
a. Kafka簡介
b. Kafka Consumer 與Sink 的正確使用方式
c. Kafka-Connector 內部機制與實現原理
第五課: 狀態管理與恢復機制
1. 基本概念
2. KeyState 基本類型及用法
a. ValueState
b. ListState
c. ReduceState
d. FoldState
e. AggregatingState
3. OperatorState基本用法
4. Checkpoint
a. 概念
b. 開啟checkpoint
c. 基本原理
第六課: Metrics 與監控
1. Metrics的種類
2. Metrics的獲取方式
a. Web Ui
b. Rest API
c. MetricReporter
3. 用戶自定義Metric指標方式
4. 監控和診斷:Metric和Druid 實時OLAP聯合使用
a. Metric上報
b. Metric指標聚合
c. Metric的分類和格式定義
5. Druid查詢和指標系統
a. Flink作業反壓監控
b. Flink作業的延遲監控
c. 其他
6. Metric系統的內部實現
7. 生產環境中的案例分析 — 通過指標來排查應用問題
第七課: Flink應用案例介紹
1. 數據清洗:map/flatmap等
2. 監控告警系統
a. 數據拉平
b. 基礎窗口計算等
3. 線上運營系統
4. 風控系統
第八課:Druid基本概念與架構設計
1. Druid與OLAP VS Kylin、ES等
2. Druid與指標系統 VS 各種時序數據庫
3. Druid特性
4. 基本架構:角色節點與基本職責
a. 角色行為
b. 角色暴露的API
5. 基本架構:外部依賴
a. MySQL數據結構
b. ZK數據結構
c. HDFS數據結構
第九課: Druid數據寫入與查詢
1. 數據流向與存儲格式
a. 數據寫入流程
b. 存儲與索引格式
2. 實時數據寫入
a. Firehose
b. Realtime Node
c. Index-Service原理介紹
d. Tranquility原理介紹
e. Kafka-index-service原理
3. 離線數據寫入
a. Indexer
b. MR Indexer
4. 查詢模式與查詢類型介紹
第十課: Druid實踐介紹
1. 容錯設計
2. 指標監控
a. 基于Graphite搭建指標監控系統
b. 重要的指標項
3. 運維實踐
a. 數據修復
b. 集群升級實踐
c. Segment元數據管理
d. JVM調優
c. 資源隔離 |