从零开始学 Storm-(第2版)

本书特色

[

本书由基础知识、安装与部署、研发与维护、进阶知识、企业应用5个模块构成,并细分为20个章节,其中“基础知识”6章、“安装与部署”4章、“研发与维护”4章、“进阶知识”5章、“企业应用”1章,分别介绍了storm的基本原理、topology组件、spout组件、bolt组件、zookeeper集群、storm的安装与配置、实战环节等内容,包括理论基础、环境搭建、研发准备、企业应用等。
本书理论联系实际,通过大量实例分析,让读者在较短的时间内掌握storm的使用,搭建并研发出自己的基于storm的大数据处理平台。
本书适合所有大数据处理、实时流数据处理、storm的开发者或爱好者,也适合高等院校和培训学校相关专业的师生参考使用。

]

内容简介

[

本书是作者理论研究与实践操作的成果,较深入的探讨了storm的理论基础与实践应用,语言通俗易懂,适用于各类大数据、storm开发者,爱好者。使读者在较短的时间内系统掌握storm的理论基础,面向linux平台,搭建与研发自己的基于storm的大数据处理平台。
 

]

作者简介

[

赵必厦,硕士,具有多年的面向对象语言研发经验,熟练掌握C 、Java、C#等面向对象语言,专注于云计算、大数据、互联网等方面的研究与研发工作,积累了丰富的经验。程丽明,硕士,目前从事服务器虚拟化与云计算构建、信息化安全的研究和产品开发工作。有多年的项目开发经验,研究兴趣包括虚拟化、云计算、SDN、移动办公安全等。

]

目录

目 录第1章  storm简介1.1  什么是storm 11.2  storm的诞生 31.2.1  从twitter说起 31.2.2  twitter需要处理大批实时性要求高的大数据业务 31.2.3  storm帮助twitter解决实时海量大数据处理问题 41.3  storm的成长 51.3.1  storm正式开源51.3.2  apache接管并孵化storm 51.3.3  storm的核心技术和基本组成 61.3.4  storm的项目小组71.3.5  storm的技术支持网站 101.4  storm的优势 131.4.1  集成多种技术 131.4.2  简单的api 131.4.3  可扩展的 141.4.4  容错的 141.4.5  保证数据处理 141.4.6  可以使用任何语言141.4.7  部署和操作简单 151.4.8  自由开源 151.5  storm的应用现状和发展趋势 151.5.1  应用现状 161.5.2  发展趋势 181.6  如何学习storm 201.7  本书的章节安排及学习建议211.7.1  本书的章节安排 211.7.2  关于如何阅读本书的建议 221.8  本章小结 23第 2 章  storm的基本知识2.1  概念 242.1.1  元组(tuple) 242.1.2  流(stream) 252.1.3  龙卷(spout) 262.1.4  闪电(bolt) 272.1.5  拓扑(topology) 272.1.6  主控节点与工作节点282.1.7  nimbus进程与supervisor进程 282.1.8  流分组(streamgrouping) 282.1.9  工作进程(worker) 282.1.10  任务(task) 282.1.11  执行器(executor) 282.1.12  可靠性(reliability) 292.2  storm的配置 292.2.1  storm的配置类型292.2.2  defaults.yaml文件 302.2.3  storm.yaml文件 332.2.4  config类 342.3  序列化(serialization) 352.3.1  动态类型 362.3.2  自定义序列化 362.3.3  java序列化 372.3.4  特定组件序列化注册372.4  容错机制 372.4.1  worker进程死亡372.4.2  节点死亡 382.4.3  nimbus或者supervisor守护进程死亡 382.4.4  nimbus是否是“单点故障” 382.5  可靠性机制——保证消息处理 382.5.1  消息被“完全处理”的含义 382.5.2  如果一个消息被完全处理或完全处理失败会发生什么 392.5.3  storm如何保证可靠性 402.5.4  storm如何实现可靠性 432.5.5  调节可靠性 442.6  消息传输机制 452.6.1  zeromq 452.6.2  netty 452.6.3  自定义消息通信机制452.7  storm的开发环境与生产环境 462.7.1  开发环境与本地模式462.7.2  生产环境与远程模式462.7.3  开发环境与生产环境的对比 472.8  storm拓扑的并行度(parallelism) 482.8.1  工作进程、执行器和任务 482.8.2  配置拓扑的并行度492.8.3  拓扑示例 502.8.4  如何改变运行中拓扑的并行度 512.9  storm命令行客户端522.10  javadoc文档562.11  本章小结 56第 3 章  拓扑详解3.1  什么是拓扑 573.2  topologybuilder 573.3  流分组 593.3.1  什么是流分组 593.3.2  不同的流分组方式603.4  一个简单的拓扑 643.5  在本地模式下运行拓扑673.6  在生产集群上运行拓扑683.6.1  常见的配置 703.6.2  杀死拓扑 703.6.3  更新运行中的拓扑713.6.4  监控拓扑 713.7  拓扑的常见模式 713.7.1  流连接(streamjoin) 713.7.2  批处理(batching) 723.7.3  basicbolt 723.7.4  内存中缓存与字段的组合 723.7.5  流的top n 723.7.6  高效保存*近更新缓存对象的timecachemap(已弃用) 743.7.7  分布式rpc的coordinatedbolt与keyedfairbolt 753.8  本地模式与stormsubmitter的对比 753.9  多语言协议(multi-languageprotocol) 773.10  使用非jvm语言操作storm 813.10.1  支持的非java语言 813.10.2  对storm使用非java语言 813.10.3  实现非javadsl的笔记 823.11  hook 823.12  本章小结 83第 4 章  组件详解4.1  基本接口 844.1.1  icomponent接口 844.1.2  ispout接口854.1.3  ibolt接口 864.1.4  irichspout与irichbolt接口 884.1.5  ibasicbolt接口 884.1.6  istatespout与irichstatespout接口 894.2  基本抽象类 904.2.1  basecomponent抽象类 904.2.2  baserichspout抽象类 904.2.3  baserichbolt抽象类 914.2.4  basebasicbolt抽象类 924.3  事务接口 924.3.1  ipartitionedtransactionalspout 924.3.2 iopaquepartitionedtransactionalspout 944.3.3  itransactionalspout 954.3.4  icommittertransactionalspout 964.3.5  ibatchbolt 974.4  组件之间的相互关系 974.5  本章小结 98第 5 章  spout详解5.1  可靠的与不可靠的消息995.2  spout获取数据的方式1025.2.1  直接连接(directconnection) 1025.2.2  消息队列(enqueuedmessages) 1035.2.3  drpc(分布式rpc) 1045.3  常用的spout 1045.3.1  kestrel作为spout的数据源 1045.3.2  amqp作为spout的数据源 1045.3.3  jms作为spout的数据源 1055.3.4  redis作为spout的数据源 1055.3.5  beanstalkd作为spout的数据源 1055.4  学习编写spout类 1055.5  本章小结 106第 6 章  bolt详解6.1  bolt概述 1076.2  可靠的与不可靠的bolt1086.2.1  使用anchoring机制实现可靠的bolt 1086.2.2  使用ibasicbolt接口实现自动确认 1096.3  复合流与复合anchoring1106.3.1  复合流 1106.3.2  复合anchoring1106.4  使用其他语言定义bolt1116.5  学习编写bolt类 1116.5.1  可靠的bolt1116.5.2  不可靠的bolt1126.6  本章小结 113第 7 章  zookeeper详解7.1  zookeeper简介1147.2  zookeeper的下载和部署 1147.2.1  zookeeper的下载 1147.2.2  zookeeper的部署 1157.3  zookeeper的配置1177.4  zookeeper的运行1197.5  zookeeper的本地模式实例 1207.6  zookeeper的数据模型 1217.6.1  znode 1227.6.2  zookeeper中的时间 1237.6.3  zookeeper的stat结构 1237.7  zookeeper的命令行操作范例 1247.8  storm在zookeeper中的目录结构 1277.9  本章小结 128第 8 章  基础软件的安装与使用8.1  linux的基本操作1298.1.1  环境变量 1298.1.2  常用命令 1308.2  jdk的下载与配置1348.2.1  sun jdk的下载1348.2.2  在linux下安装jdk 1358.2.3  在windows下安装jdk 1368.3  github托管项目的下载 1418.4  maven的下载与配置1438.4.1  maven的下载1438.4.2  在linux下部署maven 1448.4.3  在windows下部署maven 1458.5  其他软件——notepad 1468.6  本章小结 147第 9 章  storm的安装与配置9.1  storm集群的安装步骤与准备工作 1489.1.1  搭建zookeeper集群 1489.1.2  安装storm的本地依赖 1489.1.3  下载并解压storm发行版本 1519.1.4  配置storm.yaml文件 1539.1.5  启动storm的守护进程 1549.2  本地模式的storm完整的配置命令 1579.3  本章小结 159第 10 章  storm集群搭建实践10.1  准备工作 16010.1.1  概述 16010.1.2  配置hosts文件 16110.1.3  配置静态ip 16110.1.4  集群ssh无密码 16310.1.5  修改主机名 16410.1.6  关闭防火墙 16410.1.7  同步时间 16410.1.8  安装jdk 16510.2  zookeeper集群的搭建 16610.2.1  部署**个节点16610.2.2  部署第i个节点 16710.2.3  启动zookeeper集群 16710.2.4  查看zookeeper状态 16810.2.5  关闭zookeeper集群 16810.2.6  清理zookeeper集群 16810.3  storm集群的搭建16810.3.1  安装storm依赖(每个storm节点) 16810.3.2  部署**个节点16910.3.3  部署第i个节点 17110.3.4  启动storm守护进程 17110.4  本章小结 172第 11 章  准备storm的开发环境11.1  storm的开发环境17311.1.1  什么是storm的开发环境 17311.1.2  如何管理storm17311.1.3  如何提交拓扑到集群17611.2  eclipse的下载与配置 17611.2.1  eclipse的下载 17611.2.2  eclipse的配置与运行 17711.2.3  eclipse插件的安装 17811.3  使用maven管理项目 18011.3.1  maven的下载与配置 18011.3.2  配置pom.xml文件 18011.3.3  运行maven命令 18211.4  使用nexus搭建本地maven私服 18311.4.1  下载nexus18311.4.2  运行nexus18411.4.3  登录nexus后台 18411.4.4  配置repositories18511.4.5  配置setting.xml文件 18711.4.6  修改eclipse的maven插件的配置 18911.5  使用svn管理代码版本 18911.5.1  在windows下搭建svn服务器 18911.5.2  在linux下搭建svn服务器 19111.5.3  安装svn客户端 19111.6  部署单节点的storm集群 19211.6.1  部署伪分布的zookeeper19211.6.2  部署伪分布的storm集群 19211.7  本章小结 194第 12 章  开发自己的storm应用12.1  新建maven项目 19512.2  修改为适合storm开发的项目 19812.2.1  对包名进行分类管理19812.2.2  修改pom.xml文件 19912.3  编写代码 20112.3.1  编写spout类 20112.3.2  编写bolt类 20212.3.3  编写topology类 20312.4  本地测试运行 20412.5  提交到storm集群运行 20512.5.1  使用maven打包 20512.5.2  提交jar包到集群 20512.6  本章小结 206第 13 章  storm-starter详解13.1  storm-starter项目概述 20713.2  storm-starter的下载 20913.3  使用maven进行管理 21113.3.1  使用maven打包storm-starter 21113.3.2  使用maven直接运行exclamationtopology 21113.3.3  使用maven运行单元测试 21113.4  在eclipse中运行 21213.4.1  新建maven项目的方式 21213.4.2  导入已存在的项目的方式 21413.5  storm-starter的入门例子 21413.5.1  exclamationtopology 21413.5.2  wordcounttopology 21613.5.3  reachtopology 21913.6  storm-starter的其他例子 22513.6.1  basicdrpctopology 22513.6.2  manualdrpc 22613.6.3  printsamplestream 22613.6.4  rollingtopwords 22713.6.5  skewedrollingtopwords 22813.6.6  singlejoinexample 22913.6.7  transactionalglobalcount 23013.6.8  transactionalwords 23013.6.9  wordcounttopologynode 23113.7  本章小结 232第 14 章  研发与集群管理技巧14.1  使用daemontools监控storm进程 23314.1.1  daemontools简介 23314.1.2  安装daemontools23414.1.3  编写监控脚本23414.2  使用monit监控storm 23614.2.1  monit简介23614.2.2  安装monit23714.2.3  配置monit23814.2.4  启动monit24014.2.5  获取monit帮助信息 24114.3  常用的集群操作命令24214.4  使用storm的经验与建议 24314.5  本章小结 244第 15 章  drpc详解15.1  概述 24515.2  drpctopologybuilder 24615.2.1  lineardrpctopologybuilder 24615.2.2  lineardrpctopologybuilder提供的方法 24615.2.3  lineardrpctopologybuilder使用范例 24815.2.4  lineardrpctopologybuilder的工作原理 24915.2.5  lineardrpctopologybuilder目前已弃用 24915.3  本地模式的drpc24915.4  远程模式的drpc25015.5  一个复杂的drpc例子(计算reach值) 25015.6  非线性drpc 25315.7  本章小结 253第 16 章  事务拓扑详解16.1  什么是事务拓扑 25416.1.1  设计1 25416.1.2  设计2 25516.1.3  设计3(storm的设计) 25616.2  事务拓扑的设计细节25616.3  事务拓扑的实现细节25716.3.1  事务spout的工作原理 25716.3.2  “对于给定的事务id不能发射相同的batch”的处理 25816.3.3  更多的细节 26016.4  事务拓扑api 26016.4.1  bolt 26016.4.2  事务spout26116.4.3  配置 26216.5  transactionaltopologybuilder 26216.5.1  transactionaltopologybuilder提供的方法 26216.5.2  transactionaltopologybuilder类已弃用 26616.6  一个简单的例子 26616.7  本章小结 269第 17 章  trident详解17.1  trident概述27017.1.1  简单的例子——单词统计(tridentwordcount) 27017.1.2  另一个例子——计算reach值(tridentreach) 27417.1.3  字段和元组 27517.1.4  状态(state) 27617.1.5  trident拓扑的执行 27717.2  trident api 27917.2.1  概述 27917.2.2  本地分区操作27917.2.3  重新分区操作28317.2.4  聚合操作 28417.2.5  流分组操作 28417.2.6  合并与连接 28517.3  trident的状态28517.3.1  trident状态分类 28617.3.2  事务spout(transactional spout) 28617.3.3  不透明事务spout(opaque transactional spout) 28817.3.4  非事务spout(non-transactional spout) 28917.3.5  spout与state之间的联系 28917.3.6  state api 29017.3.7  persistentaggregate方法 29417.3.8  实现mapstates 29417.4  trident spout 29517.4.1  流水线(pipelining) 29617.4.2  trident spout的类型 29617.5  本章小结 296第 18 章  storm的内部实现18.1  文件系统分析 29718.2  数据目录结构 29818.2.1  nimbus节点的目录结构 29918.2.2  supervisor节点的目录结构 29918.3  代码库的结构 30018.3.1  storm.thrift 30118.3.2  java接口31618.3.3  实现 31618.4  拓扑的生命周期 31818.4.1  启动拓扑 31918.4.2  监控拓扑 32118.4.3  杀死拓扑 32118.5  acking框架的实现32218.5.1  异或计算的基本原理32218.5.2  acking框架的实现原理 32218.5.3  acker的execute方法 32318.5.4  待定元组(pendingtuple)和rotatingmap 32318.6  metric 32418.7  本章小结 329第 19 章  storm相关的其他项目19.1  jstorm项目33019.1.1  项目简介 33019.1.2  下载与部署 33119.1.3  源代码编译 33219.2  storm-deploy项目 33219.3  storm与kafka33319.3.1  kafka简介33319.3.2  kafka的安装33319.3.3  启动服务 33419.3.4  测试运行 33519.3.5  storm与kafka的项目 33719.4  storm-kestrel项目 33819.4.1  storm-kestrel项目简介 33819.4.2  使用storm-kestrel项目 33819.4.3  kestrel服务器和队列 33919.4.4  添加元素到kestrel33919.4.5  从kestrel中移除元素 34019.4.6  持续添加元素到kestrel34119.4.7  使用kestrelspout34219.4.8  执行 34219.5  本章小结 343第 20 章  企业应用案例20.1  storm席卷众多互联网企业 34420.1.1  storm的典型应用场景 34420.1.2  storm的三大基本应用 34520.2  storm在twitter中的应用 34520.2.1  twitter公司简介 34520.2.2  storm帮助twitter提升产品性能 34620.2.3  mapr在twitter中的应用简介 34620.3  storm在阿里巴巴集团的应用 34820.3.1  阿里巴巴集团简介34820.3.2  storm在阿里巴巴的应用 34820.3.3  storm在淘宝公司的应用 35020.3.4  storm在支付宝公司的应用 35020.4  其他应用storm的知名企业和项目 35120.5  本章小结 367参考资料 368 

封面

从零开始学 Storm-(第2版)

书名:从零开始学 Storm-(第2版)

作者:赵必厦

页数:368

定价:¥59.0

出版社:清华大学出版社

出版日期:2016-07-01

ISBN:9787302438076

PDF电子书大小:116MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注