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