说说阿里增量计算框架Galaxy (一)

背景

Galaxy是阿里数据平台事业部,实时计算组自研的增量计算框架。今年双十一,阿里直播大屏就是Galaxy支持和保障的重要业务之一,相信大家可能看过双十一之后网上一些介绍性的文章了,比如阿里研发实时计算平台 每秒运算量将超千万,不过这篇文章面向非技术人员,最后的比喻也是有点醉。还这篇比较新的 阿里巴巴实时数据公共层助力双11媒体直播
本文我会介绍一些我认为可以公开出来说的galaxy技术上的特点,让技术人员对该计算框架有个更准确的认识。

计算模型

首先明确根本的一点,Galaxy是增量计算模型,不是"简单"的流计算,这点在业界是没有的。增量计算是有状态的计算。批量计算里,每一次的输出结果只与本次全量扫进来的数据有关,而且计算是幂等的。增量计算,每批计算结果,是由本批数据和历史批次结果计算出来的,即newValue = function(currentBatchValue, oldValue),然后本批计算出来的newValue会作为oldValue参与下一批数据的计算中。这个公式看起来与迭代计算相似,实质上,迭代计算是增量计算的一种。
下面说明流计算与Galaxy的关系。

Galaxy与Storm

网上对Galaxy有过了解的技术朋友,包括阿里内部的同事,可能会认为Galaxy只是Storm上的一层封装。在这里,我严肃地告诉大家,只要你动脑子想一想,绝对不是的,不但不是封装,而且与Storm有本质区别。
Storm是流式计算,数据流进,经历拓扑计算,数据流出,与增量模型没有半毛钱关系。如果真要类比storm和galaxy,大家可以想一想Trident。trident是storm上的封装,暴露接口让用户可以操纵state,如此,批与批之间的计算结果的确可以通过state持久化起来了,并且可以参与下一批的计算,这看上去与galaxy做的相似。但还是有一个本质区别,trident的state不是它能掌控的,说白了,你state是额外的辅助存储,不是与我这个引擎挂钩的,而Galaxy中的state是与整个计算框架关联起来的,这点太重要了,而且实现起来是很复杂的。
再说为什么现在的galaxy版本需要依赖storm。galaxy目前旧的版本还是跑在storm上的,借助storm的拓扑拉起,worker调度和消息传递。galaxy只是需要一个能够拉起worker,传递消息或者作RPC的引擎而已,storm是当时一个的临时选择。目前,storm引擎已经不再适合galaxy,无论是其拓扑构建和拉起的耗时,还是拓扑的不可变性,或是消息格式及序列化方面的性能等等种种问题,都不再适合galaxy,而仅仅适合于流计算。所以,将来galaxy的引擎,不会是这样。

Galaxy的未来

简单说几点Galaxy的想象空间。
现今Spark可以做的场景,Galaxy都是可以做的,而且Galaxy在性能上至少是准实时的。Spark的RDD代表了使用上的易用性和计算上的reuse数据。Galaxy同样有增量语义,表达能力同样强大的算子层和增量计算模型天然引入的数据reuse。
Galaxy的计算模型在业界是没有的,其计算场景覆盖了流式计算,迭代计算,还可以轻松愉悦地做BSP模型。

全文完 :)

时间: 2024-08-02 08:48:53

说说阿里增量计算框架Galaxy (一)的相关文章

说说阿里增量计算框架Galaxy :增量计算模型 (二)

背景 在前一篇文章中,介绍到了Galaxy的增量计算性质,其state是框架内部管理的,以及与Storm的简单对比.这篇文章将讲述更多Galaxy增量模型的事情,并介绍这套增量模型之上实现的Galaxy SQL和Galaxy Operator,同时会从增量角度对比Spark Streaming. Galaxy MRM增量与Spark Streaming MRM模型全称为MapReduceMerge,比MapReduce做了一个Merge操作.merge阶段可与state交互,读写某个key的ol

一文读懂大数据计算框架与平台

1.前言 计算机的基本工作就是处理数据,包括磁盘文件中的数据,通过网络传输的数据流或数据包,数据库中的结构化数据等.随着互联网.物联网等技术得到越来越广泛的应用,数据规模不断增加,TB.PB量级成为常态,对数据的处理已无法由单台计算机完成,而只能由多台机器共同承担计算任务.而在分布式环境中进行大数据处理,除了与存储系统打交道外,还涉及计算任务的分工,计算负荷的分配,计算机之间的数据迁移等工作,并且要考虑计算机或网络发生故障时的数据安全,情况要复杂得多. 举一个简单的例子,假设我们要从销售记录中统

非常复杂,上双11数据大屏背后的秘密:大规模流式增量计算及应用

回顾大数据技术领域大事件,最早可追溯到06年Hadoop的正式启动,而环顾四下,围绕着数据库及数据处理引擎,业内充斥着各种各样的大数据技术.这是个技术人的好时代,仅数据库领域热门DB就有300+,围绕着Hadoop生态圈的大数据处理技术更是繁花似锦.在云栖社区2017在线技术峰会大数据技术峰会上,阿里云大数据计算平台架构师钱正平做了题为<大规模流式增量计算及应用>的分享,钱正平结合阿里巴巴真实的业务场景为大家分享了流式增量计算编程方面的挑战和当前的解决方案. 首先从理解什么是数据流开始今天的分

流式计算框架-STORM简介

在当前的数据分析领域,对实时数据的计算需求越来越强烈,在此领域,出现了各类计算框架,如:Storm.S4等.目前本土公司对这些流式计算框架的应用也比较广泛,但苦于相关文档英文居多,缺少成系列且与官方相对应的中文手册.本系列试图从官方文档翻译入手,给大家呈现较为完备的中文资料,同时也是对自身知识的总结沉淀. 在这个系列博客中,我们选择了twitter的Storm框架,原因很简单,因为本人长期使用的就是该框架,咱们先从简介开始. Apache Storm是一个免费.开源.分布式的实时计算系统.相对于

阿里云云计算认证ACP模拟考试练习题第6套模拟题分享(共10套)

阿里云认证考试包含ACA.ACP.ACE三种认证类型,报名考试最多的是ACP认证考试,本人整理了100道全真阿里云ACP认证考试模拟试题,适合需要参加阿里云ACP认证考试的人复习,模拟练习.此为第6套模拟题分享. 阿里云云计算认证ACP模拟考试练习题6 认证级别 云计算 大数据 云安全 中间件 助理工程师(ACA) 云计算助理工程师认证报名入口 大数据助理工程师认证报名入口 云安全助理工程师认证报名入口 专业工程师(ACP) 云计算工程师认证报名入口 大数据工程师认证报名入口 大数据分析师认证报

志愿计算框架与论坛

志愿计算,是一种利用计算机闲置资源参与公益类分布式计算的方法. 志愿计算的框架: 1 [email protected] [email protected]是一个研究蛋白质折叠,误折,聚合及由此引起的相关疾病的分布式计算工程.蛋白质是一个生物体系的网络基础,它们是一个个纳米级计算机.在蛋白质实现它的生物功能之前,它们会把自己装配起来,或者说是折叠:折叠过程对人类而言仍是未解之谜.当蛋白质没有正确折叠(误折)无疑会产生严重的后果,包括许多知名的疾病,比方阿兹海默症(Alzheimer's),疯牛病

[.NET网格计算框架] Alchemi

Alchemi [.NET网格计算框架] 是 一个以使用简易为目的的Windows下的网格计算框架.它提供了:a)开发网格软件的编程环境 和 b)建造网格和运行网格软件的运行机制.       Alchemi提供了软件合成的弹性.你可以使用强劲的网格线型模式以任何.NET支援的语言写网格软件. 或者把现有的软件以编程或宣布的方式改成网格软件. 建造同一水平网格(捆绑群)只要在一台电脑上安装Alchemi Manager和在每一台网格电脑上安装Alchemi Executor. 这一弹性的模式使E

Spark Streaming实时计算框架介绍

http://www.cnblogs.com/Leo_wl/p/3530464.html 随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐.用户行为分析等. Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API.基于内存的高速执行引擎,用户可以结合流式.批处理和交互试查询应用.本文将详细介绍Spark Streaming实时计算框架的原理与特点.适用场景. Spar

开源图计算框架GraphLab介绍

GraphLab介绍 GraphLab 是由CMU(卡内基梅隆大学)的Select 实验室在2010 年提出的一个基于图像处理模型的开源图计算框架,框架使用C++语言开发实现.该框架是面向机器学习(ML)的流处理并行计算框架,可以运行在多处理机的单机系统.集群或是亚马逊的EC2 等多种环境下.框架的设计目标是,像MapReduce一样高度抽象,可以高效执行与机器学习相关的.具有稀疏的计算依赖特性的迭代性算法,并且保证计算过程中数据的高度一致性和高效的并行计算性能.该框架最初是为处理大规模机器学习