2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Twitter Storm:开源实时 Hadoop

  • 2011-09-29
  • 本文字数:1749 字

    阅读完需:约 6 分钟

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 的主要特点如下:

  1. 简单的编程模型。类似于 MapReduce 降低了并行批处理复杂性,Storm 降低了进行实时处理的复杂性。
  2. 可以使用各种编程语言。你可以在 Storm 之上使用各种编程语言。默认支持 Clojure、Java、Ruby 和 Python。要增加对其他语言的支持,只需实现一个简单的 Storm 通信协议即可。
  3. 容错性。Storm 会管理工作进程和节点的故障。
  4. 水平扩展。计算是在多个线程、进程和服务器之间并行进行的。
  5. 可靠的消息处理。Storm 保证每个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息。
  6. 快速。系统的设计保证了消息能得到快速的处理,使用ØMQ 作为其底层消息队列。
  7. 本地模式。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)。

查看英文原文: Twitter Storm: Open Source Real-time Hadoop

2011-09-29 11:1217206
用户头像

发布了 135 篇内容, 共 63.8 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

“PO高阶精进课程” 5月10-11日 · A-CSPO认证【提前报名特惠】

ShineScrum

智能制造:数字化转型的五大陷阱

积木链小链

数字化转型 制造业 智能制造

让企业沟通更顺畅,BeeWorks Meet局域网视频软件的五大优势

BeeWorks

音视频 即时通讯 IM 私有化部署 局域网视频软件

BeeWorks Meet:为企业打造专属的私有化线上会议系统

BeeWorks

即时通讯 即时通讯IM 私有化部署 企业级应用 局域网视频软件

“数字创新产品课程” 4月25-26日 · CSPO认证在线课程

ShineScrum

产品负责人 CSPO认证

HarmonyOS @Reusable 装饰器自学指南:高性能组件复用实战指南

李游Leo

@Reusable

2.5D封装为何成为AI芯片的“宠儿”?

E科讯

全民豪车时代,享界S9增程版靠什么“一鼎定乾坤”?

脑极体

AI

鸿蒙摄像机,一场智能安防的“平权革命”

脑极体

AI

MES系统助力漆包线工厂,轻松攻克生产管理难点

万界星空科技

数字化 mes 漆包线mes 漆包线 制造业工厂

外贸人必看!三步用云手机轻松收集产品反馈

Ogcloud

云手机 海外云手机 舆情监控 舆情监测 海外舆情监控

怎么用DeepSeek生成甘特图?DS高阶使用技巧分享!

职场工具箱

甘特图 在线白板 AIGC AI 绘图 DeepSeek

全民豪车时代,享界S9增程版靠什么“一鼎定乾坤”?

脑洞汽车

AI

项目管理系统(源码+讲解+演示)

深圳亥时科技

2025年企业组网新趋势:SASE与SD-WAN发展解析

Ogcloud

SD-WAN 组网 企业组网 企业网络 SD-WAN服务商

SvelteKit 最新中文文档教程(12)—— 高级路由

冴羽

React Svelte SvelteKit

等保测评取消打分《网络安全等级测评报告模版(2025版)》变更

黑龙江陆陆信息测评部

平安证券 NoETL 指标平台实践:统一数据口径,驱动高效经营分析与智能决策

Aloudata

数据仓库 数据分析 大模型 指标平台 万数皆可问

谁是 AI 搜索先锋?阿里云携手 Elastic 正式启动先锋者招募!

阿里云大数据AI技术

elastic 阿里云 搜索 AI搜索

数字藏品NFT的智能合约开发

北京木奇移动技术有限公司

数字藏品 软件外包公司 音乐NFT 体育NFT

JimuReport 积木报表 v1.9.5发布,免费的可视化报表

JEECG低代码

报表 可视化数据 报表打印 数据报表

数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)

SelectDB

数据湖 Doris LakeHouse trino 湖仓一体

MySQL 优化利器 SHOW PROFILE 的实现原理

不在线第一只蜗牛

MySQL 数据库

HarmonyOS:动画 motionPath 、 animateToImmediately API自学指南

李游Leo

HarmonyOS

数字藏品(NFT)项目的上线流程

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

HarmonyOS:ArkTS 显式动画 animateTo 自学指南

李游Leo

HarmonyOS

HarmonyOS:动画 motionPath 、 animateToImmediately API自学指南

李游Leo

HarmonyOS

Karmada Dashboard 首个版本发布!开启多云编排可视化新篇章

华为云原生团队

云计算 容器 云原生

昆仑万维发布 Mureka TTS API 和音乐推理大模型;通义发布小尺寸端到端多模态模型 Qwen2.5-Omni丨日报

声网

湖北文旅智能化财务共享中心正式上线,树立文旅行业数字化转型新标杆

用友智能财务

财务 会计

dbops 助力 GreatSQL 单机架构安装部署

GreatSQL

Twitter Storm:开源实时Hadoop_Java_Bienvenido David_InfoQ精选文章