Storm 简介

 

1. 什么是Apache Storm?

Apache Storm是一个分布式实时大数据处理系统。Storm设计用于以容错和水平可伸缩方法处理大量数据。这是一个流媒体数据框架,具有最高的摄取率。虽然Storm是无状态的,但它通过Apache ZooKeeper管理分布式环境和集群状态。这很简单,您可以并行执行各种对实时数据的操作。

Apache Storm继续成为实时数据分析的领导者。Storm很容易设置,操作,并且保证每个消息至少通过拓扑结构处理一次。

 

2. Apache Storm vs Hadoop

基本上Hadoop和Storm框架用于分析大数据。它们两者相辅相成,在某些方面有所不同。Apache Storm执行除持久性以外的所有操作,而Hadoop擅长于一切,但缺乏实时计算。下表比较了Storm和Hadoop的属性。

Storm Hadoop
Real-time stream processing Batch processing
Stateless Stateful
Master/Slave architecture with ZooKeeper based coordination. The master node is called as nimbus and slaves are supervisors. Master-slave architecture with/without ZooKeeper based coordination. Master node is job tracker and slave node is task tracker.
A Storm streaming process can access tens of thousands messages per second on cluster. Hadoop Distributed File System (HDFS) uses MapReduce framework to process vast amount of data that takes minutes or hours.
Storm topology runs until shutdown by the user or an unexpected unrecoverable failure. MapReduce jobs are executed in a sequential order and completed eventually.
Both are distributed and fault-tolerant
If nimbus / supervisor dies, restarting makes it continue from where it stopped, hence nothing gets affected. If the JobTracker dies, all the running jobs are lost.

 

3. Apache Storm的使用案例

Apache Storm对于实时大数据流处理非常有名。出于这个原因,大多数公司都将Storm作为其系统的一个组成部分。一些值得注意的例子如下 -

Twitter - Twitter正在将Apache Storm用于其“发布商分析产品”系列。 “发布商分析产品”在Twitter平台中处理每个推文和点击。Apache Storm与Twitter基础架构深度整合。

NaviSite - NaviSite将Storm用于事件日志监视/审计系统。 系统中生成的每个日志都将通过Storm。Storm将根据配置的正则表达式集检查消息,如果匹配,那么该特定消息将被保存到数据库中。

Wego - Wego是位于新加坡的旅行元搜索引擎。 旅游相关数据来自世界各地不同时间的许多来源。Storm帮助Wego搜索实时数据,解决并发问题并找到最终用户的最佳匹配。

 

4. Apache Storm的好处

这里列出了Apache Storm提供的好处:

  • Storm是开源的,强大的和用户友好的。它可以用于小公司以及大公司。
  • Storm容错,灵活,可靠,并支持任何编程语言。
  • 允许实时流处理。
  • Storm的速度令人难以置信,因为它具有处理数据的巨大能力。
  • 通过线性增加资源,Storm即使在负载增加的情况下也能保持性能。它具有高度的可扩展性。
  • Storm在数秒或数分钟内执行数据刷新和端到端交付响应取决于问题。它具有非常低的延迟。
  • Storm拥有运营智能。
  • 即使群集中的任何连接节点死亡或消息丢失,Storm仍可提供有保证的数据处理。

Apache Storm从一端读取​​实时数据的原始流,并通过一系列小处理单元传递它,并在另一端输出处理/有用的信息。下图描述了Apache Storm的核心概念。现在让我们仔细看看Apache Storm的组件组件描 ...