您的位置:首页 > 其它

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两次及以上的车辆。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: