Storm 实战:构建大数据实时计算(阿里巴巴集团技术丛书,大数据丛书。大型互联网公司大数据实时处理干货分享!来自淘宝一线技术团队的丰富实践,快速掌握Storm技术精髓!)数据库
阿里巴巴集团数据平台事业部商家数据业务部 编著 安全
ISBN 978-7-121-22649-6网络
2014年8月出版架构
订价:59.00元 并发
184页框架
16开分布式
编辑推荐ide
Storm以其简单、灵活、健壮而著称。随着大数据实时处理需求的强劲增加,Storm的出现填补了大数据处理生态系统的缺失,并被愈来愈多的公司所采用。高并发
《Storm实战:构建大数据实时计算 》来自阿里巴巴集团数据平台事业部商家数据业务部一线经验的分享。团队专一于“数据让生意更简单”的大数据应用使命,一直致力于解决商家的大数据应用需求。并开发出量子恒道店铺经、江湖策、御膳房等重量级大数据开发、计算和分析工具。团队很早便开始使用Storm来处理实时大数据,结合实际的应用场景,积累了丰富的实践经验。《Storm实战:构建大数据实时计算》正是这些经验和心得的结晶,它一一解答了是Storm是什么,怎么作,如何作更好等关键的实际问题,对于从事大数据处理与分析的读者而言,是一本至关有价值的学习参考手册。工具
阿里巴巴集团技术丛书是抱持着为工程师服务的理念诞生的。
阿里的快速发展,使咱们有机会见证技术变革的强大力量。在这过程当中,咱们经历了技术的变迁、兴衰、成败,既有收获也有教训。现在,阿里已成为一家使人瞩目的互联网公司,站在这样的时点上,回顾过去,放眼四周,咱们深入地以为有必要将沉淀下来的一线经验与智慧,结集出版,理由有三。
1.回报。咱们得到的种种经验与教训,只有在阿里这样快速成长、体量巨大的公司中才有机会亲历。这样的技术环境并非每一个工程师都有机缘遇到的。这些经历帮助了咱们我的能力的提高,也帮助阿里成为一家技术实力过硬的公司。咱们愿意把这些内容分享出来,帮助即将或已经面临相似问题的朋友们,若是他们能够从阅读中得到一些启发而少走弯路的话,将是咱们最大的欣慰。
2.交流。在这套丛书里,咱们一样会抛出咱们的困惑、问题,借助丛书的平台,扩大工程师沟通的圈子,以书会友,共同探索、学习、提升。
3.温故知新。以结集的形式,将以往的经验与知识固化下来,既可便于之后查阅,也能够帮助咱们系统地梳理思路,更为全面地审视、洞察、并理解过去发生的种种,为将来的变化作好更充分、扎实的准备。
基于以上的考虑,阿里巴巴集团技术丛书将立足于实践,着眼于问题,从工程师的视角解读技术的内涵。
让思考成为咱们生活的乐趣,让阅读成为咱们进步的阶梯!
内容提要
随着大数据实时处理需求的强劲增加,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 总结 ............................................................ 137
第9 章 Storm 实例 138
9.1 一个简单的实例 .......................................... 139
9.2 复杂一点的实例 .......................................... 150
9.3 其余 ............................................................ 161
第10 章 常见应用问题分析 162
10.1 性能问题排查与定位 ................................ 163
10.2 系统中常见的问题与排查 ......................... 167
10.3 业务问题的定位与排查 ............................ 170
做者简介
商家数据业务部, 隶属于阿里巴巴集团数据平台事业部,致力于“数据让生意更简单”的大数据应用使命。几年来,一直专一于解决商家的大数据应用需求,经过量子恒道店铺经已支撑起超过400万商家的平常经营决策,并为100万商家提供淘宝官方流量管理工具——江湖策,让深度探索、优化流量成为可能。2013年开创性地推出云数据平台——御膳房,做为完善的大数据开放、计算和分析云平台,打通了“阿里大数据”与“开放平台和服务市场体系”,为淘宝生态中的ISV和卖家提供海量丰富的阿里大数据、强大稳定的云计算处理能力和安全的数据应用开发容器,支持淘宝生态圈发展基于大数据分析的创新应用,深度助力卖家下降经营成本、提高效率,已为数百万的商家提供经营链路中的大数据应用解决方案。
支撑这些的,是对大数据的分布式计算、仓库建设、数据挖掘、高并发网站构建、数据可视化等各个领域前沿技术的深刻探索和应用。
前言
实时流计算
互联网从诞生的一刻起,对世界的最大改变就是让信息可以实时交互,从而大大提升各个环节的效率。正由于你们对信息实时响应、实时交互的需求,软件行业除了我的操做系统以外,数据库(更精确地说是关系型数据库)应该是软件行业发展最快、收益最为丰厚的产品了。记得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 的知识和技能。
本书由团队中多位同窗前后参与合做完成,为体现阿里巴巴的文化,这里列出全部涉及同窗的花名:张中、太奇、鸣世、曦轩、呜珂、民瞻、九翎、渊虹、国相、晨炫、木晗、毅山、宋智、澄苍,是你们的合做与努力才让此书得以成行。同时感谢刘皎等编辑的辛苦工做,是大家把这本书呈献给读者,感谢大家!一样要感谢支持咱们工做的同事们:冰夷、王贲,有大家的帮助和支持才让咱们有决心和毅力来完成这项工做。