写点什么

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

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

关注

评论

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

PHP-Trait解析与使用

一个大红包

3月日更

防火墙双机热备

高斯 Redis 在IM场景中的应用

华为云开发者联盟

数据库 IM 华为云 GaussDB(for Redis)

SD-RTN——毫秒级网络加速带来全新的体验

anyRTC开发者

android 5G 音视频 WebRTC RTC

小争哥的算法打卡1群-算法题打卡

黄敏

算法

产品经理面试常见问题总结1

lenka

3月日更

翻译:《实用的Python编程》06_03_Producers_consumers

codists

Python

MindSpore学习(一)

依旧廖凯

28天写作 3月日更

Swagger 常用注解

insight

swagger 3月日更

详解 ZooKeeper 数据持久化

HelloGitHub

Java zookeeper ZooKeeper原理

React在函数组件中使用Ant-Design的Form(form组件和按钮属于不同的组件)

依旧廖凯

28天写作 3月日更

Redis核心技术与实战 学习笔记 02

escray

redis 极客时间 28天写作 3月日更 Redis 核心技术与实战

密码学系列之:csrf跨站点请求伪造

程序那些事

安全 密码学 CSRF 程序那些事

都在讲Redis主从复制原理,我来讲实践总结

华为云开发者联盟

数据库 redis 复制 服务器 非关系型数据库

如何跨单元格绘制斜线

IT蜗壳-Tango

3月日更 IT蜗壳教学

5G与房地产

ES_her0

28天写作 3月日更

随便说说“借鉴”那些事「Day 26」

道伟

28天写作

有意义的选择——初谈心流

Justin

心理学 28天写作 游戏设计

Timewait是什么

我是程序员小贱

3月日更

面试官:线程池中多余的线程是如何回收的?

Java小咖秀

Java 面试 多线程

Nginx 一个高性能的HTTP和反向代理服务器

赖猫

nginx 后端 Linux服务器

腾讯极客技术挑战赛-writeup

图像基本概念,Python 图像算法取经之旅 365 天的第 2 天

梦想橡皮擦

28天写作 3月日更

zookeeper的数据模型详解

大数据技术指南

大数据 zookeeper 28天写作 3月日更

ICASSP2021 M2VoC挑战赛报告会:高分队伍及评审分享回顾(附PPT)

爱奇艺技术产品团队

2021金三银四必备的1000道Java面试题以及答案整理【最新版】

Java 编程 程序员 面试

(28DW-S8-Day26) 研发流程重整

mtfelix

28天写作

mysql5.7安装教程

xiezhr

MySQL 安装 MySQL 运维

产品的基准线:确定性的产品

boshi

产品设计 研发管理 七日更

篮下有球-用例2

z

Go训练营第4周总结

Glowry

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