Twitter的流处理器系统Heron——升级的storm,可以利用mesos来进行资源调度
2011年,Twitter发布了开源的分布式流计算系统Storm。四年后,随着用户数量的急剧增加,Twitter每天要处理的事件已经增加到十亿以上。Storm系统应对如此庞大而复杂多样的流数据变得十分困难。为了解决该问题,Twitter公司近期开发了一套全新的流处理系统——Heron。近日,Twitter公司在SIGMOD 2015会议上对Heron进行了介绍。
据Twitter公司的技术经理Karthik Ramasamy表示,Twitter公司之前对Storm所存在的问题以及新平台的功能需求进行了详细分析。首先,Storm调试能力较弱的问题曾让Twitter员工比较困扰。在Storm中,一个拓扑中的多个组件是捆绑在操作系统的一个进程中的。这就使得在拓扑出现问题时很难迅速定位问题的根源。用户不得不借助cleaner映射来帮助实现逻辑计算单元到物理进程的映射,从而辅助调试。此外,Storm还需要专门的集群资源来运行拓扑。这就使得它不能利用流行的集群调度软件进行计算资源的优化。而且,在使用Storm时,用户需要手动隔离机器才能部署一个新的产品拓扑。同样,在拓扑不再使用时还需要手动回收机器资源。所有Storm存在的这些问题严重限制了Twitter处理事件的能力,而且带来时间和计算资源的巨大浪费。因此,Twitter认为新的系统需要具备能够每分钟处理上亿的事件、大规模处理数据的延迟为亚秒级、行为可预测、高数据精度、遇到局部流量过高或流水线拥堵时能够自行调整输入速率、调试方便以及能够在共享式框架中部署等功能。
据Karthik透露,Twitter当初考虑了三种可能的方案——扩展现有的Storm系统、利用别的已经开源的系统和开发一套新的系统。然而,Storm系统的核心部件并不能满足现有的需求,而对其进行修改又需要比较长的开发周期。同时,其他的开源流处理框架不能满足Twitter在规模、吞吐量以及延迟等方面的需求。更关键的是,它们不能与Storm的API相兼容,迁移工作会十分复杂。因此,Twitter最终决定开发一套全新的实时流处理系统。
根据设计要求,Heron保持了与Storm相同的数据模型和API,运行的也是由spout和bolt构成的拓扑。其总体框架包含了一个调度器和若干个拓扑。该调度器只是一个抽象模型,可以具体化为YARN、Mesos或者ECS等,方便资源共享。用户利用API提交拓扑到调度器后,调度器把每个拓扑当作一个单独的任务,并根据集群中节点利用情况分派若干个容器来执行。在这些容器中,其中一个运行拓扑master,负责管理拓扑。剩余的每一个容器都需要运行一个流管理器来负责数据路由、一个metric管理器负责收集和报告各种各样的metric以及若干个Heron实例进程来运行用户自定义的spout/bolt代码。最后,拓扑的元数据,如物理规划和执行细节等都被保存在ZooKeeper中。
因此,Heron能够轻松部署在运行如Mesos、YARN或者自定义调度框架的共享架构中。而且,Heron向后兼容Storm,使得原来基于Storm的其它系统可以继续使用。在Heron中运行已有的Storm拓扑完全不需要任何改变,移除了复杂的迁移过程。容器中的Heron实例执行的是单独的任务,保证了用户利用jstack或者heap dump等工具即可进行实例的调试。Metric收集器又使得拓扑中任何组件的失效变得十分明显,大大降低了调试的难度。此外,Heron有一个背压机制能够在运行过程中动态调整拓扑中数据流的速度,而不影响数据精度。同时,与2013年 10月发布的Storm相比,Heron的吞吐量可以到达其10-14倍,而延迟时间却只是它的1/15-1/5,资源消耗也更低。
目前,Heron已经作为Twitter的主要流处理器系统在运行,其中包括了数百个拓扑。由于Heron的低资源消耗特性,迁移后的新系统硬件减少了2/3,大大提高了物理资源的利用率。Karthik也表示,Twitter公司非常愿意与Storm社区或者其他开源的实时流处理系统社区分享Heron的经验和教训。
转自:http://www.infoq.com/cn/news/2015/06/Heron-Twitter
Twitter的流处理器系统Heron——升级的storm,可以利用mesos来进行资源调度的更多相关文章
- Twitter 新一代流处理工具——Heron 该纸币Storm Limitations
Twitter 新一代流处理工具--Heron 该纸币Storm Limitations (空格分隔): Streaming-Processing Storm Problems scalability ...
- Twitter 新一代流处理利器——Heron 论文笔记之Heron架构
Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...
- TOP100summit:【分享实录】Twitter 新一代实时计算平台Heron
本篇文章内容来自2016年TOP100summit Twitter technical lead for Heron Maosong Fu 的案例分享. 编辑:Cynthia Maosong Fu:T ...
- [转帖]实时流处理系统反压机制(BackPressure)综述
实时流处理系统反压机制(BackPressure)综述 https://blog.csdn.net/qq_21125183/article/details/80708142 2018-06-15 19 ...
- Linux系统常用升级的基础包
Linux系统常用升级的基础包 yum -y install lrzsz gcc gcc-c++ make flex autoconf automake vixie-cron libjpeg libj ...
- 流网络分析系统-SNAS
流网络分析系统-SNAS SNAS,Streaming Network Analytics System (project SNAS) ,是一个收集.跟踪.存取 千万条实时路由对象的系统. 官网:ht ...
- 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(视频总揽)
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽) https://v.youku.com/v_show/id_XNDE0Njk3Njg2OA==. ...
- 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽)
我的这个升级篇的代码适用于自己所有的带WIFI和GPRS模块的开发板,升级功能实质上是通过MQTT把数据发给WIFI和GPRS模块,然后模块进行保存和运行. 这个升级程序是当时自己花了两个星期的时间写 ...
- Linux系统下升级Python版本步骤(suse系统)
Linux系统下升级Python版本步骤(suse系统) http://blog.csdn.net/lifengling1234/article/details/53536493
随机推荐
- 使用phpize建立php扩展(Cannot find config.m4)
php源码:/root/soft/php-5.3.4php安装: /usr/local/php [root@ns root]# phpizeCannot find config.m4.Make sur ...
- cocos2dx 3.0rc怎样创建项目
转自官网的文档. How to Run cpp-tests on win32 In this article, I will show you how to run cpp-tests on your ...
- 细细品味大数据--初识hadoop
初识hadoop 前言 之前在学校的时候一直就想学习大数据方面的技术,包括hadoop和机器学习啊什么的,但是归根结底就是因为自己太懒了,导致没有坚持多长时间,加上一直为offer做准备,所以当时重心 ...
- ios 推送 证书配置
S的推送证书,有有效期限制,一般为一年.当我们证书过期的时候,就需要重新生成证书了.有一段时间没有上苹果网站了,昨天上去一看,此奥,改版了,下边我们将重新生成一个正式环境的push推送的证书. 1.先 ...
- 用象棋的思维趣说IT人的职业发展和钱途
最近我花了不少功夫在学习象棋,也学习了王天一等高手的棋路,感觉IT人的职业和下棋一样,往好了讲,争主动权争实惠只争朝夕,往坏了讲,一步走错得用多步来弥补,如果错误太大未必能弥补回来.在本文里,就用下棋 ...
- 逻辑英语 第四季 Speaking and Listening
1. 发音的变革 背字典:牛津双解/朗文英汉 a. 如何一分钟变伦敦腔 发音有两种:伦敦腔/其他 生理分析: ① 后置发音:瞬间华丽变声第一步 东方人靠嘴巴发音: 西方人用胸腔发音[有共鸣] 方法1: ...
- 函数的光滑化或正则化 卷积 应用 两个统计独立变量X与Y的和的概率密度函数是X与Y的概率密度函数的卷积
http://graphics.stanford.edu/courses/cs178/applets/convolution.html Convolution is an operation on t ...
- 【Robot Framework】---- Robot Framework简介、特点、RIDE
Robot Framework简介.特点.RIDE 一.简介.特点. Robot Framework是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型 ...
- springboot + swagger2 学习笔记
引入步骤 1.添加依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springf ...
- opengl绘制图片
#include <GL/glew.h>#include <glut.h>#include "FreeImage.h"#include <stdio. ...