`
- 浏览:
6565 次
- 性别:
- 来自:
苏州
-
Twitter 将 Storm 正式开源了,这是一个分布式的、容错的实时计算系统,它被托管在 GitHub 上,遵循 Eclipse Public License 1.0。Storm 是由 BackType 开发的实时处理系统,BackType 现在已在 Twitter 麾下。GitHub 上的最新版本是 Storm 0.5.2,基本是用 Clojure 写的。
Storm 为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。Storm 也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式 RPC”,以并行的方式运行昂贵的运算。Storm 的主工程师 Nathan Marz 表示:
Storm 可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm 之于实时处理,就好比 Hadoop 之于批处理。Storm 保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的是你可以使用任意编程语言来做开发。
Storm 的主要特点如下:
简单的编程模型。类似于 MapReduce 降低了并行批处理复杂性,Storm 降低了进行实时处理的复杂性。
可以使用各种编程语言。你可以在 Storm 之上使用各种编程语言。默认支持 Clojure、Java、Ruby 和 Python。要增加对其他语言的支持,只需实现一个简单的 Storm 通信协议即可。
容错性。Storm 会管理工作进程和节点的故障。
水平扩展。计算是在多个线程、进程和服务器之间并行进行的。
可靠的消息处理。Storm 保证每个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息。
快速。系统的设计保证了消息能得到快速的处理,使用ØMQ 作为其底层消息队列。
本地模式。Storm 有一个“本地模式”,可以在处理过程中完全模拟 Storm 集群。这让你可以快速进行开发和单元测试。
Storm 集群由一个主节点和多个工作节点组成。主节点运行了一个名为“Nimbus”的守护进程,用于分配代码、布置任务及故障检测。每个工作节点都运行了一个名为“Supervisor”的守护进程,用于监听工作,开始并终止工作进程。Nimbus 和 Supervisor 都能快速失败,而且是无状态的,这样一来它们就变得十分健壮,两者的协调工作是由 Apache ZooKeeper 来完成的。
Storm 的术语包括 Stream、Spout、Bolt、Task、Worker、Stream Grouping 和 Topology。Stream 是被处理的数据。Sprout 是数据源。Bolt 处理数据。Task 是运行于 Spout 或 Bolt 中的线程。Worker 是运行这些线程的进程。Stream Grouping 规定了 Bolt 接收什么东西作为输入数据。数据可以随机分配(术语为 Shuffle),或者根据字段值分配(术语为 Fields),或者广播(术语为 All),或者总是发给一个 Task(术语为 Global),也可以不关心该数据(术语为 None),或者由自定义逻辑来决定(术语为 Direct)。Topology 是由 Stream Grouping 连接起来的 Spout 和 Bolt 节点网络。在 Storm Concepts 页面里对这些术语有更详细的描述。
可以和 Storm 相提并论的系统有 Esper、Streambase、HStreaming 和 Yahoo S4。其中和 Storm 最接近的就是 S4。两者最大的区别在于 Storm 会保证消息得到处理。这些系统中有的拥有内建数据存储层,这是 Storm 所没有的,如果需要持久化,可以使用一个类似于 Cassandra 或 Riak 这样的外部数据库。
入门的最佳途径是阅读 GitHub 上的官方《Storm Tutorial》。其中讨论了多种 Storm 概念和抽象,提供了范例代码以便你可以运行一个 Storm Topology。开发过程中,可以用本地模式来运行 Storm,这样就能在本地开发,在进程中测试 Topology。一切就绪后,以远程模式运行 Storm,提交用于在集群中运行的 Topology。Maven 用户可以使用 clojars.org 提供的 Storm 依赖,地址是 http://clojars.org/repo。
要运行 Storm 集群,你需要 Apache Zookeeper、ØMQ、JZMQ、Java 6 和 Python 2.6.6。ZooKeeper 用于管理集群中的不同组件,ØMQ 是内部消息系统,JZMQ 是ØMQ 的 Java Binding。有个名为 storm-deploy 的子项目,可以在 AWS 上一键部署 Storm 集群。关于详细的步骤,可以阅读 Storm Wiki 上的《Setting up a Storm cluster》。
欲了解 Storm 的更多信息,请访问官方 Storm Wiki。你也可以加入 Storm 邮件列表和 freenode 上的 Storm IRC(#storm-user)。你还可以访问徐明明的博客。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop
### Twitter Storm:实时计算系统详解 #### 背景与定义 Twitter Storm 是一款由Apache基金会维护的开源分布式实时计算系统。它最初由BackType公司开发,并于2011年开源,随后被Twitter收购并进一步发展。Storm 的...
Twitter Storm是一个开源的分布式实时计算系统,它被设计用于处理和汇总大规模的数据流。这个压缩包包含的是Nathan Marz开发的Storm项目的源代码,版本号为9a3e1ec。在深入探讨Storm的核心原理和实现细节之前,我们...
Storm 是一款开源的分布式实时计算系统,由 Twitter 的流处理技术创始人 Nathan Marz 开发,并于2012年发布。它能够处理大量的数据流,实现低延迟的数据处理,并提供容错机制确保数据处理的可靠性。Storm 的设计目标...
【描述】: Twitter Storm是一个开源的分布式实时计算系统,它允许开发者构建可以处理无界数据流的应用程序。这个技术源自于Twitter,但现在已经成为Apache软件基金会的一个顶级项目,被广泛用于大数据实时分析、日志...
【标题】"基于Java的开放实时数据处理平台Twitter Storm"是一个强大的开源系统,它专为大规模数据流处理而设计。Storm是由Nathan Marz开发的,并在2011年被Twitter收购,随后成为了其核心的数据处理技术之一。这个...
而Storm则在处理不断产生的实时数据流方面表现出色,例如处理Twitter数据流等。 总之,Hadoop、Hive、HBase、Spark和Storm都是当前大数据领域不可或缺的技术组件。它们各自解决了不同的问题,同时也能够相互配合,...
Storm是Twitter开源的分布式实时计算系统,它允许开发者进行连续的数据处理,即数据一旦进入系统,就会立即被处理并产生结果。Storm的核心概念包括:拓扑结构(Topology)、 bolt(处理组件)和spout(数据源)。...
在这个过程中,文档《Twitter Storm系列》flume-ng+Kafka+Storm+HDFS 实时系统搭建.docx和《安装扎记.pdf》将提供详细的步骤指导和常见问题解决方案,帮助你顺利完成整个系统的搭建和优化。 总的来说,LNMP与实时大...
Storm是一个开源的分布式实时计算框架,主要用于处理无界的数据流,类似于Hadoop对数据进行批处理的方式。Storm的主要特点包括: - 开发语言:主要使用Clojure和Java编写。 - 创建历程:最初由Nathan Marz及其团队...
Apache Storm作为Twitter开源的实时计算系统,为解决这一挑战提供了强大的解决方案。与Hadoop的批处理不同,Storm专注于实时处理,允许数据在生成时即被分析,确保了数据的时效性。 Storm的核心特性包括: 1. **...
Storm是一个开源的分布式实时计算系统,由Twitter开发并贡献给了Apache基金会。它允许开发者持续处理无限的数据流,提供低延迟和高吞吐量的实时数据处理能力。在大数据领域,Storm被视为实时计算领域的Hadoop,为...
我们经常用的一个非常有效的开源实时计算工具就是Storm ——Twitter开发,通常被比作“实时的Hadoop”。然而Storm远比Hadoop来的简单,因为用它处理大数据不会带来新老技术的交替。ShruthiKumar、SiddharthPatankar...
Storm是一个开源的分布式实时计算系统,由Twitter开发并贡献给社区,用于处理无界数据流。它具有高容错性和可扩展性,能够保证消息的精确一次处理(exactly-once processing guarantee)。Storm在大数据处理领域广泛...
Storm是Twitter开源的实时计算系统,用于处理无界数据流。它可以保证消息的零丢失处理,并实现低延迟的实时计算,常用于实时数据分析和在线机器学习。 6. **Zookeeper**: Zookeeper是Apache的一个分布式协调服务...
Storm是一个开源的分布式实时计算系统,由Twitter开发并开源,旨在实现高可靠性、可伸缩性、快速处理无界数据流。Storm可以与Hadoop进行类比,但相较于Hadoop处理批量数据的批处理方式,Storm更专注于处理实时数据流...
这时,Twitter推出的开源项目Storm进入了人们的视线。Storm是一个分布式、容错的实时流计算系统,它能够在数据流经过系统时进行实时处理,而无需像Hadoop那样将数据写入磁盘再进行处理,从而大大提高了效率。 1. ...
Apache Storm是Twitter开源的分布式实时计算系统,可以持续处理无界数据流。与Hadoop等批处理系统不同,Storm提供的是低延迟的流处理能力,适合实时分析、在线机器学习和连续计算。 2. **Storm架构** Storm由多个...