内容简介
随着大数据实时处理需求的强劲增长,Storm的出现填补了大数据处理生态系统的缺失,并被越来越多的公司所采用。阿里巴巴集团数据平台事业部商家数据业务部正是使用Storm的技术团队之一。
《Storm实战:构建大数据实时计算 》是一本系统并且具有实践指导意义的Storm工具书和参考书,对Storm整个技术体系进行了全面的讲解,不仅包括对基本概念、特性的介绍,也涵盖了一些原理说明。
实战性很强,各章节都提供了一些小案例,同时对于本地,以及集群环境的部署有详细介绍,易于理解,操作性强。
《Storm实战:构建大数据实时计算 》一共分为10章:第1章全面介绍了Storm的特性、能解决什么问题,以及和其他流计算系统的对比;第2章通过实际运行一个简单的例子,以及介绍本地环境和集群环境的搭建,让读者对Storm有了直观的认识;第3章深入讲解了Storm的基本概念,同时实现一个Topology运行;第4章和第5章阐述了Storm的并发度、可靠处理的特性;第6章~第8章详细而系统地讲解了几个特性:事务、DRPC和Trident;第9章以实例的方式讲解了Storm在实际业务场景中的应用;第10章总结了几个在大数据场景应用过程中遇到的经典问题,以及详细的排查过程。
目录
第1 章 Storm 基础 1
1.1 Storm 能做什么 ............................................... 2
1.2 Storm 特性 ...................................................... 3
1.3 其他流计算系统 .............................................. 8
1.4 应用模式 ....................................................... 13
第2 章 Storm 初体验 17
2.1 本地环境搭建 ............................................... 18
2.2 Storm 集群 .................................................... 25
第3 章 构建Topology 41
3.1 Storm 基本概念 ............................................. 42
3.2 构建Topology ............................................... 53
3.3 小结 .............................................................. 61
第4 章 Topology 的并行度 62
4.1 并行元素 ....................................................... 63
4.2 配置并行度 ................................................... 65
4.3 一个运行中Topology 的例子 ....................... 68
4.4 如何更新运行中的Topology 的并行度 ........ 71
第5 章 消息的可靠处理 73
5.1 简介 .............................................................. 74
5.2 理解消息被完整处理 .................................... 74
5.3 消息的生命周期 ............................................ 76
5.4 可靠相关的API ............................................ 79
5.5 地实现tuple tree .................................... 84
5.6 选择合适的可靠性级别 ................................ 87
5.7 集群的各级容错 ............................................ 89
5.8 小结 .............................................................. 91
第6 章 一致性事务 92
6.1 简单设计一:强顺序流 ................................ 93
6.2 简单设计二:强顺序batch 流 ...................... 95
6.3 CoordinateBolt 的原理 .................................. 96
6.4 Transactional Topology .................................. 98
第7 章 DRPC 105
7.1 Storm DRPC ................................................ 106
7.2 总体概述 ..................................................... 106
7.3 LinearDRPCTopologyBuilder ...................... 108
7.4 本地模式DRPC .......................................... 110
7.5 远程模式DRPC .......................................... 111
7.6 一个复杂的例子 .......................................... 113
7.7 非线性DRPC 拓扑 ..................................... 117
7.8 LinearDRPCTopologyBuilder 工作过程 ...... 117
7.9 进阶 ..................................................... 118
第8 章 Trident 的特性 119
8.1 理解Trident ................................................ 120
8.2 结合多个Trident 任务 ................................ 124
8.3 消费和生产Field ........................................ 126
8.4 State(状态保存) ...................................... 128
8.5 Trident Topology 的执行过程 ...................... 136
8.6 总结 ...........................................................
摘要与插图
实时流计算互联网从诞生的一刻起,对世界的改变就是让信息能够实时交互,从而大大提高各个环节的效率。正因为大家对信息实时响应、实时交互的需求,软件行业除了个人操作系统之外,数据库(更地说是关系型数据库)应该是软件行业发展、收益丰厚的产品了。记得20 世纪90年代,很多银行别说实时转账,连实时查询都做不到,但是数据库和高速网络改变了这个情况。
互联网的进一步发展,从Portal 信息浏览型到Search 信息搜索型再到SNS 关系交互传递型,以及电子商务、互联网旅游生活产品等,将人们生活中的流通环节在线化。对效率的要求让大家对实时性的要求进一步提升,而信息的交互和沟通正在从点对点向信息链甚至信息网的方向发展,这样必然带来数据在各个维度的交叉关联,数据爆炸已不可避免。因此流式处理加NoSQL 产品应运而生,分别解决实时处理框架和数据大规模存储计算的问题。
早在2000 年初,诸如UC 伯克利、斯坦福等大学就开始了对流式数据处理的研究,但是由于更多地关注于金融行业的业务场景或者互联网流量监控的业务场景,以及当时互联网数据场景的限制,造成了研究多是基于对传统数据库处理的流式化,对流式框架本身的研究偏少。目前这样的研究逐渐没有了声音,工业界将更多的精力转向了实时数据库。
2010 年Yahoo!对S4 的开源,2011 年Twitter 对Storm的开源,改变了这个现状。以前互联网的开发人员在做一个实时应用的时候,除了要关注应用逻辑计算处理本身,还要为数据的实时流转、交互、分布大伤脑筋。现在的情况却大为不同,以Storm 为例,开发人员可以快速搭建一套健壮、易用的实时流处理框架,配合SQL 产品或者NoSQL 产品或者MapReduce 计算平台,就可以以低成本做出很多以前很难想象的实时产品,比如量子恒道品牌旗下的多个产品就是构建在Storm 实时流处理平台上的。
本书是一本对Storm 的基础介绍手册,但是我们也希望它不仅仅是一本Storm 的使用手册,我们会在其中加入更多在实际数据生产过程中的经验和应用架构,的目的是帮助所有愿意使用实时流处理框架的技术同仁,同时也默默地改变这个世界。
在本书即将出版之际,Storm 已经成功发布了0.9.0 版本,追加了一些新的特性,如使用Netty 作为新的消息传输层、提供日志查看UI 等,同时修复了大量跟稳定性相关的BUG。本次发布对茁壮成长的Storm 来说是一次巨大的进步。新版本的Storm 在系统结构及使用方式方面,并没有太多变化,本书可以帮助你快速掌握应用Storm 的知识和技能。
本书由团队中多位同学先后参与合作完成,为体现阿里巴巴的文化,这里列出所有涉及同学的花名:张中、太奇、鸣世、曦轩、呜珂、民瞻、九翎、渊虹、国相、晨炫、木晗、毅山、宋智、澄苍,是大家的合作与努力才让此书得以成行。同时感谢刘皎等编辑的辛苦工作,是你们把这本书呈献给读者,感谢你们!同样要感谢支持我们工作的同事们:冰夷、王贲,有你们的帮助和支持才让我们有决心和毅力来完成这项工作。