
导语:又到了一年一度应届生实习找工作的时候,有些同学在学校期间对大数据技术感兴趣,但现在也不免心中忐忑:火了十多年的大数据技术还有前途吗?现在进入还有发展机会吗?
对于这个问题,我找到蚂蚁资深技术专家、新计算引擎架构师周家英一通追根究底,试图拨开浮在大数据表面的迷雾,弄清这个技术领域的来龙去脉和发展前景。
不过需要说明的是,大数据技术分为多个方面,本文只涉及其中的核心底层技术之一,也就是计算引擎。正是这个引擎的轰鸣,载着我们走过精彩纷呈的移动互联网,一头撞入充满未知的AI时代。
从MapReduce到Flink,计算引擎都经历了哪些进化?
何谓计算引擎,一言以蔽之,就是专门处理数据的程序,在大数据之前,人们用数据库来处理数据,人们常说的SQL,它是一种DSL,它的背后正是数据库的计算引擎,但是数据库的计算和存储通常被集成在一起,统称为数据库引擎。
互联网时代到来之后,由于需要计算的数据量太大,计算引擎和存储引擎分开各自演进,这一分开,让两者获得解放,从而有了无数可能,也就开启了狂飙突进的大数据时代。
从谷歌论文的大数据三驾马车到现在,计算引擎经历了多重演进。
2004年前后,谷歌发布了三篇重要的论文,也就是大数据的三驾马车:分布式文件系统GFS、计算引擎MapReduce、分布式数据库BigTable。
2006年,Lucene项目的创始人 Doug Cutting依据论文原理,开发出类似GFS和MapReduce的功能框架,后来被命名为Hadoop。Hadoop套件中的MapReduce实现了传统数据库计算能力之外的种种操作,让搭建一个大数据平台成为可能,它的种种设计理念,一直影响着后来者。
(Hadoop之父Doug Cutting)
Lucene是 一个提供全文搜索功能的开源项目,在很长时间里都是开发者的首选。当时,Cutting和同为程序员出身的Mike Cafarella决定开发一款可以代替当时的主流搜索产品的开源搜索引擎,这个项目被命名为Nutch。Doug Cutting 希望以开源架构开发出一套搜索技术,类似于现在的谷歌搜索或是微软的必应(Bing)。刚好谷歌的论文发布了,Doug Cutting 利用 Google 公开的技术扩充他已经开发出来的 Lucene 搜索技术,进而打造出了 Hadoop。
Hadoop后来演变成了一个庞大的生态,Facebook、Yahoo以及高校和社区都为它贡献了大量的组件,让Hadoop在一段时间内成为大数据平台的事实标准。
2012年,UC 伯克利AMP 实验室的一位博士,在使用 MapReduce 进行大数据实验计算时,发现性能非常差,不能满足其计算需求。为了改进这种效率低下的工作方式,他们开发出了一个性能优越的替代产品,叫做 Spark 。由于Spark 性能卓著,一经推出,就受到了业界的认可,开始逐步替代 MapReduce。
UC伯克利AMPLab是大数据领域的顶级实验室,甚至可以说没有之一,这个实验室贡献了大数据以及Hadoop生态里非常多的主流组件,包括Spark、Mesos、Alluxio (前身为Tachyon)等。在这些项目的背后,是UC伯克利计算机教授Ion Stoica,Ion是操作系统和分布式计算领域绝对的大佬级人物,后面你可以看到他几乎是扛着这个领域在前进。
(Ion Stoica教授)
MapReduce和Spark都是批处理模式,也就是分批针对某个时间段的数据进行计算。这种计算由于数据量大,需要花费几十分钟甚至更长。同时这种计算的数据是非在线实时获取的数据,也就是历史积累的数据,也就是离线数据,这种计算又被称为“离线计算”。
那么,有没有可能对实时数据进行计算呢?可以。
2011年,Twitter开源了它的实时数据计算系统Storm,它将计算数据的间隔缩短到足够小,收到一部分数据就计算一部分,也就是流式计算了。Storm填补了大数据实时计算的缺失,并且便于使用,一经推出就风靡业界。
不过,逐渐的,人们对Storm的性能也开始产生不满,它要占用太多的机器资源了!为了更好的性能,人们又开始鼓捣新玩意儿。
这个新玩意儿就是Flink,它原本是由3所地处柏林的大学和欧洲的一些大学共同进行的研究项目,2014年加入Apache基金会引起了业界注意, 终因为其新颖的设计和高性能受到越来越多的公司青睐。
在Spark的世界观中,一切都是由批次组成的,离线数据是一个大批次,而实时数据是由一个一个无限的小批次组成的。
而在Flink的世界观中,一切都是由流组成的,离线数据是有界限的流,实时数据是一个没有界限的流。
正因为如此,Flink不仅仅能够做流式计算,它还能进行批处理,也就是流批一体。
但我们也不能说Spark的世界观就错了,它们只是角度不一样,事实上后来Spark也通过“微批处理”为原理的Spark Streaming支持了流批一体。
计算引擎发展到这个程度,在数据处理这个维度上,终于可以宣称暂时告一段落了。
但这是否意味着计算引擎领域再无新鲜事呢?
当然不是,下面就轮到我们的重头戏——Ray出场了。
计算引擎新星Ray,回归分布式计算本质
上一波关于批和流的领域变革,驱动力来源于对海量数据的分析和挖掘的需求,而新的驱动力,来自人工智能时代的呼唤。
版权声明:本文为原创文章,版权归 头条123 所有,欢迎 本文,转载请保留出处!