第一部份:實時計算平臺介紹
介紹實時系統主要解決的業務問題和面臨的挑戰;
簡要介紹實時平臺的主要組件和構成,實時數據的收集通道和數據交互方式
實時數據核心組件Flume、Kafka的介紹,以及Storm在整個平臺中所處的位置;
分享部分典型互聯網公司實時平臺的架構,如大眾點評、美團、一號店等
第二部份:Storm基本概念和組件介紹
Storm的基本組件:Nimbus、Supervisor、Worker、 Executor和Task的基本介紹;
集群組成:通常一個線上集群的如何構成;
Storm的可靠性:Storm如何保證可靠性以及數據的準確性;
Storm的數據分組和其他特性介紹;
第三部份:Storm集群部署和配置
Storm的依賴組件介紹;
Storm的部署軟硬件環境要求;
部署ZooKeeper
部署Storm到各個機器節點
配置Storm相關參數,以及核心參數介紹;
啟動Storm相關進程;
Storm的守護進程;
提交Topology的過程介紹。
第四部份:Storm基本應用的開發
Storm的應用開發和調試過程介紹,包括:
提交示例Topology到集群;
項目代碼本地開發環境配置和依賴;
代碼編譯和打包以及注意事項;
本地代碼調試過程;
線上Topology提交過程和問題分析。
第五部份:Storm Nimbus和Supervisor深入剖析
Nimbus功能介紹和啟動Nimbus服務過程分析;
Nimbus服務的執行過程剖析;
分配Executor的算法;
調度器介紹;
默認調度器DefaultScheduler和均衡調度器EvenScheduler邏輯分析;
Supervisor數據結構分析;
Supervisor的執行過程詳解。
第六部份:Storm Worker、Executor和Task深入分析
Worker的數據結構和架構;
Worker中的數據流分解;
創建Worker的過程;
Executor的創建過程;
創建Spout的Executor的過程和邏輯;
創建Bolt的Executor的過程和邏輯;
Task的創建過程;
Ack的原理介紹;
Acker Bolt的實現。
第七部份:Storm運維和監控
主機信息監控;
日志和監控;
Storm UI和NimbusClient的使用;
Storm Metric的使用;
Storm ZooKeeper的目錄詳解和功能分析;
Storm Hook的使用。
第八部份:Storm的擴展和二次開發
Storm UI原生功能介紹和數據含義;
Storm UI新功能需求實現;
Storm的Thrift接口介紹;
資源隔離方案簡介;
基于CGroup的資源隔離的實現;
使用Docker運行Storm集群介紹。
第九部份:Storm的實際應用案例分享
實時DAU計算實現;
實時用戶畫像;
實時個性化推薦;
廣告投放的精準化
第十部份:Storm使用經驗和性能優化
使用經驗;
性能優化建議;
自定義metric和性能數據收集
第十一部份:其他實時平臺介紹
JStorm介紹;
Spark Streaming介紹;
Heron介紹;
Flink介紹;
Storm和其他實時流處理框架的功能和性能對比 |