定 价:¥69.00
作 者: | 肖恩T.艾伦,马修·扬科夫斯基 |
出版社: | 机械工业出版社 |
丛编项: | |
标 签: | 暂缺 |
ISBN: | 9787111586210 | 出版时间: | 2018-01-01 | 包装: | |
开本: | 页数: | 字数: |
目 录?Contents
\n译者序
\n序
\n前言
\n致谢
\n关于本书
\n关于原书封面插图
\n第1章 Storm简介 1
\n1.1 什么是大数据 1
\n1.1.1 大数据的四大特性 2
\n1.1.2 大数据工具 3
\n1.2 Storm如何应用于大数据应用场景 5
\n1.3 为什么你希望使用Storm 9
\n1.4 小结 10
\n第2章 Storm核心概念 11
\n2.1 问题定义:GitHub提交数监控看板 11
\n2.1.1 数据:起点和终点 12
\n2.1.2 分解问题 12
\n2.2 Storm基础概念 13
\n2.2.1 拓扑 13
\n2.2.2 元组 15
\n2.2.3 流 16
\n2.2.4 spout 17
\n2.2.5 bolt 18
\n2.2.6 流分组 20
\n2.3 在Storm中实现GitHub提交数监控看板 22
\n2.3.1 建立一个Storm工程 22
\n2.3.2 实现spout 23
\n2.3.3 实现bolt 26
\n2.3.4 集成各个部分组成拓扑 29
\n2.4 小结 30
\n第3章 拓扑设计 31
\n3.1 拓扑设计方法 32
\n3.2 问题定义:一个社交热力图 32
\n3.3 将解决方案映射至Storm的逻辑 33
\n3.3.1 考虑数据流本身施加的要求 33
\n3.3.2 将数据点表示为元组 34
\n3.3.3 确定拓扑组成的步骤 35
\n3.4 设计的初步实现 38
\n3.4.1 spout:从数据源读取数据 38
\n3.4.2 bolt:连接至外部服务 39
\n3.4.3 bolt:将数据寄放在内存里 41
\n3.4.4 bolt:持久化存储到数据库 45
\n3.4.5 定义组件间的流分组策略 47
\n3.4.6 在本地集群模式中构建一个拓扑 48
\n3.5 扩展拓扑 49
\n3.5.1 理解Storm中的并行机制 50
\n3.5.2 调整拓扑配置来解决设计中遗留的瓶颈 54
\n3.5.3 调整拓扑以解决数据流中固有的瓶颈 60
\n3.6 拓扑的设计范式 63
\n3.6.1 分解为功能组件的设计方法 65
\n3.6.2 基于重分配来分解组件的设计方法 65
\n3.6.3 最简单的功能组件与最少的重分配次数 69
\n3.7 小结 70
\n第4章 设计健壮的拓扑 71
\n4.1 对可靠性的要求 71
\n4.2 问题定义:一个信用卡授权系统 72
\n4.2.1 有重试特性的概念性解决方案 72
\n4.2.2 定义数据点 74
\n4.2.3 在Storm上实现带有重试特性的方案 74
\n4.3 bolt基础实现 76
\n4.3.1 AuthorizeCreditCard的实现 76
\n4.3.2 ProcessedOrderNotification的实现 77
\n4.4 消息处理保障 78
\n4.4.1 元组状态:处理完成或失败 78
\n4.4.2 bolt中的锚定、应答和容错 80
\n4.4.3 spout在消息处理保障中的角色 84
\n4.5 回放语义 87
\n4.5.1 Storm中可靠性的级别 87
\n4.5.2 在Storm拓扑中检查仅一次处理 88
\n4.5.3 检查拓扑中的可靠性保障 89
\n4.6 小结 94
\n第5章 拓扑由本地到远程的实施 95
\n5.1 Storm集群 96
\n5.1.1 解析工作结点 98
\n5.1.2 基于信用卡授权拓扑的上下文来理解工作结点 99
\n5.2 Storm集群容错中的快速失败机制 100
\n5.3 安装Storm集群 101
\n5.3.1 配置Zookeeper集群 101
\n5.3.2 在 Storm 的主结点和工作结点上安装依赖组件 102
\n5.3.3 安装Storm到主结点和工作结点 102
\n5.3.4 通过storm.yaml配置主结点和工作结点 102
\n5.3.5 在监督机制下启动Nimbus和Supervisor 103
\n5.4 在Storm集群上运行拓扑 104
\n5.4.1 重新考虑如何将拓扑组件组合在一起 104
\n5.4.2 在本地模式下运行拓扑 105
\n5.4.3 在一个远程 Storm 集群上运行拓扑 105
\n5.4.4 在一个远程Storm集群上部署拓扑 106
\n5.5 Storm UI及其在集群中的角色 107
\n5.5.1 Storm UI:Storm集群概要 107
\n5.5.2 Storm UI:独立拓扑概要 111
\n5.5.3 Storm UI:独立spout/bolt概要 115
\n5.6 小结 118
\n第6章 对Storm进行调优 120
\n6.1 问题定义:Daily Deals!重生版 121
\n6.1.1 创建概念性解决方案 121
\n6.1.2 将方案转换为Storm设计 122
\n6.2 初始化实施 122
\n6.2.1 spout:读取自一个数据源 124
\n6.2.2 bolt:查找推荐商品 125
\n6.2.3 bolt:为每个商品查询详细信息 126
\n6.2.4 bolt:保存推荐的商品详情 127
\n6.3 调优:我想为它提速 128
\n6.3.1 Storm UI:调优的定位工具 128
\n6.3.2 为性能值建立一个基线集 130
\n6.3.3 判断瓶颈 131
\n6.3.4 spout:控制数据流入拓扑的速率 135
\n6.4 延迟率:当外部系统依然能正常工作时 137
\n6.4.1 在拓扑中模拟延迟 137
\n6.4.2 延迟的外因和内因 139
\n6.5 Storm的指标统计API 143
\n6.5.1 使用Storm的内建
\nCountMetric 143
\n6.5.2 设置一个指标接收器 144
\n6.5.3 创建一个自定义的SuccessRateMetric 145
\n6.5.4 创建一个自定义的MultiSuccessRateMetric 147
\n6.6 小结 149
\n第7章 资源冲突 150
\n7.1 调整一个工作结点上运行的工作进程数量 152
\n7.1.1 问题 152
\n7.1.2 解决方案 152
\n7.1.3 讨论 153
\n7.2 修改工作进程(JVM)上的内存分配 153
\n7.2.1 问题 153
\n7.2.2 解决方案 154
\n7.2.3 讨论 154
\n7.3 定位拓扑上运行的工作结点/进程 154
\n7.3.1 问题 154
\n7.3.2 解决方案 155
\n7.3.3 讨论 155
\n7.4 在一个Storm集群中的工作进程冲突 156
\n7.4.1 问题 157
\n7.4.2 解决方案 157
\n7.4.3 讨论 158
\n7.5 在一个工作进程(JVM)中的内存冲突 159
\n7.5.1 问题 162
\n