华为云实时计算是一种时间复杂性较低的计算,它有别于传统的计算方式,不会把数据按照一定的时间间隔保存下来,再进行计算,及时性更强。
【编者按】仅仅一个字母的差异,Flink和Blink到底有什么区别?详情见下文。
文章转载自“科技郑能看”,作者郑凯,经编辑发布,供业内人士参考。
“一眨眼,一步望,一擦肩”,在麻花舞台剧《那年的梦想》当中有这样一首原创插曲。形容了一瞬回眸,眨眼之间,往事的一幕幕就凝结在了这个瞬间。
这个如此感性的情景,如果用理性的逻辑来看,就是阿里巴巴当初做“Blink”的思维方式:一个眨眼的瞬间,所有流动的数据会凝结出一个结果。而千千万万个“Blink”所形成的结果,就驱动了整个阿里双11巨大的数据应用场景。
眼下,这个充满情怀的“Blink”,作为Flink中最有场景化支撑的版本,被阿里巴巴宣布开源。
▋“Blink”就像是一见钟情的瞬间
之所以用这么感性的开场白引入,是因为Blink在我眼里本身就像是情人之间的目光。一见钟情的含义,是那一个瞬间,感觉到了爱的味道,它不能有延时,有了延时就意味着过度的思考,那种瞬间萌发的情感必然大打折扣。
这就是实时计算的魅力。
到底什么是实时计算?这本身就是一种时间复杂性较低的计算,它有别于传统的计算方式,不会把数据按照一定的时间间隔保存下来,再进行计算,及时性更强。
举个简单的例子,很多电商遭遇到被薅羊毛的事件。如果是传统的计算模式,当某个流程出现问题后,在当下无法反馈数据,就容易被薅羊毛,苦果子只能自己咽下去。再比如一些互联网金融产品,很多黑客盯着的就是在数据不对称的时间差,如果采用的是实时计算,将这种延迟降低到毫秒级,就会降低诸多风险。
从技术的维度,其实有两种实时计算的体系:Flink和Spark。
Flink是一个高效、分布式、基于Java实现的通用大数据分析引擎,而Spark是一种快速、通用的计算集群系统。这两者都支持实时计算,且都可基于内存计算。但Spark其实是伪实时的分片技术,只能按每秒分片技术,不能每条数据都实时技术,而Flink则没有这个局限。
Spark的技术理念是基于批来模拟流的计算,而Flink则完全相反,它采用的是基于流计算来模拟批计算。阿里巴巴认为,用批来模拟流有一定的技术局限性,并且这个局限性可能很难突破。所以决定用Flink做一个统一的、通用的大数据引擎作为未来的选型,这就是现在的Blink。
从市场发展的情况看,阿里巴巴和腾讯都已经完全拥抱了Flink;美团、滴滴和字节跳动(TMD)三家新兴互联网企业在实时计算场景也都已经以Flink作为主流技术方向开始建设:美团的实时计算集群也已经突破4000台规模,字节跳动的Flink生产集群规模更是已经令人惊讶的已经超过了1w台规模。
▋阿里帮助Flink挑战技术巅峰
仅仅一个字母的差异,Flink和Blink到底有什么区别?
据了解,Flink早期起源于德国柏林工业大学的一个研究项目Stratosphere,并于2014年4月捐献给Apache软件基金会,同时重新定位品牌为Flink,经过8个月孵化期,在2014年12月成功从Apache软件基金会毕业,成为Apache顶级项目。
而阿里巴巴与Flink的结缘则源自2015年,当时阿里是全球第一批使用Flink做大数据计算引擎研发的公司,阿里确定了Flink方向是没错的,并把这个内部版本取名blink,这就是英文眨眼的意思:”一眨眼,所有东西都计算好了!
据说在2016年,阿里和DA的创始人Kostas和Stephan在当年的Hadoop Sumit大会上做了唯二的两场Flink演讲。Kostas主动联系了阿里,希望能用团队研究的成果影响社区。当时阿里的负责人深受感动,“从那时候开始就觉得,我们不仅得把阿里内部的业务做好,还要为Flink 社区做贡献,把Flink 社区做好。”就这样,阿里跟组织“接上了头”,成为了Flink社区的核心成员,也成为Flink后来欣欣向荣的关键。
实际上,Flink是一个典型以来由社区贡献的开源项目。和Linux和OpenStack类似,Flink并不是一套可以直接应用的组件,它必须依赖社区成员代码贡献,并进行版本迭代,去解决各种各样的难题。
比如最初的Flink因为缺乏大规模计算的场景,只能应用于小流量互联网场景的数据处理。直到阿里巴巴决定所有的业务,包括阿里巴巴所有子公司都采用了基于Flink搭建的实时计算平台之后,才是Flink展露头角的开始。
每年双11,阿里总部大屏幕上显示实时成交数字,其背后就是依赖Flink技术。
这就是阿里巴巴在技术视角上的过人之处,2015年时放弃了当时相对主流的Spark,而将Flink引入团队研发,并直接引入到阿里全线业务,从而用场景优势拓展了Flink技术栈前进空间。
客观的说,Blink的成功应用,很明显就是当下Flink的最高成就。
从具体的应用情况来看,目前阿里巴巴集团内的核心业务已经全部用上Blink,并且可以实现毫秒级的延迟情况下,每秒钟处理上亿次的消息或者事件。2018年双11期间Blink实现了每秒处理17亿次事件的能力。除了技术大考双11之外,ET城市大脑实时计算着杭州1300个信号灯路口、4500路视频,保障着交通动脉的通畅。
所以,Flink和Blink的关系就一目了然了。Blink脱胎于Flink,而Flink因Blink拓展了应用场景,变得伟大。
▋推动开源,进而推动实时计算
阿里云的业务都是技术导向的,阿里云的技术路线都是从业务的视角出发,并不会预热开源或是闭源。
所以,Blink的正式开源本身也意味着阿里云对开源世界的态度是积极的。
以Flink为例,阿里巴巴最近几年对ApacheFlink社区进行了持续大力的投入,贡献超过15万行代码,主导建立了FlinkChina中文社区,加速Flink在国内的生态建设。
可以确定的是,在未来Blink并不会成为另外一个项目,会成为Flink的一部分。阿里巴巴会和Data Artisans合作推动Flink社区的发展,改造后的Blink逐步回馈给Flink,这次开源是为了更好更快地推动Flink的发展。