当前位置:文档之家› 基于Storm的实时大数据分析系统的研究与实现

基于Storm的实时大数据分析系统的研究与实现

目录

摘要........................................................................................................................... I ABSTRACT ............................................................................................................. III 第1章绪论 (9)

1.1.研究背景及意义 (9)

1.2.国内外研究现状 (10)

1.2.1.流式计算和实时计算 (10)

1.2.2.Storm的任务调度 (13)

1.3.研究目标及内容 (15)

1.4.论文结构 (16)

第2章相关技术分析 (18)

2.1.流式计算框架S TORM (18)

2.1.1.Storm的架构 (18)

2.1.2.Storm中的基本抽象 (18)

2.1.3.Storm的基本分组方式 (20)

2.1.4.Storm上的高级抽象Trident (21)

2.1.5.Storm中的分布式远程过程调用 (22)

2.2.分布式协调服务Z OOKEEPER (23)

2.2.1.Zookeeper架构 (23)

2.2.2.Zookeeper的命名空间 (23)

2.2.3.Zookeeper的Watch机制 (24)

2.3.K AFKA和G ANGLIA (24)

2.3.1.发布订阅系统Kafka (24)

2.3.2.集群监控工具Ganglia (25)

2.4.本章小结 (26)

第3章系统需求分析及架构设计 (27)

3.1.系统需求分析 (27)

3.1.1.交通物流云平台概述 (27)

3.1.2.功能性需求 (28)

3.1.3.非功能性需求 (29)

3.2.系统架构设计 (30)

3.2.1.系统面临的问题 (30)

3.2.2.逻辑架构视图 (30)

3.2.3.部署视图 (35)

3.2.4.系统的实现环境 (35)

3.3.本章小结 (36)

第4章关键技术及核心模块的设计与实现 (37)

4.1.T OPOLOGY任务调度器 (37)

4.1.1.默认调度器的优缺点 (37)

4.1.2.相关概念的描述 (38)

4.1.3.RBS算法的设计与实现 (39)

4.1.4.SNS算法的设计与实现 (43)

4.2.控制节点集群协调器 (45)

4.2.1.控制节点的单点失效问题分析 (45)

4.2.2.控制节点单点失效问题的解决方案 (48)

4.2.3.控制节点集群模块的实现 (51)

4.3.流计算应用的数据输入/输出 (54)

4.3.1.数据采集与预处理器 (54)

4.3.2.输入流组件 (57)

4.3.3.持久化输出组件 (59)

4.4.流计算应用开发环境 (60)

4.4.1.流计算应用集成开发工具 (60)

4.4.2.流计算应用测试工具和部署工具 (64)

4.5.本章小结 (64)

第5章系统验证 (65)

5.1.RBS任务调度器的测试 (65)

5.1.1.测试环境 (65)

5.1.2.测试方案 (65)

5.1.3.测试结果 (67)

5.1.4.测试结果分析 (68)

5.2.SNS任务调度器的测试 (68)

5.2.1.测试环境 (68)

5.2.2.测试方案 (69)

5.2.3.测试结果 (70)

5.2.4.测试结果分析 (71)

5.3.控制节点集群协调器的测试 (71)

5.3.1.测试环境 (71)

5.3.2.测试方案 (72)

5.3.3.测试结果 (72)

5.3.4.测试结果分析 (74)

5.4.流计算应用开发及运行实例 (74)

5.4.1.流计算应用开发 (74)

5.4.2.流计算应用运行实例 (80)

第6章展望与总结 (82)

6.1.全文总结 (82)

6.2.不足与展望 (82)

参考文献 (84)

致谢 (87)

攻读硕士学位期间已发表的学术论文 (88)

第1章绪论

1.1. 研究背景及意义

随着虚拟化、云计算、物联网等新兴技术的发展,人类社会在悄然中进入了大数据时代。Google的Big Table[23]、Map Reduce[7]和Google File System[24]的出现,引领业界掀起了一股大数据的浪潮。同时以Yahoo实现的Hadoop[6]、HBase、HDFS,Amazon提出的基于Key V alue的Dynamo[25]数据库以及开源社区所贡献的MongoDB[26]、RabbitMQ、Zookeeper[5]等分布式工具更是让整个海量数据处理技术工具栈变得完善。Hadoop生态圈的相关工具Hive[27]、Pig[28]、Ambari、Mahout、Zookeeper等提供了包括数据仓库系统、数据分析平台、集群管理工具、机器学习算法库、分布式协调服务等,为海量数据分析和处理提供了的便利。批处理系统Hadoop采用先存储后计算的方式,是处理大容量数据的一种有效方式。然而,Map Reduce这种适合批处理的编程模型,在应对高速率的数据处理需求时表现出了延迟高,响应缓慢等不足,导致了它在数据实时分析处理领域存在一定的局限性。

然而随着数据量的不断增大,人们对数据处理速度的要求却越来越高,例如电子商务领域中的个性化搜索和推荐、金融交易的诈骗监测、智能交通领域中的实时车流监控、IT运维中对大型集群进行监控预警等应用场景的涌现,促使了实时计算的系统的出现。实时计算是指数据处理的时间限制在一个极小的时间段内,它能够帮助企业或组织在分秒级的时间之内对发生的事件进行分析,做出快速的响应。

流式计算系统Storm[4]是一个分布式的实时流式计算框架,它采用事件流的形式,多个输入和处理组件构成了一个处理网络,将中间的处理结果都存储在内存中,保证了数据处理的时效性,能够有效地应对大数据的实时分析需求。

本文以实验室承担的某省交通物流云计算平台建设项目为背景,目标在于为物流企业的日常物流数据的处理提供实时处理服务。云平台包括基于批处理的大数据分析服务和基于流式计算系统Storm所构建的实时数据处理服务。然而,Storm在实际应用中仍然存在一些问题:例如,默认调度器所采用的轮询分配策略导致工作节点间负载不均衡;同时默认调度器单一的调度策略不能满足灵活多

相关主题
文本预览
相关文档 最新文档