大数据从概念走向落地,得益于大数据技术的成熟,尤其是以Hadoop为代表的第一代大数据系统框架,为大数据在企业当中的现实落地,提供了稳固的技术支持,而随着大数据的发展,大数据技术也在更新迭代。今天我们来聊聊大数据技术从Hadoop到Spark的发展概况。
大数据技术产生背景
大数据的应用和技术起源于互联网,首先是网站和网页的爆发式增长,搜索引擎公司最早感受到了海量数据带来的技术上的挑战,典型的就是Google公司,在很早开始意识到这个问题,也在解决实际问题当中,逐步积累起相当宝贵的技术和经验。
而随后兴起的社交网络、视频网站、移动互联网的浪潮加剧了这一挑战。智能手机的普及,使得互联网转向移动互联网,基于移动端的数据增长规模、速度、多样性,迫使技术提升成为更加迫切的需求。
互联网企业发现新数据的增长量、多样性和对处理时效的要求是传统数据库、商业智能纵向扩展架构无法应对的。
Hadoop的产生
在此背景下,谷歌公司率先于2004年提出一套分布式数据处理的技术体系,即分布式文件系统谷歌文件系统(Google file system,GFS)、分布式计算系统MapReduce和分布式数据库BigTable,以较低成本很好地解决了大数据面临的困境,奠定了大数据技术的基础。
受谷歌公司论文启发,Hadoop实现了自己的分布式文件系统HDFS、分布式计算系统MapReduce和分布式数据库HBase,并将其进行开源,这是大数据技术开源生态体系的起点。
2008年左右,雅虎最早在实际环境中搭建了大规模的Hadoop集群,这是Hadoop在互联网公司使用最早的案例。而此后,Hadoop开始得到更多认可,也开始在更多行业领域得到应用。
Spark的到来
早期的大数据处理需求,基于Hadoop生态下,主要依靠MapReduce来实现,而MapReduce的优势,在于离线计算,在数据处理的时效性上,始终算不上表现优异。
而互联网、移动互联网的发展,对于数据处理的时效性不断提出新的要求,而原生的MapReduce计算引擎,开始被诟病,亟需新的技术解决方案。
2009年,UCBerkley大学的AMPLab研发出了Spark,经过5年的发展,正式替换了Hadoop生态中MapReduce的地位,开始受到市场重用。至于如今,只要提起大数据技术框架,Hadoop和Spark都一定拥有姓名。
Storm以及Flink
当然,数据处理的实时性要求不断提升,Spark在Hadoop生态当中,可以说是占据了MapReduce的位置,在MapReduce的基础上,对数据处理时效性做了一次提升。但是从技术层面来说,Spark并非真正意义上的实时计算。
真正意义上实现了实时计算的框架,是在Storm出现之时。Storm从技术源流上来说,来自Twitter公司,后来也同样收入Apache进行开源。从实时性这个角度来说,Storm是超出Spark的。
但Spark在实时流计算方面,也推出了Spark Streaming,将离线计算和实时计算需求进行了兼顾,而良好地集成于Hadoop生态,使得Spark的市场占有率相比Storm,也表现出强势的竞争力。
到了2013年,流计算的Flink诞生,对Spark都发出了挑战。Flink在诞生之初,就是完全瞄准实时流计算场景的。
Flink的流计算思想,是数据流上的有状态的计算。Flink将有界数据集看作是无界数据流的一种特例,有界数据集也是一种数据流,事件流也是一种数据流。因此Flink在批处理、流处理、AI、机器学习等多种场景下,表现都非常不错。
目前在国内,Flink的积极拥护者,非阿里莫属,在阿里系产品当中,Flink已经有了非常好的实践。近几年的发展当中,Flink也在更多的企业和产品当中得以应用,包括携程、唯品会、滴滴、头条等。
从Hadoop到Spark,大数据技术发展概况,以上就为大家做了一个基本的入门介绍了。大数据行业人才紧缺,技能过硬的大数据人才尤其受到青睐,想要在大数据行业立足并且有长远的发展,跟上技术技能的更新迭代趋势,非常重要。