2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Twitter 已经用 Heron 替换了 Storm

  • 2015-06-15
  • 本文字数:944 字

    阅读完需:约 3 分钟

Twitter 已经用 Heron 替换了 Storm。此举将吞吐量最高提升了 14 倍,单词计数拓扑时间延迟最低降到了原来的 1/10,所需的硬件减少了 2/3。

Twitter 使用 Storm 实时分析海量数据已经有好几年了,并在 2011 年将其开源。该项目稍后开始在 Apache 基金会孵化,并在去年秋天成为顶级项目。Storm 以季度为发布周期,现在已经达到了 0.9.5 版本,并且正在向着人们期望的 1.0 稳定版前进。但一直以来,Twitter 都在致力于开发替代方案 Heron,因为 Storm 无法满足他们的实时处理需求。

Twitter 的新实时处理需求包括:“每分钟数十亿的事件;大规模处理具有次秒级延迟和可预见的行为;在故障情况下,具有很高的数据准确性;具有很好的弹性,可以应对临时流量峰值和管道阻塞;易于调试;易于在共享基础设施中部署。” Karthik Ramasamy 是 Twitter Storm/Heron 团队的负责人。据他介绍,为满足这些需求,他们已经考虑了多个选项:增强 Storm、使用一种不同的开源解决方案或者创建一个新的解决方案。增强 Storm 需要花费很长时间,也没有其它的系统能够满足他们在扩展性、吞吐量和延迟方面的需求。而且,其它系统也不兼容 Storm 的 API,需要重写所有拓扑。所以,最终的决定是创建 Heron,但保持其外部接口与 Storm 的接口兼容。

拓扑部署在一个 Aurora 调度器上,而后者将它们作为一个由多个容器(cgroups)组成的任务来执行:一个 Topology Master、一个 Stream Manager、一个 Metrics Manager(用于性能监控)和多个 Heron 实例 (spouts 和 bolts)。拓扑的元数据保存在 ZooKeeper 中。处理流程通过一种反压机制实现调整,从而控制流经拓扑的数据量。除 Aurora 外,Heron 还可以使用其它服务调度器,如 YARN 或 Mesos。实例运行用户编写的 Java 代码,每个实例一个 JVM。Heron 通过协议缓冲处理彼此间的通信,一台机器上可以有多个容器。(要了解更多关于 Heron 内部架构的细节信息,请阅读论文《 Twitter Heron:大规模流处理》。)

Twitter 已经用 Heron 完全替换了 Storm。前者现在每天处理“数 10TB 的数据,生成数 10 亿输出元组”,在一个标准的单词计数测试中,“吞吐量提升了 6 到 14 倍,元组延迟降低到了原来的五到十分之一”,硬件减少了 2/3。

当被问到 Twitter 是否会开源 Heron 时,Ramasamy 说“在短时间内不会,但长期来看可能。”

2015-06-15 13:409458
用户头像

发布了 1008 篇内容, 共 444.0 次阅读, 收获喜欢 346 次。

关注

评论

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

技术管理简单说

蛋先生DX

技术管理 6月日更

Golang Testing 概览 - 深入篇

hedzr

testing Go 语言

微博评论高性能高可用计算架构设计

Lane

【云原生AI】Fluid + JindoFS 助力微博海量小文件模型训练速度提升 18 倍

阿里巴巴云原生

区块链+印章,区块链技术的长期潜力正在释放

CECBC

(内含福利)不想成为咸鱼,我们怎样找到自己的未来之路呢?

刘华Kenneth

招聘 职场成长 云技术

不惧面试:HTTP协议(一)基础扫盲

悟空聊架构

面试 HTTP post GET 6月日更

16:阿里、京东、美团、电通等电商行业营销模型汇总

punkboy

营销 模型 市场营销 营销数字化 电商营销

模块五 作业

夏日

架构实战营

Kubernetes手记(2)- 核心组件/附件

雪雷

k8s 6月日更

Golang Profiling: 关于 pprof

hedzr

Go 语言 profiling

C/C++学习:C++并发与多线程

奔着腾讯去

c++ 并发 多线程并发 POSIX线程 C++11线程

区块链与物联网的强强联合将带来巨变

CECBC

你知道 Redis 可以实现延迟队列吗?

xcbeyond

队列 延迟队列 6月日更

公司战略:要不要多元化发展?

石云升

创业 职场经验 6月日更

Redis - 复制

旺仔大菜包

redis

使用ABAP批量下载Markdown源文件里的图片到本地

汪子熙

markdown SAP abap download

通过ABAP代码判断当前系统类型,BYD还是S4 OP还是S4 Cloud

汪子熙

SAP abap S/4HANA SAP Business ByDesign

从天而降的AI“青云梯”,开发者们准备好了吗?

脑极体

Linux网络编程-UDP和TCP协议详解

Linux服务器开发

TCP 网络编程 udp 网络协议栈 Linux服务器开发

17:为什么说海澜之家是“男人的货仓”和“服装的搬运工”?

punkboy

品牌 电商 电商平台 服装行业 男友力

高级软件工程师必备的五大技能

架构精进之路

6月日更 软素质

Golang Testing 概览 - 补充篇

hedzr

testing Go 语言 assertion

戏说代理模式

编程三昧

随笔 设计模式 开发 代理模式

2017-2020(4周年)读书年度总结及书单

punkboy

程序员 书单 书单推荐 推荐书单

膜拜!首次公布Java10W字面经,Github访问量破百万

Java 程序员 架构 面试

15:需求沟通的灵魂拷问:人与人之间的信任呢?

punkboy

需求管理 需求 需求落地 信任 信任机制

Pandas之:Pandas简洁教程

程序那些事

Python 大数据 数据分析 pandas 程序那些事

直呼内行!阿里大佬离职带出内网专属“高并发系统设计”学习笔记

Java 程序员 架构 面试

MySQL基础之三:条件查询

打工人!

MySQL 6月日更

Twitter已经用Heron替换了Storm_大数据_Abel Avram_InfoQ精选文章