当前位置:首页 > 媒体动态 > 行业资讯 >
大数据技术专为挑战而来
  • 2019-11-15
  • 来源:人民邮电报
  大数据技术无疑是当前高新科技领域的“明星”,成为各国角逐的重点科技领域。事实上,大数据技术脱胎于有着50年发展历史的数据管理技术,是面向大规模数据分析的技术栈,主要采取分布式架构的设计思路,通过并行计算的方式来提升处理效率;同时具备高扩展能力,能够根据业务需求随时扩展。从总体上来看,大数据技术是为了应对挑战而生,未来也将顺应挑战而变。
 
  不断演进数据管理技术焕发新活力
 
  大数据技术是数据管理技术的一种,而数据管理技术拥有着至少50年的发展历史,是所有计算机应用的基础。数据管理系统处于底层硬件和上层应用之间,本质上是利用计算机硬件的存储和计算能力,对数据进行存储、管理、加工等操作,最终支持上层各类应用。
 
  数据管理技术的发展总共经历了四个阶段。第一个阶段是关系型数据模型的提出,为关系数据库发展奠定了理论基础。第二个阶段是Oracle和DB2等商业关系型数据库的兴起和发展壮大,数据库正式成为继服务器、操作系统之外的第三个必需品。第三阶段是由于业务场景的需要,数据库被分为面向业务的事务数据库和面向分析统计的分析数据库,两者之间的架构和建模方式也发生了变化,完成了数据库技术的第一次分离。第四个阶段是数据库技术的分布式浪潮:最早在数据分析端,由于单机无法应对海量数据分析的需求,分布式水平扩展的需求提上日程,Hadoop、Spark和各类NoSQL都是为了满足这一需求;分布式技术在2010年左右扩展到事务数据库领域,主要是为了应对越来越多的互联网业务。
 
  数据管理系统处于硬件和应用之间的位置,决定了其自身的技术演进主要依赖于底层硬件的发展和上层应用端的需求变化。
 
  在硬件端,从20世纪70年代开始,通用服务器的芯片、内存的发展就遵循摩尔定律,单机的性能越来越强,推动着数据库的处理能力不断增强,利用内存能力成为一大趋势。进入21世纪,芯片处理能力的增长已赶不上业务和数据量的增长,单机系统的“瓶颈”显现,促使数据管理系统向分布式架构转型。
 
  在应用端,业务的互联网化、在线化使得业务流量和访问频率呈指数级增长,单机集中式架构处理遇到“瓶颈”。移动互联网时代动辄千万级的用户量,同时也提出了海量数据分析的挑战。分布式架构,正是为了应对这些挑战而生。
 
  应对挑战10年后生态初成
 
  大数据应用和技术的诞生,是为了应对数据量爆发式增长的挑战。从2004年出现之后,大数据经过10年的发展后进入平稳期,初步构建了生态。
 
  10多年前,网站和网页的爆发式增长,令搜索引擎公司最早感受到海量数据给技术带来的挑战,随后兴起的社交网络、视频网站、移动互联网的浪潮加剧了这一挑战。互联网企业发现新数据的增长量、多样性和对处理时效的要求,是传统数据库、商业智能纵向扩展架构无法应对的。在此背景下,谷歌公司率先于2004年提出一套分布式数据处理的技术体系,即谷歌分布式文件系统(Googlefilesystem,GFS)、分布式计算系统MapReduce和分布式数据库Big-Table,以较低成本很好地解决了大数据面临的困境,奠定了大数据技术的基础。
 
  受谷歌公司的启发,ApacheHa-doop推出了分布式文件系统HDFS、分布式计算系统MapReduce和分布式数据库HBase,并将其进行开源,这成为大数据技术开源生态体系的起点。
 
  2008年左右,雅虎最早在实际环境中搭建了大规模的Hadoop集群,这是Hadoop在互联网公司使用最早的案例,后来Hadoop生态的技术就渗透到互联网、电信、金融乃至更多的行业。
 
  2009年,加利福尼亚大学伯克利分校的AMPLab研发出Spark.Spark经过5年的发展,正式替代了Hadoop生态中MapReduce的地位,成为新一代计算引擎。不过,2013年纯计算的Flink诞生,对Spark发起了挑战。2014年之后大数据技术生态的发展就进入了平稳期。
 
  经过10年左右的发展,大数据技术形成了以开源为主导、多种技术和架构并存的特点。从数据在信息系统中的生命周期来看,大数据技术生态主要有5个发展方向,分别是数据采集与传输、数据存储、资源调度、计算处理、查询与分析。其中,在数据采集与传输领域,渐渐形成了Sqoop、Flume、Kafka等一系列开源技术,兼顾离线和实时数据的采集和传输;在存储领域,HDFS已经成为大数据磁盘存储的事实标准,针对关系型以外的数据模型,开源社区形成了K-V(key-value)、列式、文档、NoSQL数据库体系,HBase、Cas-sandra、MongoDB、Neo4j、Redis等数据库百花齐放;在资源调度方面,Yarn独领风骚,Mesos有一定的发展潜力。计算处理引擎慢慢覆盖了离线批量计算、实时计算、流计算等场景,诞生了MapReduce、Spark、Flink、Storm等计算框架;在数据查询和分析领域形成了丰富的SQLonHadoop解决方案,Hive、HAWQ、Impala、Presto、Drill等技术与传统的大规模并行处理(massivelyparallelpro-cessor,MPP)数据库竞争激烈。
 
  与时俱进四大新动向显现
 
  从整体上看,2014年以后大数据的技术栈就已经趋于稳定。但是,伴随着云计算、人工智能等技术的发展以及来自芯片、内存端的变化,大数据技术也在与时俱进地朝着流式架构、云化、异构计算、AI的方向前进。
 
  第一,流式架构的更替。最初,大数据技术没有办法统一进行批处理和流计算,只能采用Lambda架构,批处理任务采用批计算引擎,流式任务采用流计算引擎。例如,批处理采用
 
  MapReduce,流计算采用Storm。后来,Spark试图从批的角度统一流计算和批处理,例如SparkStreaming采用了micro-bach的思路来处理流数据。近年来,纯流架构的Flink异军突起,由于其架构设计合理、生态健康,因此发展特别快。Spark近期也抛弃了自身微批处理的架构,转向了纯流架构StructureStreaming。目前来看,流计算的未来霸主还未见分晓。
 
  第二,大数据技术的云化。一方面,伴随着公有云业务的成熟,众多大数据技术都被“搬”到了云上,其运维方式和运行环境发生了较大变化,促使计算和存储资源变得更加弹性;另一方面,个人部署的大数据技术也逐渐采用容器、虚拟化等技术,期望更加精细化地利用计算资源。
 
  第三,满足异构计算的需求。近年来,在通用CPU之外,GPU、FPGA、ASIC等芯片技术发展迅猛。不同芯片擅长处理不同的计算任务,例如GPU擅长图像数据的处理。与此相应,大数据技术开始尝试根据不同的任务来调用不同的芯片,从而提升数据处理的效率。
 
  第四,兼容智能类的应用。随着深度学习的崛起,AI类的应用越来越广泛,大数据的技术栈也在努力兼容AI,例如通过一站式的能力进行数据分析和AI应用,这样开发者就能在一个工具站中编写SQL任务,调用机器学习和深度学习的算法来训练模型,完成各类数据分析的任务。