写点什么

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:409240
用户头像

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

关注

评论

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

国内首批!阿里云云原生数据湖产品通过信通院评测认证

阿里云大数据AI技术

大数据 运维 存储

揭秘得物客服IM全链路通信过程

得物技术

前端 大前端 通信 IM 客服

Seata 与三大平台携手编程之夏,百万奖金等你来拿

阿里巴巴云原生

阿里云 开源 云原生 seata

Flutter 中的 ValueNotifier 和 ValueListenableBuilder

坚果

flutter dart 6月月更

用Python写一个简易机器人,超级简单!

王小王-123

python编写机器人 python项目 语法知识大全

我们如何拿到自己满意的薪资呢?这些套路还是需要掌握的

看山

闲聊

科普达人丨漫画图解什么是eRDMA?

阿里云弹性计算

大数据 TCP/IP RDMA

OLAP数据库引擎如何选型?

奇点云

OLAP 数据库引擎 OLAP数据库

架构实战营模块 5 作业

Roy

架构实战营

我的远程办公深度体验 | 社区征文

6个核桃

初夏征文

Dart 开发技巧

Geek_0a3437

flutter android dart 6月月更

直播带货源码开发中,如何降低直播中的延迟?

开源直播系统源码

软件开发 直播系统 直播源码

今晚19:00知识赋能第2期直播丨OpenHarmony智能家居项目之控制面板界面设计

OpenHarmony开发者

Open Harmony

Scala 基础 (四):函数式编程【从基础到高阶应用】

百思不得小赵

scala 函数式编程 大数据开发 6月月更

用Python编写学生成绩管理系统(内附源码)

王小王-123

Python 系统设计 用python编写成绩管理系统 学生成绩管理系统

IOS技术分享| iOS快速生成开发文档(二)

anyRTC开发者

ios objective-c 音视频 移动开发 Jazzy

架构实战营模块5作业

挖了蘑菇哩斯

架构实战营

利用Docker极速下载OpenJDK11源码

程序员欣宸

Docker Openjdk 6月月更

Flutter的特别之处在哪里

Geek_99967b

小程序 Flutter 小菜

14岁懂社会-《关于“工作的幸福”这件事儿》读书笔记

懒时小窝

14岁懂社会

优惠券种类那么多,先区分清楚再薅羊毛!

CRMEB

小心transmittable-thread-local的这个坑

看山

Java’

阅读Skeleton.css源码,改善睡眠质量(尽管它只有419行代码)

德育处主任

CSS 源码 前端 6月月更 skeleton.css

用Python自动化办公(csv项目实战)

王小王-123

csv python项目 自动化办公 大数据分割

Serverless 在阿里云函数计算中的实践

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

【值得收藏】HTML5使用多种方法实现移动页面自适应手机屏幕的方法总结

迷彩

前端 自适应 HTML5, CSS3 6月月更

用Python编写学生成绩计算系统

王小王-123

Python 成绩计算系统 成绩项目 日常编程

传统微服务框架如何无缝过渡到服务网格 ASM

阿里巴巴云原生

阿里云 微服务 云原生 Service Mesh 服务网格 服务网格

K8S V1.23 安装--Kubeadm+contained+公网 IP 多节点部署

云原生 k8s Kubernetes 集群

云技能提升好伙伴,亚马逊云师兄今天正式营业

亚马逊云科技 (Amazon Web Services)

亚马逊云

ABAP-时间函数

桥下本有油菜花

abap

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