Apache Storm 简介
概念:Apache Storm是一个免费的开源分布式实时计算系统。通过Apache Storm,可以轻松可靠地处理无限制的数据流,从而可以进行实时处理,而Hadoop可以进行批处理。Apache Storm很简单,可以与任何编程语言一起使用,并且使用起来很有趣!Apache Storm具有许多用例:实时分析,在线机器学习,连续计算,分布式RPC,ETL等。Apache Storm速度很快:基准测试表明它每秒可处理每个节点超过一百万个元组处理。它具有可扩展性,容错性,可确保您的数据将得到处理,并且易于设置和操作。Apache Storm与您已经使用的排队和数据库技术集成。Apache Storm拓扑会消耗数据流,并以任意复杂的方式处理这些流,从而在需要时在计算的每个阶段之间重新分配流。在教程中阅读更多内容。
特性:
- Storm是开源的,强大的,用户友好的。它可以用于小公司和大公司。
- Storm是容错的,灵活的,可靠的,并且支持任何编程语言。
- 允许实时流处理。
- Storm是令人难以置信的快,因为它具有巨大的处理数据的力量。
- Storm可以通过线性增加资源来保持性能,即使在负载增加的情况下。它是高度可扩展的。
- Storm在几秒钟或几分钟内执行数据刷新和端到端传送响应取决于问题。它具有非常低的延迟。
- Storm有操作智能。
- Storm提供保证的数据处理,即使群集中的任何连接的节点死或消息丢失。
Apache Storm 历史及由来
Apache Storm由来:举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来、点击、购买啦,相反,如果这个宝贝要等到第二天或者更久才可以被搜出来,估计就会有不少损失了。 再举一个推荐的例子,如果用户昨天在淘宝上买了一双袜子,今天想买一副泳镜去游泳,但是却发现系统在不遗余力地给他推荐袜子、鞋子,根本对他今天寻找泳镜的行为视而不见,这样商家的利益就有所损失。这是因为后台系统做的是每天一次的全量处理,而且大多是在夜深人静之时做的,那么客户今天白天做的事情要到明天才能反映出来。这也就是为什么需要实时处理的原因。
Storm最初由Nathan Marz和BackType的团队创建。BackType是一家社交分析公司。后来,Storm被收购,并通过Twitter开源。
Apache Storm对于实时大数据流处理非常有名。因此,大多数公司都将Storm用作其系统的一个组成部分。一些值得注意的例子如下:
- Twitter - Twitter正在使用Apache Storm作为其“发布商分析产品”。 “发布商分析产品”处理Twitter平台中的每个tweets和点击。 Apache Storm与Twitter基础架构深度集成。
- NaviSite - NaviSite正在使用Storm进行事件日志监控/审计系统。系统中生成的每个日志都将通过Storm。Storm将根据配置的正则表达式集检查消息,如果存在匹配,那么该特定消息将保存到数据库。
- Wego - Wego是位于新加坡的旅行元搜索引擎。旅行相关数据来自世界各地的许多来源,时间不同。Storm帮助Wego搜索实时数据,解决并发问题,并为最终用户找到最佳匹配。
Apache Storm 最新版说明
Apache Storm 2.2.0 发布了,更新内容如下:
新特性
- 将 backtype.storm.messaging.netty-integration-test 端口移植到 Java
- 将 backtype.storm.submitter-test 端口移植到 Java
- NUMA 支持
- HB 超时可在拓扑级别配置
- 每个 Worker RAS 选项实施一个执行程序
- 添加配置以将调度程序行为列入黑名单
- 更改 ConstraintSolverStrategy 以允许扩展组件的最大共置位计数
- 允许为 Metrics-V2 中的 worker 使用 Metrics 的简称
- 为 Storm UI、LogViewer 和 DRPC 服务器启用 SSL 凭据自动重新加载
新版本还包含大量改进和 bug 修复,详情见更新说明:https://storm.apache.org/2020/06/30/storm220-released.html