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 提供的好处列表 −

  1. Storm 是开源的、可靠的且用户友好的。它可以在小公司和大型公司中使用。

  2. Storm 具有容错性、灵活性、可靠性,且支持任何编程语言。

  3. Allows real-time stream processing.

  4. Storm 以难以置信的速度运行,因为它有着强大的数据处理能力。

  5. Storm 可以通过线性增加资源,即使在负载不断增加的情况下也能保持性能。它具有高度可扩展性。

  6. Storm 会在几秒或几分钟内执行数据刷新和端到端传递响应,具体取决于问题。它的延迟非常低。

  7. Storm has operational intelligence.

  8. Storm 即使在群集中的任何已连接节点崩溃或消息丢失的情况下,也能提供数据处理保障。