译者序
前言
作者简介
第1章 分布式单词计数
1.1 Storm topology的组成部分--stream、spout和bolt
1.1.1 stream
1.1.2 spout
1.1.3 bolt
1.2 单词计数topology的数据流
1.2.1 语句生成spout
1.2.2 语句分割bolt
1.2.3 单词计数bolt
1.2.4 上报bolt
1.3 实现单词计数topology
1.3.1 配置开发环境
1.3.2 实现SentenceSpout
1.3.3 实现语句分割bolt
1.3.4 实现单词计数bolt
1.3.5 实现上报bolt
1.3.6 实现单词计数topology
1.4 Storm的并发机制
1.4.1 WordCountTopology的并发机制
1.4.2 给topology增加worker
1.4.3 配置executor和task
1.5 理解数据流分组
1.6 有保障机制的数据处理
1.6.1 spout的可靠性
1.6.2 bolt的可靠性
1.6.3 可靠的单词计数
总结
第2章 配置Storm集群
2.1 Storm集群的框架
2.1.1 理解nimbus守护进程
2.1.2 supervisor守护进程的工作方式
2.1.3 Apache ZooKeeper简介
2.1.4 Storm的DRPC服务工作机制
2.1.5 Storm UI
2.2 Storm技术栈简介
2.2.1 Java和Clojure
2.2.2 Python
2.3 在Linux上安装Storm
2.3.1 安装基础操作系统
2.3.2 安装Java
2.3.3 安装ZooKeeper
2.3.4 安装Storm
2.3.5 运行Storm守护进程
2.3.6 配置Storm
2.3.7 必需的配置项
2.3.8 可选配置项
2.3.9 Storm可执行程序
2.3.10 在工作站上安装Storm可执行程序
2.3.11 守护进程命令
2.3.12 管理命令
2.3.13 本地调试/开发命令
2.4 把toplogy提交到集群中
2.5 自动化集群配置
2.6 Puppet的快速入门
2.6.1 Puppet manifest文件
2.6.2 Puppet类和模块
2.6.3 Puppet模板
2.6.4 使用Puppet Hiera来管理环境
2.6.5 介绍Hiera
总结
第3章 Trident和传感器数据
3.1 使用场景
3.2 Trident topology
3.3 Trident spout
3.4 Trident运算
3.4.1 Trident filter
3.4.2 Trident function
3.5 Trident聚合器
3.5.1 CombinerAggregator
3.5.2 ReducerAggregator
3.5.3 Aggregator
3.6 Trident状态
3.6.1 重复事务型状态
3.6.2 不透明型状态
3.7 执行topology
总结
第4章 实时趋势分析
4.1 应用场景
4.2 体系结构
4.2.1 数据源应用程序
4.2.2 logback Kafka appender
4.2.3 Apache Kafka
4.2.4 Kafka spout
4.2.5 XMPP服务器
4.3 安装需要的软件
4.3.1 安装Kafka
4.3.2 安装OpenFire
4.4 示例程序
4.5 日志分析topology
4.5.1 Kafka spout
4.5.2 JSON project function
4.5.3 计算移动平均值
4.5.4 添加一个滑动窗口
4.5.5 实现滑动平均function
4.5.6 按照阈值进行过滤
4.5.7 通过XMPP发送通知
4.6 最终的topology
4.7 运行日志分析topology
总结
第5章 实时图形分析
5.1 使用场景
5.2 体系结构
5.2.1 Twitter客户端
5.2.2 Kafka spout
5.2.3 Titan分布式图形数据库
5.3 图形数据库简介
5.3.1 访问图--TinkerPop栈
5.3.2 使用Blueprints API操作图形
5.3.3 通过Gremlin shell操作图形
5.4 软件安装
5.5 使用Cassandra存储后端设置Titan
5.5.1 安装Cassandra
5.5.2 使用Cassandra后端启动Titan
5.6 图数据模型
5.7 连接Twitter数据流
5.7.1 安装Twitter4J客户端
5.7.2 OAuth配置
5.7.3 TwitterStreamConsumer类
5.7.4 TwitterStatusListener类
5.8 Twitter graph topology
5.9 实现GraphState
5.9.1 GraphFactory
5.9.2 GraphTupleProcessor
5.9.3 GraphStateFactory
5.9.4 GraphState
5.9.5 GraphUpdater
5.10 实现GraphFactory
5.11 实现GraphTupleProcessor
5.12 组合成TwitterGraphTopology类
5.13 使用Gremlin查询图
总结
第6章 人工智能
6.1 为应用场景进行设计
6.2 确立体系结构
6.2.1 审视设计中的挑战
6.2.2 实现递归
6.2.3 解决这些挑战
6.3 实现体系结构
6.3.1 数据模型
6.3.2 检视Recursive Topology
6.3.3 队列交互
6.3.4 function和filter
6.3.5 研究Scoring Topology
6.3.6 分布式远程命令调用(DRPC)
总结
第7章 整合Druid进行金融分析
7.1 使用场景
7.2 集成一个非事务系统
7.3 topology
7.3.1 spout
7.3.2 filter
7.3.3 状态设计
7.4 实现体系结构
7.4.1 DruidState
7.4.2 实现StormFirehose对象
7.4.3 在ZooKeeper中实现分片状态
7.5 执行实现的程序
7.6 检视分析过程
总结
第8章 自然语言处理
8.1 Motivating Lambda结构
8.2 研究使用场景
8.3 实现Lambda architecture
8.4 为应用场景设计topology
8.5 设计的实现
8.5.1 TwitterSpout/TweetEmitter
8.5.2 function
8.6 检视分析逻辑
8.7 Hadoop
8.7.1 MapReduce概览
8.7.2 Druid安装
总结
第9章 在Hadoop上部署Storm进行广告分析
9.1 应用场景
9.2 确定体系结构
9.2.1 HDFS简介
9.2.2 YARN简介
9.3 配置基础设施
9.3.1 Hadoop基础设施
9.3.2 配置HDFS
9.4 部署分析程序
9.4.1 以Pig为基础执行批处理分析
9.4.2 在Storm-YARN基础上执行实时分析
9.5 执行分析
9.5.1 执行批处理分析
9.5.2 执行实时分析
9.6 部署topology
9.7 执行toplogy
总结
第10章 云环境下的Storm
10.1 Amazon Elastic Compute Cloud简介
10.1.1 建立AWS帐号
10.1.2 AWS管理终端
10.1.3 手工启动一个EC2实例
10.2 Apache Whirr简介
10.3 使用Whirr配置Storm集群
10.4 Whirr Storm简介
10.5 Vagrant简介
10.5.1 安装Vagrant
10.5.2 创建第一个虚拟机
10.6 生成Storm安装准备脚本
10.6.1 ZooKeeper
10.6.2 Storm
10.6.3 Supervisord
总结