Storm简介

来源:互联网 发布:淘宝客怎么推广如意投 编辑:程序博客网 时间:2024/06/05 15:37

实时流式计算介绍

大数据环境下,流式数据作为一种新型的数据类型,是实时数据处理所面向的数据类型,其有以下几个特征:

1. 连续性:数据一直在产生而且不会间断

2. 无边界性:数据不会结束

3. 瞬时性:数据有瞬时突发性

实时流式计算就是对流式数据的实时计算,相比传统的数据处理技术,其具有以下特点:

1. 低延迟:从处理的数据角度来看,每一条数据项都可在有限时间内由系统处理完成,也即响应时间相对较短。

2. 高吞吐:从处理的过程角度来看,系统或节点在单位时间内能够成功处理数据项的数量比较多,也即吞吐量高。事实上,处理给定规模的数据,系统高吞吐量意味着每一项数据被成功处理的耗时短,所以,高吞吐量与低延迟追求的目标本质上是一致的。

3. 高容错:由于网络或者其他原因,可能会出现错误或者不完整的数据,系统对这些数据要有容错性,不能因为这些数据导致系统崩溃

4. 算法复杂度低:高吞吐的必然要求,尽可能用高效简单的算法解决问题

除了Storm流式处理框架,还有其他几种处理框架:

1. Queue + Worker: 数据放到队列里,由不同的worker来进行处理,是最原始的高性能数据处理框架

2. Apache S4:Yahoo开源的实时数据流计算平台:可靠性和容错性不如Storm,不保证完全不丢失数据;用户活跃度低

3. Spark Streaming:与Storm的根本区别是Storm处理的是每次传入的一个事件,而Spark Streaming处理的是某个时间段窗口的事件流,因此Storm处理一个事件可以达到极低的延迟,而Spark Streaming的延迟相对较高。

认识Storm

Storm是由Twitter开源的一个类似于Hadoop的实时数据处理框架。Storm是分布式流式数据处理系统,其强大的分布式集群管理、便捷的针对流式数据的编程模型、高容错保障,是它成为流式数据实时处理的首选。它有以下特点和优势:

1. 易用性:为复杂的流计算模型提供了丰富的服务和编程接口,易于学习和使用,降低了学习和开发的门槛。

2. 容错性:具有适应性的容错能力。当工作进程(worker)失败时,Storm可以自动重启这些进程;当一个节点宕机时,其上的所有工作进程都会在其它节点被重启;对于storm的守护进程,nimbus和supervisor被设计为无状态和快速恢复的,也即当这些守护进程失败时,它们可以通过被重启恢复而不会产生其他额外影响。

3. 可扩展性:storm作业天然具有并行性,可以跨机器甚至集群执行。Topology中各个不同的组件(Spout或Bolt)可以配置为不同的并行度。当集群性能不足时,可以随时添加物理机器并对任务进行balance。

4. 完整性:对数据提供完整性操作:至少处理一次、至多处理一次、处理且仅处理一次。用户可以根据自己的需求进行选择。

Storm使用场景

Storm目前使用极为广泛,已经在Twitter、Yahoo、腾讯、阿里、新浪等著名公司的产品级应用中使用。

1. 新浪的实时分析平台

2. 腾讯的实时计算平台

3. 奇虎360的实时平台

4. 百度的实时系统

5. 阿里的Jstorm

  •  
  •  

原创粉丝点击