Storm简介

举报
Smy1121 发表于 2019/06/21 15:30:17 2019/06/21
【摘要】 实时流式计算介绍

实时流式计算介绍

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

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

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

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


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

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

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

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

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


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

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

image.png

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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。