Apache Storm 简明教程
Apache Storm - Introduction
What is Apache Storm?
Apache Storm 是一个分布式实时大数据处理系统。Storm 被设计为以容错和水平可扩展的方法处理大量数据。它是一个流数据框架,具有最高的摄取率。虽然 Storm 是无状态的,但它通过 Apache ZooKeeper 管理分布式环境和集群状态。它很简单,并且您可以并行对实时数据执行各种操作。
Apache Storm 继续成为实时数据分析的领导者。Storm 易于设置和操作,并且保证每条消息都将至少处理一次。
Apache Storm vs Hadoop
基本上,Hadoop 和 Storm 框架用于分析大数据。它们在某些方面互补,但在某些方面也有所不同。Apache Storm 除了持久性之外,执行所有操作,而 Hadoop 擅长所有内容,但实时计算方面滞后。下表比较了 Storm 和 Hadoop 的属性。
Storm |
Hadoop |
Real-time stream processing |
Batch processing |
Stateless |
Stateful |
基于 ZooKeeper 协调的主/从架构。主节点称为 nimbus ,从节点称为 supervisors 。 |
基于或者不基于 ZooKeeper 的协调的主从架构。主节点为 job tracker ,从节点为 task tracker 。 |
Storm 流处理可以在集群上每秒访问数万条消息。 |
Hadoop 分布式文件系统 (HDFS) 使用 MapReduce 框架处理需要数分钟或数小时的大量数据。 |
Storm 拓扑运行,直到用户关闭或发生意外的不可恢复故障为止。 |
MapReduce 作业按顺序执行,最终完成。 |
Both are distributed and fault-tolerant |
如果 Nimbus/监管者进程死了,重新启动会使其从停止处继续进行,因此不受影响。 |
Use-Cases of Apache Storm
Apache Storm 以实时大数据流处理而闻名。出于这个原因,大多数公司将 Storm 用作其系统的组成部分。一些值得注意的示例如下 −
Twitter − Twitter 使用 Apache Storm 来处理其 “Publisher Analytics 产品” 的范围。Publisher Analytics 产品在 Twitter 平台中处理每条推文和点击。Apache Storm 与 Twitter 基础设施深度集成。
NaviSite − NaviSite 使用 Storm 用于事件日志监控/审计系统。在系统中生成的每条日志都将通过 Storm。Storm 将根据配置的正则表达式集检查消息,如果有匹配项,则会将该特定消息保存到数据库中。
Wego − Wego 是位于新加坡的旅游元搜索引擎。与旅游相关的的数据来自世界各地,时间不同。Storm 帮助 Wego 搜索实时数据、解决并发问题并找到最终用户的最佳匹配。
Apache Storm Benefits
以下是 Apache Storm 提供的好处列表 −
-
Storm 是开源的、可靠的且用户友好的。它可以在小公司和大型公司中使用。
-
Storm 具有容错性、灵活性、可靠性,且支持任何编程语言。
-
Allows real-time stream processing.
-
Storm 以难以置信的速度运行,因为它有着强大的数据处理能力。
-
Storm 可以通过线性增加资源,即使在负载不断增加的情况下也能保持性能。它具有高度可扩展性。
-
Storm 会在几秒或几分钟内执行数据刷新和端到端传递响应,具体取决于问题。它的延迟非常低。
-
Storm has operational intelligence.
-
Storm 即使在群集中的任何已连接节点崩溃或消息丢失的情况下,也能提供数据处理保障。