当前位置:主页 > 计算机电子书 > 计算机理论 > Storm pdf电子书
从零开始学Storm

从零开始学Storm PDF 高清版

  • 更新:2020-09-21
  • 大小:81.2 MB
  • 类别:Storm
  • 作者:赵必厦、程丽明
  • 出版:清华大学出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

从零开始学Storm》是由清华大学出版社出版的一本关于Storm方面的书籍,作者是赵必厦、程丽明,主要介绍了关于从零开始、Storm方面的知识内容,目前在Storm类书籍综合评分为:9.1分。

书籍介绍

从零开始学Storm由基础知识、安装与部署、研发与维护、进阶知识、企业应用5个模块构成,并细分为20个章节,其中“基础知识”6章、“安装与部署”4章、“研发与维护”4章、“进阶知识”5章、“企业应用”1章,分别介绍了Storm的安装与配置、Storm的基本原理、Topology组件、Spout组件、Bolt组件、ZooKeeper集群、实战环节等内容,包括理论基础、环境搭建、研发准备、应用案例等。

从零开始学Storm理论联系实际,通过大量实例分析,让读者在较短的时间内掌握Storm的使用,搭建并研发出自己的基于Storm的大数据处理平台。

目录

  • 第1章 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 元组(Tuple)
  • 2.1.2 流(Stream)
  • 2.1.3 喷口(Spout)
  • 2.1.4 螺栓(Bolt)
  • 2.1.5 拓扑(Topology)
  • 2.1.6 主控节点与工作节点
  • 2.1.7 Nimbus进程与Supervisor进程
  • 2.1.8 流分组(Stream grouping)
  • 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.3 storm.yaml文件
  • 2.2.4 Config类
  • 2.3 序列化(Serialization)
  • 2.3.1 动态类型
  • 2.3.2 自定义序列化
  • 2.3.3 Java序列化
  • 2.3.4 特定组件序列化注册
  • 2.4 容错机制
  • 2.4.1 Worker进程死亡
  • 2.4.2 节点死亡
  • 2.4.3 Nimbus或者Supervisor守护进程死亡
  • 2.4.4 Nimbus是否是“单点故障”的
  • 2.5 可靠性机制——保证消息处理
  • 2.5.1 消息被“完全处理”的含义
  • 2.5.2 如果一个消息被完全处理或完全处理失败会发生什么
  • 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 生产环境与远程模式
  • 2.7.3 开发环境与生产环境的对比
  • 2.8 Storm拓扑的并行度(parallelism)
  • 2.8.1 工作进程、执行器和任务
  • 2.8.2 配置拓扑的并行度
  • 2.8.3 拓扑示例
  • 2.8.4 如何改变运行中拓扑的并行度
  • 2.9 Storm命令行客户端
  • 2.10 Javadoc文档
  • 2.11 本章小结
  • 第3章 拓扑详解
  • 3.1 什么是拓扑
  • 3.2 TopologyBuilder
  • 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 流连接(Stream Join)
  • 3.7.2 批处理(Batching)
  • 3.7.3 BasicBolt
  • 3.7.4 内存中缓存与字段的组合
  • 3.7.5 流的top N
  • 3.7.6 高效保存最近更新缓存对象的TimeCacheMap(已弃用)
  • 3.7.7 分布式RPC的CoordinatedBolt与KeyedFairBolt
  • 3.8 本地模式与StormSubmitter的对比
  • 3.9 多语言协议(Multi-Language Protocol)
  • 3.10 使用非JVM语言操作Storm
  • 3.10.1 支持的非Java语言
  • 3.10.2 对Storm使用非Java语言
  • 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 基本抽象类
  • 4.2.1 BaseComponent抽象类
  • 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 ICommitterTransactionalSpout
  • 4.3.5 IBatchBolt
  • 4.4 组件之间的相互关系
  • 4.5 本章小结
  • 第5章 Spout详解
  • 5.1 可靠的与不可靠的消息
  • 5.2 Spout获取数据的方式
  • 5.2.1 直接连接(Direct Connection)
  • 5.2.2 消息队列(Enqueued Messages)
  • 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 Bolt概述
  • 6.2 可靠的与不可靠的Bolt
  • 6.2.1 使用Anchoring机制实现可靠的Bolt
  • 6.2.2 使用IBasicBolt接口实现自动确认
  • 6.3 复合流与复合Anchoring
  • 6.3.1 复合流
  • 6.3.2 复合Anchoring
  • 6.4 使用其他语言定义Bolt
  • 6.5 学习编写Bolt类
  • 6.5.1 可靠的Bolt
  • 6.5.2 不可靠的Bolt
  • 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 Storm在ZooKeeper中的目录结构
  • 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 启动Storm的守护进程
  • 9.2 本地模式的Storm完整的配置命令
  • 9.3 本章小结
  • 第10章 Storm集群搭建实践
  • 10.1 准备工作
  • 10.1.1 概述
  • 10.1.2 配置hosts文件
  • 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节点)
  • 10.3.2 部署第一个节点
  • 10.3.3 部署第i个节点
  • 10.3.4 启动Storm守护进程
  • 10.4 本章小结
  • 第11章 准备Storm的开发环境
  • 11.1 Storm的开发环境
  • 11.1.1 什么是Storm的开发环境
  • 11.1.2 如何管理Storm
  • 11.1.3 如何提交拓扑到集群
  • 11.2 Eclipse的下载与配置
  • 11.2.1 Eclipse的下载
  • 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类
  • 12.3.3 编写Topology类
  • 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
  • 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 使用daemontools监控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例子(计算reach值)
  • 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不能发射相同的Batch”的处理
  • 16.3.3 更多的细节
  • 16.4 事务拓扑API
  • 16.4.1 Bolt
  • 16.4.2 事务Spout
  • 16.4.3 配置
  • 16.5 TransactionalTopologyBuilder
  • 16.5.1 TransactionalTopologyBuilder提供的方法
  • 16.5.2 TransactionalTopologyBuilder类已弃用
  • 16.6 一个简单的例子
  • 16.7 本章小结
  • 第17章 Trident详解
  • 17.1 Trident概述
  • 17.1.1 简单的例子——单词统计(TridentWordCount)
  • 17.1.2 另一个例子——计算Reach值(TridentReach)
  • 17.1.3 字段和元组
  • 17.1.4 状态(State)
  • 17.1.5 Trident拓扑的执行
  • 17.2 Trident API
  • 17.2.1 概述
  • 17.2.2 本地分区操作
  • 17.2.3 重新分区操作
  • 17.2.4 聚合操作
  • 17.2.5 流分组操作
  • 17.2.6 合并与连接
  • 17.3 Trident的状态
  • 17.3.1 Trident状态分类
  • 17.3.2 事务Spout(Transactional Spout)
  • 17.3.3 不透明事务Spout(Opaque Transactional Spout)
  • 17.3.4 非事务Spout(Non-transactional 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 流水线(Pipelining)
  • 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.1 storm.thrift
  • 18.3.2 Java接口
  • 18.3.3 实现
  • 18.4 拓扑的生命周期
  • 18.4.1 启动拓扑
  • 18.4.2 监控拓扑
  • 18.4.3 杀死拓扑
  • 18.5 Acking框架的实现
  • 18.5.1 异或计算的基本原理
  • 18.5.2 Acking框架的实现原理
  • 18.5.3 Acker的execute方法
  • 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.2 storm-deploy项目
  • 19.3 Storm与Kafka
  • 19.3.1 Kafka简介
  • 19.3.2 Kafka的安装
  • 19.3.3 启动服务
  • 19.3.4 测试运行
  • 19.3.5 Storm与Kafka的项目
  • 19.4 storm-kestrel项目 334
  • 19.4.1 storm-kestrel项目简介
  • 19.4.2 使用storm-kestrel项目
  • 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 Storm席卷众多互联网企业
  • 20.1.1 Storm的典型应用场景
  • 20.1.2 Storm的三大基本应用
  • 20.2 Storm在Twitter中的应用
  • 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 本章小结
  • 参考资料

资源获取

资源地址1:https://pan.baidu.com/s/1b2IKy1L_0h8Q0p49Y4-CQw(密码:cohk)

相关资源

网友留言