Apache storm是什么?
Apache storm是一个分布式实时大数据处理系统。storm的目的是提供容错和水平可伸缩扩展的方式处理大量数据。storm是一个高吞吐率流数据处理框架。虽然storm是无状态的,它通过Apache管理分布式环境和集群状态。storm很简单,可以对实时数据并行的进行各种各样的操作。
Apache是实时数据分析领域是领跑者。storm很容易安装,操作,并且能够保证每条消息被topology至少处理一次。
Apache Storm vs Hadoop
通常Hadoop和storm框架被用于分析大数据。
两者是相辅相成的,但在某些方面有所不同。
Apache storm除了持久性外支持所有的操作,而Hadoop擅长处理非实时计算的所有操作。
下表比较了storm和Hadoop的特性:
Storm | Hadoop |
实时流处理 | 批处理 |
无状态的 | 有状态 |
基于zookeeper协调服务的主/从架构。 主节点是nimbus,从节点是supervisors | 可基于zookeeper协调管理的主从架构(也可以不用zookeeper管理)。 主节点是jobTracker,从节点是taskTracker。 (备注:这个是基于hadoop1.版本) Hadoop2.x版本中,用yarn管理,resourcemanager和nodemanager |
集群上,Storm流处理每秒可以处理数以万计的数据。
| Hadoop分布式文件系统(HDFS)使用MapReduce框架来处理大量的数据,处理工程可能需要几分钟或几小时。 |
Storm topology一直运行,直到由用户关闭或意想不到的不可恢复的故障才会停止。 | MapReduce任务按顺序执行至完成。 |
Hadoop和storm都支持分布式和容错机制 | |
如果nimbus/supervisors停止运行,重启后,数据会在停止的地方继续处理,即处理是可恢复的,因此没有什么影响。 | 如果JobTracker死了,所有正在运行的工作都会丢失,即任务是不可恢复的.
|
Use-Cases of Apache Storm
Storm使用案例
Apache storm是非常有名的实时大数据流处理框架。
因此,大部分的公司都使用storm作为他们系统的一个组成部分。
一些著名的例子如下−
Twitter − Twitter使用Apache storm的 “Publisher Analytics products”。
NaviSite−NaviSite使用storm处理事件日志监控/审计。
Wego−Wego是一个位于新加坡的旅游搜索引擎。
Apache Storm Benefits
Apache storm的好处
这里是Apache storm提供好处的一个列表:
1.Storm是开源,健壮和用户友好的。大小公司都适用。
2.Storm是具备容错机制、灵活、可靠和支持任何编程语言的流处理框架。
3.允许实时流处理。
4.Storm处理速度非常快,因为它拥有巨大的处理数据的能力。
5.Storm甚至可以保持性能随着负载的增加线性增加。它是高度可伸缩的。
6.Storm的响应时间为秒或分钟取决于执行数据刷新和端到端交付能力。
它有非常低的延迟。
7.Storm具有智能操作的能力
8.当集群中有节点宕机或消息丢失时,Storm依旧能保证数据的正常处理。