从零开始学stormPDF版完整免费版|百度网盘下载

小编点评:从零开始学习storm PDF版

从零开始学习Storm(第2版) 由基础知识、安装部署、研发与维护、进阶知识、企业应用5个模块组成。通过大量案例分析,读者可以在短时间内掌握。使用 Storm,他基于 Storm 构建并开发了自己的大数据处理平台。

相关内容部分预览

简介

从零开始学习Storm由基础知识、安装部署、研发与维护、进阶知识、企业应用5个模块组成,分为20章,其中“基础知识”、“安装部署”6个章节” 第4章,《研发与维护》第4章,

5章“进阶知识”和1章“企业应用”,分别介绍Storm的安装和配置、Storm的基本原理、Topology组件、Spout组件、Bolt组件、ZooKeeper集群、实战链接等,包括理论基础、环境搭建、研发准备、应用案例等。

从头开始学习 Storm 理论和实践。通过大量案例分析,读者可以在较短时间内掌握Storm的使用方法,并基于Storm构建和开发属于自己的大数据处理平台。

目录

第一章 Storm 简介
1.1 Storm 是什么
1.2 Storm 的诞生
1.2.1 从 Twitter 开始
1.2.2 Twitter 需要处理大量的大数据服务实时性要求高
1.2.3 Storm 帮助 Twitter 解决实时海量大数据处理问题
1.3 Storm 的成长
1.3.1 Storm 正式开源
1.3.2 Storm 的核心技术和基本组件
1.3. 3 Storm 的项目团队
1.3.4 Storm 的技术支持网站
1.4 Storm 的优势
1.4.1 集成多种技术
1.4.2 简单的API
1.4.3 可扩展的
1.4. 4 容错
1.4.5 保证数据处理
1.4.6 可以使用任何语言
1.4.7 易于部署和操作
1.4.8 免费和开源
1.5 应用状态Storm及发展趋势
1.5.1应用现状
1.5.2发展趋势
1.6如何学习Storm
1.7本书章节安排及学习建议
1.7.1本书章节编排
1.7.2 本书阅读建议
1.8章节总结
第2章Storm基础
2.1概念
2.1.1 Tuples
>2.1.2 Stream
2.1.3 Spout
2.1.4 Bolt
2.1.5 拓扑
2.1.6 Master 节点和 Worker 节点
2.1.7 Nimbus 进程和 Supervisor 进程
2.1.8 流分组
br>2.1.9 Worker
2.1.10 Task
2.1.11 Executor
2.1.12 Reliability
2.2 Storm 配置
2.2.1 Storm 配置口粮类型
2.2.2 defaults.yaml 文件
2.2.3storm .yaml 文件
2.2.4 配置类
2.3 序列化
2.3.1 动态类型
2.3.2 自定义序列化
2.3.3 Java 序列化
2.3.4 特定组件序列化注册
2.4 容错机制
2.4.1 工作进程死亡
2.4.2 节点死亡
2.4.3 Nimbus或主管守护进程死亡
2.4.4 Nimbus 是“单点”“点故障”
2.5 可靠性机制 - 保证消息处理
2.5.1 消息“完全处理”的含义
2.5 .2 如果消息被完全处理或无法完全处理会发生什么
br>2.5.3 Storm 如何保证可靠性
2.5.4 Storm 如何实现可靠性
2.5.5 调节可靠性
2.6 消息传输机制
2.6.1 ZeroMQ
2.6.2 Netty
2.6.3 自定义消息通信机制
2.7 Storm的开发环境和生产环境
2.7.1 开发环境和本地模式
2.7.2 生产环境nt 和远程模式
2.7. 3 开发和生产环境比较
2.8 Storm 拓扑的并行性
2.8.1 Worker 进程、执行器和任务
2.8.2 配置拓扑的并行性
2.8.3 拓扑示例
2.8. 4 如何更改正在运行的拓扑的并行度
2.9 Storm 命令行客户端
2.10 Javadoc 文档
2.11 章节摘要
第 3 章拓扑详细信息
3.1 什么是拓扑
3.2 TopologyBuilder< br>3.3 流分组
3.3.1 什么是流分组
3.3.2 流分组的不同方式
3.4 简单拓扑
3.5 在本地模式下运行拓扑
3.6 运行拓扑在生产集群上
3.6.1 常见配置
3.6.2 终止拓扑
3.6.3 更新正在运行的拓扑
3.6.4 监控拓扑
3.7 常见拓扑模式
3.7.1 流连接
3.7.2 批处理
3.7.3 BasicBolt
3.7.4 内存缓存和字段的组合
3.7.5 流顶部 N
3.7.6 TimeCacheMap (已弃用)有效地存储最近更新的缓存对象
3.7.7 CoordinatedBolt 和 KeyedFairBolt 用于分布式 RPC
3.8 本地模式和 StormSubmitter 对比
3 .9 多语言协议
3.10 使用非 JVM 语言操作 Storm
3.10 .1 支持的非Java语言
3.10.2 使用非Java语言配合Storm
3.10.3 实现非Java DSL的注意事项
3.11 Hook
3.12章节总结
章节4 组件详情
4.1 基本接口
4.1.1 IComponent 接口
4.1.2 ISpout 接口
4.1.3 IBolt 接口
4.1.4 IRichSpout 和 IRichBolt 接口
4.1.5 IBasicBolt接口
4.1.6 IStateSpout 和 IRichStateSpout 接口
4.2 Base 抽象类
4.2.1 BaseComponent 抽象类< br>4.2.2 BaseRichSpout 抽象类
4.2.3 BaseRichBolt 抽象类
4.2. 4 BaseBasicBolt 抽象类
4.3 事务接口
4.3.1 IPartitionedTransactionalSpout
4.3.2 IOpaquePartitionedTransactionalSpout
4.3 .3 ITransactionalSpout
4.3.4 ICommitterTransac tionalSpout
4.3.5 IBatchBolt
4.4 组件之间的相互关系
4.5 章节总结
第5章Spout详解
5.1 可靠与不可靠消息
5.2 Spout获取数据的方式
5.2 .1 直接连接(Direct Connection)
5.2.2 消息队列(入队消息)
5.2.3 DRPC(分布式 RPC)
5.3 通用 Spout
5.3.1 Kestrel 作为 Spout 数据源
5.3.2 AMQP 作为 Spout 数据源
5.3.3 JMS 作为 Spout 数据源
5.3.4 Redis 作为 Spout 数据源
5.3.5 beanstalkd 作为 Spout 数据源
5.4 学习编写Spout类
5.5章节总结
第6章Bolt详解
6. 1 螺栓概述
6.2 可靠和不可靠螺栓
6.2.1 使用锚定机制实现可靠螺栓
6.2.2 使用 IBasicBolt 接口实现自动确认
6.3 复合流和复合锚定
6.3.1复合流
6.3.2 复合锚定
6.4 用其他语言定义螺栓
6.5 学习编写螺栓类
6.5.1 可靠螺栓
6.5.2 不可靠螺栓
6.6 章节摘要
第7章ZooKeeper详解
7.1 ZooKeeper介绍
7.2 ZooKeeper下载与部署
7.2.1 ZooKeeper下载
7.2.2 ZooKeeper部署
7.3 ZooKeeper配置
7.4 ZooKeeper操作
7.5 ZooKeeper 本地模式实例
7.6 ZooKeeper 数据模型
7.6.1 ZNode
7.6.2 ZooKeeper 中的时间
7.6、 3 ZooKeeper的Stat结构
7.7 ZooKeeper命令行操作示例
7.8 ZooKeeper中Storm的目录结构
7.9本章小结
第8章基础软件安装与使用
8.1 Linux基础操作
8.1.1 环境变量
8.1.2 常用命令
8.2 JDK 下载与配置
8.2.1 Sun JDK 下载
8.2.2 Linux 下安装JDK
>8.2. 3 在 Windows 下安装 JDK
8.3 下载 GitHub 托管的项目
8.4 下载和配置 Maven
8.4.1 下载 Maven
8.4.2 在 Linux 下部署 Maven
8.4.3 在 Windows 下部署 Maven
8.5 其他软件 - Notepad++
8.6 章节总结
第 9 章 Storm 安装与配置
9.1 Storm 集群安装步骤及准备工作
9.1 .1 搭建 ZooKeeper 集群
9.1.2安装 Storm 的本地依赖项
9.1.3 下载和解压 Storm 分发包
9.1.4 配置storm.yaml 文件
9.1.5 启动Stor m daemon 操作步骤
9.2 Storm本地模式完整配置命令
9.3章节总结
第十章Storm集群搭建实践
10.1准备工作
10.1.1概述
10.1.2配置主机文件
10.1.3 配置静态IP
10.1.4 无密码集群SSH
10.1.5 修改主机名
10.1.6 关闭防火墙
10.1.7 同步时间
10.1. 8 安装JDK
10.2 搭建ZooKeeper集群
10.2.1 部署第一个节点
10.2.2 部署第i个节点
10.2.3 启动ZooKeeper集群
10.2.4查看 ZooKeeper 状态
10.2.5 关闭 ZooKeeper 集群
10.2.6 清理 ZooKeeper 集群
10.3 设置 Storm 集群
10.3.1 安装 Storm 依赖项(每个 Storm 节点)< br>10.3.2 部署第一个节点
10.3.3 部署第 i 个节点
10.3.4 启动 Storm 守护进程
10.4 章节总结
第 11 章准备 Storm 开发环境
11.1 Storm开发环境< br>11.1.1 Storm的开发环境是什么
11.1.2 Storm如何管理
11.1.3 如何提交拓扑到集群
11.2 Eclipse下载及配置
br>11.2.1 Eclipse 下载< br>11.2.2 Eclipse 配置与运行
11.2.3 Eclipse 插件安装
11.3 使用Maven 管理项目
11.3.1 Maven 下载与配置
11.3.2 配置pom。 xml 文件
11.3.3 运行 Maven 命令
11.4 使用 Nexus 构建本地 Maven 私有服务器
11.4.1 下载 Nexus
11.4.2 运行 Nexus
11.4.3 登录Nexus后台
11.4.4配置Repositories
11.4.5配置setting.xml文件
11.4.6修改Eclipse的Maven插件配置
11.5使用SVN管理代码版本
11.5.1 Windows下搭建SVN服务器
11.5.2 Linux下搭建SVN服务器
11.5.3 安装SVN客户端
11.6 部署单节点Storm集群
11.6.1 部署服务器伪分布式 ZooKeeper
11.6.2 部署伪分布式 Storm 集群
11.7 章节总结
第 12 章开发自己的 Storm 应用程序
12.1 创建新的 Maven 项目
12.2 修改适合的项目用于 Storm 开发
12.2.1 对包名称进行分类
12.2.2 修改 pom.xml 文件
>12.3 编写代码
12.3.1 编写 Spout 类
12.3.2 编写 Bolt 类< br>12.3.3 编写拓扑类
12 .4 运行本地测试
12.5 提交到Storm集群运行
12.5.1 使用Maven打包
12.5.2 提交jar包到集群
12.6章节总结
第13章Storm- starter 详解
13.1 Storm-starter 项目概述
13.2 Storm-starter 下载
13.3 使用 Maven 管理
13.3.1 使用 Maven 打包storm-starter
13.3.2 直接使用 Maven 运行 WordCountTopology
13.3.3 使用 Maven 运行单元测试
13.4 在 Eclipse 中运行
13.4.1 创建新 Maven 项目的方式
13.4.2 导入现有项目的方式
13.5 Storm-starter 的入口示例
13.5.1 ExclamationTopology
13.5.2 WordCountTopology< br>13.5.3 ReachTopology
13.6 Storm-starter 的其他示例
13.6.1 BasicDRPCTopology
13.6.2 ManualDRPC
13.6.3 PrintSampleStream
13.6.4 RollingTopWords
13.6.5 SingleJoinExample
13.6.6 TransactionalGlobalCount
13.6.7 TransactionalWords
13.7 章节摘要
第 14 章研发和集群管理技巧
14.1 使用daemo 使用ntools 监控Storm 进程
14.1.1 daemontools 简介
14.1.2 安装daemontools
14.1.3 编写监控脚本
14.2 使用Monit 监控Storm
14.2 .1 Monit 简介
14.2. 2 安装Monit
14.2.3 配置Monit
14.2.4 启动Monit
14.2.5 获取Monit帮助信息
14.3 常用集群操作命令
14.4 使用Storm的经验与建议
>14.5 章节总结
第 15 章 DRPC 详解
15.1 概述
15.2 DRPCTopologyBuilder
15.2.1 LinearDRPCTopologyBuilder
15.2.2 LinearDRPCTopologyBuilder 提供的方法
15.2.3 LinearDRPCTopologyBuilder 使用示例
>15.2.4 LinearDRPCTopologyBuilder 的工作原理
15.2.5 LinearDRPCTopologyBuilder 目前已弃用
15.3 本地模式下的 DRPC
15.4 远程模式下的 DRPC
15.5 复杂的 DRPC 示例(计算范围值)< br >15.6 非线性 DRPC
15.7 章节摘要
第 16 章事务拓扑详细信息
16.1 什么是事务拓扑
16.1.1 设计 1
16.1.2 设计 2
16.1. 3 设计 3(Storm 的设计)
16.2 事务拓扑的设计细节
16.3 事务拓扑的实现细节
16.3.1 事务 Spout 的工作原理 262
16.3.2 “对于给定的事务 id 不能发出相同的批处理”处理
16.3.3 更多详细信息
16.4 事务拓扑 API
16.4.1 螺栓
16.4.2 事务 Spout
16.4.3 配置
>16.5 事务拓扑构建器
16.5.1 TransactionalTopologyBuilder 提供的方法
16.5.2 TransactionalTopologyBuilder 类已弃用
16.6 一个简单的例子< br>16.7 章节总结
第 17 章 Trident 详细信息
17.1 Trident 概述
17.1.1简单示例 - 字数 (TridentWordCount)
17.1.2 另一个示例 - 计算到达值 (TridentReach)
17.1.3 字段和元组
17.1.4 状态
17.1.5 Trident 拓扑执行
br>17.2 Trident API
17.2.1 概述
17.2. 2 本地分区操作
17.2.3 重新分区操作
17.2.4 聚合操作
17.2.5 流组操作
17.2.6 合并和加入
17.3 三叉戟状态
17.3 .1 Trident 状态分类
17.3.2 事务性 Spout(事务性 Spout)
17.3.3 不透明事务性 Spout(不透明事务性 Spout)
17.3.4 非事务性 Spout(非事务性 Spout)
17.3 . 5 Spout 和 State 之间的连接
17.3.6 State API
17.3.7 persistentAggregate 方法
17.3.8 实现 MapStates
17.4 Trident Spout
17.4.1 流水线
17.4.2 类型Trident Spout
17.5 章节总结
第 18 章 Storm 的内部实现
18.1 文件系统分析
18.2 数据目录结构
18.2.1 Nimbus 节点目录结构
18.2.2 Supervisor 节点目录结构
18.3 代码库结构
18.3.1storm.thrift
18.3.2 Java 接口
18.3.3 实现
18.4 拓扑周期
18.4.1 启动拓扑
18.4.2 监视器Topology
18.4.3 Kill Topology
18.5 Acking 框架的实现
18.5.1 XOR 计算的基础知识
18.5 .2 Acking 框架的实现原理
18.5.3 Acker 的执行方法
18.5.4 待定元组(pending tuple)和RotatingMap
18.6 Metric
18.7 章节总结
第19章其他Storm相关项目
19.1 JStorm项目
19.1.1项目介绍
19.1 .2 下载部署
19.1.3 源码编译
19.2storm-deploy项目
19.3 Storm和Kafka
19.3.1 Kafka简介
19.3.2 Kafka安装
19.3 .3 启动服务< br>19.3.4 试运行
19.3.5 Storm和Kafka项目
19.4storm-kestrel项目334
19.4.1 Storm-kestrel项目介绍
19.4.2使用Storm-kestrel 项目
br>19.4.3 Kestrel 服务器和队列
19.4.4 向 Kestrel 添加元素
19.4.5 从 Kestrel 中删除元素
19.4.6 不断向 Kestrel 添加元素
19.4.7 使用 KestrelSpout
19.4.8 执行
19.5章节总结
第20章企业应用案例
20.1风暴席卷众多互联网公司
20.1.1风暴典型应用场景
20.1.2风暴三大基本应用
20.2应用Twitter 中的 Storm
20.2.1 Twitter 公司介绍
20.2.2 Storm 帮助 Twitter 提升产品性能
20.2.3 MapR 在 Twitter 中的应用介绍
>20.3 Storm 在阿里巴巴集团中的应用
20.3.1 阿里巴巴集团简介
20.3.2 Storm在阿里巴巴的应用
20.3.3 Storm在淘宝公司的应用
20.3.4 Storm在支付宝的应用
20.4 其他-使用Storm的知名企业和项目
20.5本章小结

风暴入门书籍

看了一部分书,突然发现Shopee的PDF(我的Storm学习笔记是为了看他的文章)里面很多内容都来自这本书。
存储需要结构化和运行,需要编写大量代码。
并行度(parallelism)表示一个组件的初始执行器数量,具体的进程和线程的数量在使用过程中可以动态调整,这叫做再平衡。这可以通过 CLI 或 Storm Web UI 完成。
流分组方式:
* Fields:字段分组;
* global:全局分组;
* shuffle:随机分组;
* localOrShuffle:局部或随机分组;
* None:不分组;
* 全部:广播分组;
* Direct:直接分组;
* 自定义:自定义分组。
Spout 有三种获取数据的方式:直连、消息队列和 DRPC。
直接连接方式:建议从Spout创建到数据源的连接。
消息队列:作为Spout和消息源的中间件,但也增加了一个故障点。
因为以后会应用环境进行实际测试,所以简单浏览一下。
Zookeeper不是用来传输大数据的,所以如果数据量很大,建议在Zookeeper中只保存指针。
要构建 Storm 集群,首先需要构建 ZooKeeper 集群。
Storm的starter感觉还是太简单了,但是后续需要详细研究,因为例子里面包含了所有类型的应用,我们只要把它复杂一点就行了。
通过书中介绍的简单案例发现,日志分析其实还是比较简单的,但是后续的聚合和统计还需要研究分析。
以下章节将介绍计划使用的计算引擎JStorm。
我已经完整阅读了它,但我仍然需要在实践中使用它并对其进行测试以更好地理解它。

阅读剩余
THE END