storm处理场景-01.docx
2015-09-10 11:21
239 查看
Storm的应用前景
Storm是一个开源的分布式实时计算系统,可以简单、可靠的处理大量的数据流。Storm有很多使用场景:如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个结点每秒可以处理数以百万计的消息)。Storm的部署和运维都很便捷,而且更为重要的是可以使用任意编程语言来开发应用。
Storm特点
1)、编程模型简单
类似于MapReduce降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性。2)、可扩展
计算是在多个线程、进程和服务器之间并行进行的。3)、高可靠性
Storm保证每个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息。4)、高容错性
Storm会管理工作进程和节点的故障。5)、支持多种编程语言
可以使用各种编程语言。你可以在Storm之上使用各种编程语言。默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。
6)、支持本地模式
Storm有一个“本地模式”,可以在处理过程中完全模拟Storm集群。这让你可以快速进行开发和单元测试。7)、高效
系统的设计保证了消息能得到快速的处理,使用Ø MQ作为其底层消息队列。Twitter列举Storm三大类应用
1)、信息流处理(Stream processing)
Storm可用来实时处理新数据和更新数据库,兼具容错性和可扩展性。2)、连续计算(Continuous computation)
Storm可进行连续查询并把结果即时反馈给客户端。比如把Twitter上的热门话题发送到浏览器中。3)、分布式远程程序调用(Distributed RPC)
Storm可用来并行处理密集查询。Storm的拓扑结构是一个等待调用信息的分布函数,当它收到一条调用信息后,会对查询进行计算,并返回查询结果。举个例子Distributed RPC可以做并行搜索或者处理大集合的数据。
Storm与Hadoop的对比
hadoop是实现了mapreduce的思想,将数据切片计算来处理大量的离线数据。hadoop处理的数据必须是已经存放在hdfs上或者类似hbase的数据库中,所以hadoop实现的时候是通过移动计算到这些存放数据的机器上来提高效率而storm不同,storm是一个流计算框架,处理的数据是实时消息队列中的,所以需要我们写好一个topology逻辑放在那,接收进来的数据来处理,所以是通过移动数据平均分配到机器资源来获得高效率。
hadoop的优点是处理数据量大(瓶颈是硬盘和namenode,网络等)[[,分析灵活,可以通过实现dsl,mdx等拼接hadoop命令或者直接使用hive,pig等来灵活分析数据。适应对大量维度进行组合分析缺点就是慢:每次执行前要分发jar包,hadoop
每次map数据超出阙值后会将数据写入本地文件系统,然后在reduce的时候再读进来storm的优点是全内存计算,因为内存寻址速度是硬盘的百万倍以上,所以storm
的速度相比较hadoop非常快(瓶颈是内存,cpu)缺点就是不够灵活:必须要先写好
topology结构来等数据进来分析。
Storm实际处理场景
1)、超速报警系统
实时分析过往车辆的数据,一旦车辆数据超过预设的临界值,便触发一个trigger并把相关的数据存入数据库。2)、临界分析
瞬间临界值监测
一个字段的值在那个瞬间超过了预设的临界值,如果条件符合的话则触发一个trigger。举个例子当车辆超越80公里每小时,则触发trigger。时间序列临界监测
字段的值在一个给定的时间段内超过了预设的临界值,如果条件符合则触发一个触发器。比如:在5分钟类,时速超过80KM两次及以上的车辆。相关文章推荐
- @synthesize name=_name的含义
- QtPropertybrowser源码编译
- 常见错误总结
- django资料收集
- 实战 SQL Server 2008 数据库误删除数据的恢复
- Linux系统中-/+ buffers/cache: 1397032 2752124 的意思
- 【leetcode】Count Complete Tree Nodes -C++
- python笔记_magic变量和函数
- javaScript的运行机制?
- C#结构体
- Modal简单介绍
- 取得“距离某天还有多少天多少小时”的函数
- 重新安装xcode cocoapods出现 Could not find a valid gem 'cocoapods' (>= 0) in any repository
- Leetcode: N-Queens
- spring service方法里有两个save时的同步问题
- Python 文件操作
- 我也来写:数据库访问类DBHelper
- ODBC 驱动程序管理器 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 解决方案
- ubuntu下配置nginx+php+mysql详解
- (转载)(续)Xilinx 7系列FPGA使用之CLB探索