第1章 搭建开发环境 1
1.1 简介 1
1.2 搭建开发环境 1
1.3 分布式版本控制 3
1.4 创建“Hello World”Topology 6
1.5 创建Stom集群——配置机器 12
1.6 创建Storm集群——配置Storm 18
1.7 获取基本的点击率统计信息 23
1.8 对Bolt进行单元测试 31
1.9 实现集成测试 34
1.10 将产品部署到集群 37
第2章 日志流处理 38
2.1 简介 38
2.2 创建日志代理 38
2.3 创建日志Spout 40
2.4 基于规则的日志流分析 45
2.5 索引与持久化日志数据 49
2.6 统计与持久化日志统计信息 53
2.7 为日志流集群创建集成测试 55
2.8 创建日志分析面板 59
第3章 使用Trident计算单词重要度 71
3.1 简介 71
3.2 使用Twitter过滤器创建URL流 71
3.3 从文件中获取整洁的词流 76
3.4 计算每个单词的相对重要度 81
第4章 分布式远程过程调用 85
4.1 简介 85
4.2 通过DPRC实现所需处理流程 85
4.3 对Trident Topology进行集成测试 90
4.4 实现滚动窗口Topology 95
4.5 在集成测试中模拟时间 98
第5章 在不同语言中实现Topology 100
5.1 简介 100
5.2 在Qt中实现多语言协议 100
5.3 在Qt中实现SplitSentence Bolt 105
5.4 在Ruby中实现计数Bolt 108
5.5 在Clojure中实现单词计数Topology 109
第6章 Storm与Hadoop集成 113
6.1 简介 113
6.2 在Hadoop中实现TF-IDF算法 115
6.3 持久化来自Storm的文件 121
6.4 集成批处理与实时视图 122
第7章 实时机器学习 127
7.1 简介 127
7.2 实现事务性Topology 129
7.3 在R中创建随机森林分类模型 134
7.4 基于随机森林的事务流业务分类 143
7.5 在R中创建关联规则模型 149
7.6 创建推荐引擎 152
7.7 实时在线机器学习 157
第8章 持续交付 162
8.1 简介 162
8.2 搭建CI服务器 162
8.3 搭建系统环境 164
8.4 定义交付流水线 166
8.5 实现自动化验收测试 170
第9章 在AWS 上部署Storm 177
9.1 简介 177
9.2 使用Pallet在AWS上部署Storm 177
9.3 搭建虚拟私有云 181
9.4 使用Vagrant在虚拟私有云上部署Storm 189