第一部份:实时计算平台介绍
介绍实时系统主要解决的业务问题和面临的挑战;
简要介绍实时平台的主要组件和构成,实时数据的收集通道和数据交互方式
实时数据核心组件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和其他实时流处理框架的功能和性能对比 |