Apache Storm - 教程
-
简述
Storm 最初是由Nathan Marz和团队在BackType. BackType 是一家社交分析公司。后来,Storm 被以下公司收购并开源Twitter. 在短时间内,Apache Storm 成为分布式实时处理系统的标准,允许您处理大量数据,类似于 Hadoop。Apache Storm 是用 Java 和 Clojure 编写的。它继续成为实时分析领域的领导者。本教程将探讨 Apache Storm 的原理、分布式消息传递、安装、创建 Storm Topology并将它们部署到 Storm 集群、Trident 的工作流程、实时应用程序,最后以一些有用的示例结束。本教程是为有志于使用 Apache Storm 框架从事大数据分析的专业人士准备的。本教程将使您对在分布式环境中创建和部署 Storm 集群有足够的了解。在继续本教程之前,您必须对 Java 和任何 Linux 系统有很好的了解。 -
什么是Apache Storm?
Apache Storm 是一个分布式实时大数据处理系统。Storm 旨在以容错和水平可扩展的方法处理大量数据。它是一个流数据框架,具有最高摄取率的能力。虽然 Storm 是无状态的,但它通过 Apache ZooKeeper 管理分布式环境和集群状态。它很简单,您可以对实时数据并行执行各种操作。Apache Storm 继续成为实时数据分析领域的领导者。Storm 易于设置和操作,它保证每条消息都将通过 Topology至少处理一次。 -
Apache Storm 与 Hadoop
基本上 Hadoop 和 Storm 框架用于分析大数据。两者相辅相成,在某些方面有所不同。Apache Storm 完成了除持久性之外的所有操作,而 Hadoop 擅长一切,但在实时计算方面滞后。下表比较了 Storm 和 Hadoop 的属性。Storm Hadoop 实时流处理 批量处理 无状态 有状态的 具有基于 ZooKeeper 协调的主/从架构。主节点称为nimbus和从节点称为supervisors. 具有/不具有基于 ZooKeeper 的协调的主从架构。主节点是job tracker从节点是task tracker. Storm 流式处理可以在集群上每秒访问数万条消息。 Hadoop 分布式文件系统 (HDFS) 使用 MapReduce 框架来处理需要数分钟或数小时的大量数据。 Storm Topology会一直运行,直到用户关闭或出现不可恢复的意外故障。 MapReduce 作业按顺序执行并最终完成。 两者都是分布式和容错的 如果 nimbus / supervisor 死了,重新启动会使其从停止的地方继续,因此不会受到任何影响。 如果 JobTracker 死了,所有正在运行的作业都将丢失。 -
Apache Storm 的用例
Apache Storm 以实时大数据流处理而闻名。出于这个原因,大多数公司都将 Storm 用作其系统的一个组成部分。一些值得注意的例子如下 -Twitter− Twitter 在其“发布者分析产品”系列中使用 Apache Storm。“发布者分析产品”处理 Twitter 平台中的每条推文和点击。Apache Storm 与 Twitter 基础架构深度集成。NaviSite− NaviSite 正在将 Storm 用于事件日志监控/审计系统。系统中产生的每一条日志都会经过Storm。Storm 将根据配置的正则表达式集检查消息,如果匹配,则该特定消息将保存到数据库中。Wego− Wego 是位于新加坡的旅游元搜索引擎。旅行相关数据来自世界各地不同时间的许多来源。Storm 帮助 Wego 搜索实时数据,解决并发问题并为最终用户找到最佳匹配。 -
Apache Storm 的好处
以下是 Apache Storm 提供的好处列表 --
Storm 是开源的、强大的和用户友好的。它可以在小公司和大公司中使用。
-
Storm 容错、灵活、可靠,并且支持任何编程语言。
-
允许实时流处理。
-
Storm 的速度快得令人难以置信,因为它具有强大的数据处理能力。
-
Storm 通过线性添加资源,即使在负载增加的情况下也能保持性能。它具有高度可扩展性。
-
Storm 在几秒或几分钟内执行数据刷新和端到端交付响应,具体取决于问题。它的延迟非常低。
-
Storm 拥有运营智能。
-
即使集群中的任何连接节点死亡或消息丢失,Storm 也提供有保证的数据处理。
-