Apache Storm - 简介



什么是 Apache Storm?

Apache Storm是一个分布式实时大数据处理系统。Storm旨在以容错且横向可扩展的方式处理海量数据。它是一个流数据框架,具有最高的摄取速率能力。尽管Storm是无状态的,但它通过Apache ZooKeeper管理分布式环境和集群状态。它很简单,您可以并行地对实时数据执行各种操作。

Apache Storm继续引领实时数据分析。Storm易于设置和操作,并保证每条消息至少会被拓扑处理一次。

Apache Storm vs Hadoop

基本上,Hadoop和Storm框架都用于分析大数据。它们相互补充,但在某些方面有所不同。Apache Storm执行所有操作(持久性除外),而Hadoop擅长所有操作,但在实时计算方面有所欠缺。下表比较了Storm和Hadoop的属性。

Storm Hadoop
实时流处理 批处理
无状态 有状态
基于ZooKeeper协调的主/从架构。主节点称为nimbus,从节点称为supervisors 基于ZooKeeper协调的主从架构。主节点是job tracker,从节点是task tracker
Storm流处理进程可以在集群上每秒访问数万条消息。 Hadoop分布式文件系统(HDFS)使用MapReduce框架处理海量数据,这需要几分钟或几小时。
Storm拓扑运行直到用户关闭或发生意外的不可恢复的故障。 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也能保证数据处理。

广告