当前位置:主页 > 书籍配套资源 > Storm配套资源
《Storm分布式实时计算模式》源码

《Storm分布式实时计算模式》源码

  • 更新:2022-04-07
  • 大小:3.4 MB
  • 类别:Storm
  • 作者:P.、Taylor、Goetz
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

大数据概念在各行业已然形成了热潮,犹胜当年的云计算,近期甚至被列入了国家重点发展规划。DataSift利用Twitter上的情感监控预测Facebook股价波动,Google预测世界杯比赛结果,大数据应用的生动案例每每会引发无限遐想:大数据能否对我们所处的行业或领域带来新气象、新思路?迈出尝试的第一步非常重要。

要从海量数据中提取加工对业务有用的信息,选取合适的技术将事半功倍,省去了重新造轮子的烦恼。对海量数据进行批处理运算,Hadoop依旧保持着无法撼动的地位。但在对实时性要求较高的应用场景中,Hadoop就显得力不从心。它需要将数据先落地存储到HDFS上,然后再通过MapReduce进行计算。这样的批处理运算流程使它很难将延时缩小到秒级。

Storm是基于数据流的实时处理系统,提供了大吞吐量的实时计算能力。每条数据到达系统时,立即在内存中进入处理流程,并在很短的时间内处理完成。实时性要求较高的数据分析场景,都可以尝试使用Storm作为技术解决方案。

我们已经决定利用大数据改善所在领域的工作,并选定Storm实时流式计算框架作为技术解决方案。这时候的问题是,如何将Storm和工作中的实际场景关联起来?这个开源项目的文档并不是非常丰富,源码中示例也很简单。类似的问题可能困扰过不少Storm用户。

我在看到本书英文版的介绍时,就感觉到,这正是我想要的,早有这本书能省去多少学习成本!本书并没有非常深入介绍Storm的内部实现,而是一本应用指南。其中最有价值的部分,是通过大量翔实的示例,使用Storm解决不同的实际应用场景,提出多种基于Storm的设计模式。读者完全可以参考书中示例和源码,来设计并实现自己的Storm应用。书中还简要介绍了Storm基本概念,以及大规模部署集群的方案,这些都是非常实用的内容。

作为Storm的一个忠实用户,能够承担本书的翻译工作实属荣幸。翻译的过程,也是深入学习加深了解的过程。学到作者丰富的Storm实践经验,是本次翻译的最大收获。希望这些经验也能够帮助读者少走弯路,快速高效地使用这个工具。

翻译过程中得到了很多人的帮助。首先感谢家人的包容和支持,困难时总有你们的鼓励。感谢腾讯安全平台部的同事们在学习工作中给予的帮助。感谢好友何双宁在翻译过程中提出的建议和探讨。感谢机械工业出版社编辑们的信任和支持。

非常高兴能将这本书分享给大家,也期望有兴趣的朋友一起探讨,共同进步。如果你有任何问题和建议,请联系我(appledzshr@live.cn)。

封面图

目录

  • 译者序
  • 前言
  • 作者简介
  • 第1章分布式单词计数1
  • 1.1Storm topology的组成部分——stream、spout和bolt1
  • 1.1.1stream2
  • 1.1.2spout2
  • 1.1.3bolt2
  • 1.2单词计数topology的数据流3
  • 1.2.1语句生成spout3
  • 1.2.2语句分割bolt3
  • 1.2.3单词计数bolt4
  • 1.2.4上报bolt4
  • 1.3实现单词计数topology4
  • 1.3.1配置开发环境4
  • 1.3.2实现SentenceSpout5
  • 1.3.3实现语句分割bolt6
  • 1.3.4实现单词计数bolt7
  • 1.3.5实现上报bolt8
  • 1.3.6实现单词计数topology10
  • 1.4Storm的并发机制12
  • 1.4.1WordCountTopology的并发机制13
  • 1.4.2给topology增加worker14
  • 1.4.3配置executor和task14
  • 1.5理解数据流分组17
  • 1.6有保障机制的数据处理20
  • 1.6.1spout的可靠性20
  • 1.6.2bolt的可靠性21
  • 1.6.3可靠的单词计数22
  • 总结23
  • 第2章配置Storm集群24
  • 2.1Storm集群的框架24
  • 2.1.1理解nimbus守护进程25
  • 2.1.2supervisor守护进程的工作方式26
  • 2.1.3Apache ZooKeeper简介26
  • 2.1.4Storm的DRPC服务工作机制27
  • 2.1.5Storm UI27
  • 2.2Storm技术栈简介28
  • 2.2.1Java和Clojure28
  • 2.2.2Python29
  • 2.3在Linux上安装Storm29
  • 2.3.1安装基础操作系统30
  • 2.3.2安装Java30
  • 2.3.3安装ZooKeeper30
  • 2.3.4安装Storm30
  • 2.3.5运行Storm守护进程31
  • 2.3.6配置Storm33
  • 2.3.7必需的配置项34
  • 2.3.8可选配置项35
  • 2.3.9Storm可执行程序36
  • 2.3.10在工作站上安装Storm可执行程序36
  • 2.3.11守护进程命令37
  • 2.3.12管理命令37
  • 2.3.13本地调试/开发命令39
  • 2.4把toplogy提交到集群中40
  • 2.5自动化集群配置42
  • 2.6Puppet的快速入门43
  • 2.6.1Puppet manifest文件43
  • 2.6.2Puppet类和模块44
  • 2.6.3Puppet模板45
  • 2.6.4使用Puppet Hiera来管理环境46
  • 2.6.5介绍Hiera46
  • 总结48
  • 第3章Trident和传感器数据49
  • 3.1使用场景50
  • 3.2Trident topology50
  • 3.3Trident spout52
  • 3.4Trident运算57
  • 3.4.1Trident filter58
  • 3.4.2Trident function59
  • 3.5Trident聚合器63
  • 3.5.1CombinerAggregator63
  • 3.5.2ReducerAggregator63
  • 3.5.3Aggregator64
  • 3.6Trident状态65
  • 3.6.1重复事务型状态69
  • 3.6.2不透明型状态70
  • 3.7执行topology72
  • 总结73
  • 第4章实时趋势分析74
  • 4.1应用场景75
  • 4.2体系结构75
  • 4.2.1数据源应用程序75
  • 4.2.2logback Kafka appender76
  • 4.2.3Apache Kafka76
  • 4.2.4Kafka spout76
  • 4.2.5XMPP服务器76
  • 4.3安装需要的软件77
  • 4.3.1安装Kafka77
  • 4.3.2安装OpenFire78
  • 4.4示例程序78
  • 4.5日志分析topology84
  • 4.5.1Kafka spout84
  • 4.5.2JSON project function85
  • 4.5.3计算移动平均值86
  • 4.5.4添加一个滑动窗口87
  • 4.5.5实现滑动平均function91
  • 4.5.6按照阈值进行过滤92
  • 4.5.7通过XMPP发送通知94
  • 4.6最终的topology96
  • 4.7运行日志分析topology98
  • 总结99
  • 第5章实时图形分析100
  • 5.1使用场景101
  • 5.2体系结构102
  • 5.2.1Twitter客户端102
  • 5.2.2Kafka spout102
  • 5.2.3Titan分布式图形数据库103
  • 5.3图形数据库简介103
  • 5.3.1访问图——TinkerPop栈104
  • 5.3.2使用Blueprints API操作图形105
  • 5.3.3通过Gremlin shell操作图形106
  • 5.4软件安装107
  • 5.5使用Cassandra存储后端设置Titan109
  • 5.5.1安装Cassandra109
  • 5.5.2使用Cassandra后端启动Titan109
  • 5.6图数据模型110
  • 5.7连接Twitter数据流111
  • 5.7.1安装Twitter4J客户端112
  • 5.7.2OAuth配置112
  • 5.7.3TwitterStreamConsumer类112
  • 5.7.4TwitterStatusListener类113
  • 5.8Twitter graph topology115
  • 5.9实现GraphState116
  • 5.9.1GraphFactory117
  • 5.9.2GraphTupleProcessor117
  • 5.9.3GraphStateFactory117
  • 5.9.4GraphState118
  • 5.9.5GraphUpdater119
  • 5.10实现GraphFactory119
  • 5.11实现GraphTupleProcessor120
  • 5.12组合成TwitterGraphTopology类121
  • 5.13使用Gremlin查询图122
  • 总结123
  • 第6章人工智能124
  • 6.1为应用场景进行设计125
  • 6.2确立体系结构128
  • 6.2.1审视设计中的挑战128
  • 6.2.2实现递归128
  • 6.2.3解决这些挑战132
  • 6.3实现体系结构133
  • 6.3.1数据模型133
  • 6.3.2检视Recursive Topology136
  • 6.3.3队列交互138
  • 6.3.4function和filter140
  • 6.3.5研究Scoring Topology141
  • 6.3.6分布式远程命令调用(DRPC)146
  • 总结152
  • 第7章整合Druid进行金融分析153
  • 7.1使用场景154
  • 7.2集成一个非事务系统155
  • 7.3topology158
  • 7.3.1spout159
  • 7.3.2filter161
  • 7.3.3状态设计162
  • 7.4实现体系结构165
  • 7.4.1DruidState166
  • 7.4.2实现StormFirehose对象169
  • 7.4.3在ZooKeeper中实现分片状态174
  • 7.5执行实现的程序175
  • 7.6检视分析过程176
  • 总结179
  • 第8章自然语言处理180
  • 8.1Motivating Lambda结构181
  • 8.2研究使用场景183
  • 8.3实现Lambda architecture184
  • 8.4为应用场景设计topology185
  • 8.5设计的实现186
  • 8.5.1TwitterSpout/TweetEmitter187
  • 8.5.2function188
  • 8.6检视分析逻辑191
  • 8.7Hadoop196
  • 8.7.1MapReduce概览196
  • 8.7.2Druid安装197
  • 总结204
  • 第9章在Hadoop上部署Storm进行广告分析205
  • 9.1应用场景205
  • 9.2确定体系结构206
  • 9.2.1HDFS简介208
  • 9.2.2YARN简介208
  • 9.3配置基础设施211
  • 9.3.1Hadoop基础设施211
  • 9.3.2配置HDFS212
  • 9.4部署分析程序217
  • 9.4.1以Pig为基础执行批处理分析217
  • 9.4.2在Storm-YARN基础上执行实时分析218
  • 9.5执行分析223
  • 9.5.1执行批处理分析223
  • 9.5.2执行实时分析224
  • 9.6部署topology229
  • 9.7执行toplogy229
  • 总结230
  • 第10章云环境下的Storm231
  • 10.1Amazon Elastic Compute Cloud简介232
  • 10.1.1建立AWS帐号232
  • 10.1.2AWS管理终端232
  • 10.1.3手工启动一个EC2实例234
  • 10.2Apache Whirr简介236
  • 10.3使用Whirr配置Storm集群237
  • 10.4Whirr Storm简介239
  • 10.5Vagrant简介243
  • 10.5.1安装Vagrant243
  • 10.5.2创建第一个虚拟机244
  • 10.6生成Storm安装准备脚本247
  • 10.6.1ZooKeeper247
  • 10.6.2Storm248
  • 10.6.3Supervisord249
  • 总结252

资源下载

资源下载地址1:https://pan.baidu.com/s/1XijoLruaAEXZur_9EiYebA

相关资源

网友留言