阿里开源Blink背后的成功“套路”

开源
大数据应用中,Hadoop占据非常重要的地位,运行在其上的大数据应用也很多。但是Hadoop在批处理方面的强大无法掩盖其在实时处理以及流处理方面的缺憾。

 阿里云开源Blink,大数据实时计算进入快车道

大数据应用中,Hadoop占据非常重要的地位,运行在其上的大数据应用也很多。

但是Hadoop在批处理方面的强大无法掩盖其在实时处理以及流处理方面的缺憾。

同时Hadhoop核心组件——MapReduce、Hive和HDFS与边缘组件的边界正在变得越来越清晰,Spark、Flink正在逐渐成长,生态渐渐庞大,可供选择的组件越来越多,引领着实时计算的发展。

其实,实时计算正处于上升期,Google、Intel、IBM等国际巨头都在积极布局。阿里从2015年开始对Flink开源大数据流处理引擎进行改造,并将Flink的计算能力扩大数倍,推出内部版Blink。阿里在Flink上的重磅押注将成为其未来的核心竞争力之一。

果然,根据中国软件网1月28日报道,阿里云正式对外宣布,已开源实时计算平台Blink( Blink开源项目地址:https://github.com/apache/flink/tree/blink)。Blink能将计算延迟降低到人类无法感知的毫秒级,浏览网页的时候,你只是眨了一下眼睛,处理的信息已经刷新了17亿次。

从Spark到Flink:天地如此广阔 

后来者的Spark和Flink正在弥补Hadoop在实时处理方面的劣势,在大数据市场分得了一方天下。

Spark在内存中运行速度比Hadoop快100倍,在磁盘上运行速度快10倍。Spark在机器学习应用中的速度同样更快。

那么 Flink 和现在流行的Spark 到底有什么异同呢?

Flink 是一个面向分布式数据流处理和批量数据处理的开源计算平台。与Spark类似,两者都希望提供一个统一功能的计算平台,都在尝试建立一个统一的平台以运行批量、流式、交互式、图处理、机器学习等应用。

虽然目标非常类似,但是 Flink在实现上和Spark却有很大的不同,Flink 从另一个视角看待流处理和批处理,将二者统一起来:Flink完全支持流处理,作为流处理看待时输入数据流是无界的;批处理被作为一种特殊的流处理,只是输入数据流被定义为有界的。

专家从框架、SQL支持、性能等几方面来对比两者的区别:

框架:Flink和Spark都是基于内存计算、支持实时/批处理等多种计算模式的统一框架,但Flink 的设计理念是 Stream as Platform,而Spark的设计理念是Batch as Platform。

流计算:Spark基于小批量处理,把 Streaming看成是更快的批处理,支持秒级计算,在流计算方面延时较大。而 Flink基于每个事件处理,是真正的流式计算,跟Storm的性能差不多,支持毫秒级计算。

SQL支持:Spark提供SparkSQL,Flink通过Table API提供SQL交互支持。两者相比,Spark对SQL支持更好,而且Spark支持对SQL的优化和扩展等,相关社区非常活跃。而Flink 在SQL支持方面还有很大提升空间。

性能:在计算性能方面,两者都有较好的表现,但Flink支持增量迭代等特性,因此 Flink 具有更好的性能表现。

社区活跃度:Spark社区非常活跃,生态系统越来越完善。而Flink社区活跃度相对较低,但相信随着Flink应用越来越广泛,这一现象会得到改变。

所以,Spark、Flink与Hadoop不是取代,是合作。如果未来用户在部署大数据平台时,选择放弃Spark或者Flink,那就是瞎子下象棋,不识相了!

从Flink到Blink:阿里云如此多娇

而目前市面上,各大公司采取的主流数据解决方案主要为Spark和Flink两种,它们很好地平衡了用户对于批处理和流处理的需求。Spark的技术理念是基于批来模拟流的计算,也就是更擅长有延迟的离线计算,而Flink则完全相反,它采用的是基于流计算来模拟批计,更擅长实时计算。

从目前来看,Spark技术在对海量数据实时性要求高的场景确实显得有些“鸡肋”——食之无味,弃之可惜。与之相比,Flink在实时计算方面显得游刃有余。作为最早布局Flink的公司之一,阿里在2015年就已经开始基于开源版本进行改造和创新,推出内部版本Blink。

据介绍,截止到目前,Blink在批SQL的性能方面已是Flink社区版本性能的10倍以上,在TPCDS场景下Blink的性能也能达到3倍Spark以上。

Blink在阿里内部应用的最多的场景是流计算,但是也有不少业务上线使用了批计算场景。

另外,本次开源Blink代码在 Flink1.5.1 版本之上,加入了大量的新功能,以及在性能和稳定性上的各种优化。

主要贡献包括:阿里巴巴在流计算上积累的一些新功能和性能的优化,一套完整的(能够跑通全部TPC-H/TPC-DS,能够读取 Hive meta和data)高性能Batch SQL,以及一些以提升易用性为主的功能(包括支持更高效的 interactive programming,与zeppelin更紧密的结合,以及体验和性能更佳的Flink web)等。

媒体报道,未来阿里云还将继续贡献Flink在AI、IoT 以及其他新领域的功能和优化。

从内部使用到开源:Blink大数据应用如此绚烂多采

基于 Blink的计算平台于2016年正式上线。截至目前,阿里绝大多数的技术部门都在使用Blink。Blink一直在阿里内部错综复杂的业务场景中锻炼成长。对于内部用户反馈的各种性能、资源使用率、易用性等诸多方面的问题,Blink 都做了针对性的改进。开源之前,Blink在阿里内部应用中得到成功应用。

在2018年双11期间Blink实现了每秒处理17亿次事件的能力,相当于你眨眼一次的0.3秒里,机器已经刷新了5亿次库存。

 

当然除了技术大考的双11之外,阿里云的ET城市大脑更是实时计算着杭州1300个信号灯路口、4500路视频,保障着交通动脉的通畅。其中,依靠计算,一辆救护车到达医院的速度,平均可以缩短50%,排长队的拥堵以及鸣笛、闯红灯式的开道都将被完美解决。

 

据阿里云介绍,Blink 永远不会成为一个独立的开源项目,它一定是Flink的一部分。开源后阿里云期望能找到办法,以最快的方式将 Blink merge 到 Flink 中去。Blink 开源只有一个目的,就是希望 Flink 做得更好。

无论是功能还是生态,阿里云都会在 Flink 社区加大投入,也将投入力量做Flink社区的运营,让Flink真正在中国、乃至全世界大规模地使用起来。

因此,从开源的角度而言,对大数据应用和用户而言确实是一个好消息。

 

作者:刘学习前15年,专注于服务器、存储以及云计算 后5年,爱上基础软件、管理软件,以及国产化系统

责任编辑:武晓燕 来源: 中国软件网
相关推荐

2019-01-28 10:10:36

开源技术 趋势

2020-04-15 13:55:28

Kubernetes容器

2015-09-11 08:59:03

结对编程

2020-08-25 10:00:37

IT科技

2016-09-28 15:03:49

智能交通

2013-08-14 11:14:20

开源Google

2023-05-04 15:57:33

大数据供应链

2023-12-04 14:02:43

大数据信息分析

2019-02-15 15:41:11

代码开发技术

2014-04-14 10:06:22

.Net 开源

2012-08-20 09:41:05

开源技术推特

2012-12-12 16:12:58

KVMIBM

2013-08-21 12:29:12

Facebook开源

2019-01-30 12:00:01

2022-10-21 11:50:04

2016-12-28 14:27:24

大数据Apache Flin搜索引擎

2022-12-26 00:23:05

GitLinuxTorvalds

2015-04-09 09:38:53

Tap4FunAWS手游

2012-07-12 09:37:23

Instagram工程技术

2021-09-06 09:05:20

数据库云计算技术
点赞
收藏

51CTO技术栈公众号