大数据走向融合

2015-01-06 08:56涂兰敬
中国计算机报 2014年49期
关键词:历史数据磁盘内存

涂兰敬

大数据跨过了近几年的炒作周期后,即将度过以落地实践为核心的2014年。2015年,大数据将往哪个方向发展?近日,星环信息科技(上海)有限公司CTO孙元浩从基础技术的角度预测了大数据的发展趋势。

趋势一:混合架构将逐渐消失

当初,Hadoop的诞生是为了更方便地处理非结构化数据和半结构化数据,但是处理结构化数据的时候功能就显得不够完整。用户还需要使用数据库或者MPP(大规模并行处理)数据库,协助Hadoop处理结构化的数据。另外,Hadoop是为处理几百TB和几PB数据而设计的,但是,当数据量小于10TB的时候,Hadoop的处理性能往往还不如MPP数据库。

为解决这些问题,用户往往会考虑混合架构的部署方式:把实时数据放到MPP数据库里,把历史数据放到Hadoop里;或者把大部分数据放在Hadoop里,小部分数据放到MPP数据库里进行计算。

过去三年,Hadoop发展非常迅猛,很多公司快速启动了SQL on Hadoop的开发,其性能也有很大提升。目前,市场上在Hadoop系统里原生开发的SQL引擎技术主要有4种:第一种是Impala,采用类似于MPP的引擎;第二种是Tez,吸收了Spark的一些设计思想;第三种是Transwarp Inceptor,基于Spark开发的SQL引擎;第四种是Spark SQL和Drill。

随着SQL on Hadoop技术的快速发展,SQL完整程度的大幅提高和性能的提升,孙元浩认为混合架构正在逐渐消失。做出这样的预测是因为,过去MPP数据库的3个优势随着SQL on Hadoop的成熟逐渐被削弱。第一,传统MPP数据库对SQL的支持相对完整,而现在,Hadoop对SQL的支持程度已经接近MPP数据库。第二,传统MPP数据处理性能高,而现在,Hadoop的性能已经超过MPP数据库数倍。第三,传统MPP数据库上外延工具非常丰富,而现在,很多传统BI厂商都已经支持Hadoop,一些新兴创业公司都已经在Hadoop上开发了全新的BI工具,Hadoop系统上的外延工具也越来越丰富,Hadoop生态系统将很快超越传统MPP数据库。

未来,Hadoop将逐渐取代MPP数据库,用户将逐渐不需要使用混合架构,不需要在不同数据库之间迁移。MPP数据库将逐渐消失并慢慢地融入Hadoop。用户的数据量无论大小将全部都可以在Hadoop上处理,真正做到无限的线性扩展。

趋势二:固态盘将替代内存

随着硬件技术的发展,孙元浩发现,作为缓存,内存可以被大容量的SSD(固态硬盘)取代。内存读取数据的速度是磁盘的百倍甚至千倍,但是SSD 的性能已经开始接近内存了。同时,SSD的价格也在迅速下降。今天,在中国市场可以以1万至2万元的价格购买到1TB容量的SSD。孙元浩认为,用SSD替代内存是当前比较好的方案。

Hadoop2.6中提出一个概念叫Storage Tier(存储层)。它在HDFS(分布式文件系统)上提供三层存储:磁盘层、SSD层和内存层。以大小为128MB的数据块为单位,用户可以把文件放在指定的层,以此来提升数据的存取速度。但是,用户很快发现事情没有那么简单。因为,Hadoop最早是为大容量低速磁盘而设计的,SSD比普通磁盘顺序读写性能高10倍,它的随机访问性能是磁盘的1000倍,如果不能利用随机访问的性能优势,提升的性能不会像硬件指标这么显著。

因此,孙元浩认为,基于磁盘读写的Hadoop在2015年将慢慢开始为SSD做优化,未来会有更多的优化专门针对SSD。另外,内存数据库厂商将开始感受到内存不足的瓶颈,SSD将成为内存最理想的替代品。

趋势三:实时大数据得到更多关注

随着传感器网络、物联网的发展,数据产生的速度越来越快,使得实时大数据的技术开始得到更多的关注。

到今天为止,没有哪个技术既能处理实时数据又能处理大量历史数据。孙元浩表示,针对实时数据和历史数据的处理,Nathan Marz提出了Lambda架构(一种基于MapReduce和Storm建立的流处理应用)。实时数据进入一个流处理系统进行检测分析,历史数据在Hadoop上进行分析,然后将两种数据分析的结果再进行融合,应用程序可以访问融合之后的数据库。

但是,这种混合架构还存在3个问题:第一,实时数据的流处理系统处理完之后就把数据丢弃了,只留下分析结果,用户不能对实时数据进行随机查询;第二,把实时数据和历史数据分离后,怎么形成统一的视图,最后怎么拼接起来;第三,融合两种分析结果的数据可以完成快速查询但不能做复杂的统计分析和数据挖掘。

Druid项目的出现不仅解决了快速采集的问题,还化解了统一视图的问题:把实时数据和历史数据全部拼接起来制成一张视图,把实时数据离线状态下收集起来拼成一张历史视图。但是,Druid项目还没能解决复杂的统计分析和数据挖掘的问题。

孙元浩指出,比较理想的架构是全量数据经过流处理以后直接进入一个数据库。这个数据库可以完整地把实时数据和历史数据拼接起来,基于这些数据既可以进行高速查询又能进行迭代分析。这样,IT人员可以省去维护两套架构的麻烦,而且既能对实时数据进行分析,又能对历史数据进行分析。

趋势四:云计算与大数据终将融合

最近一两年,虚拟化技术的快速发展不亚于一场新的技术革命。首先,轻量级Linux Container(简称LXC,一种内核虚拟化技术)的出现,Container(容器)之间可以做资源隔离,这使得虚拟机变得非常轻量级。为此,Docker公司开发了一个工具,它让用户创建单个容器或者应用时迁移起来更加容易。但是,当创建多个容器或应用时,用户迁移起来还是会觉得很困难。此时,谷歌的一个开源项目Kubernetes出现了。它简化了用户创建Hadoop集群和传统应用,提供多容器集群的部署和一些基础服务,例如一些调度服务。

2013年,Hadoop2.0资源管理方面一个革命性的框架Yarn(一种新的MapReduce框架)诞生了。Yarn把资源管理放在最底层,在其框架上可以运行多种计算框架。在应用的过程中,用户发现Yarn对内存/磁盘/IO的资源隔离做得不够好。为此,Hortonworks公司尝试把谷歌的Kubernetes作为Yarn的应用管理器,用Docker(一种开源的应用容器引擎)进行资源调度。同时,Mesosphere公司以Mesos(一种集群管理器)计算框架为资源调度核心,以Docker为容器的管理工具,开发了一套分布式资源管理框架,并提出了数据中心操作系统的概念。

孙元浩指出,数据中心操作系统可以分三层。最底层与操作系统内核的功能一样,可以快速地创建、释放计算资源,实现对CPU/网络/内存/存储的管理。中间层是在最底层的基础上继续加一些基础服务。最上面一层则提供平台服务,可以创建和部署Hadoop、Spark等应用。

根据数据中心操作系统的概念,目前市场上主要有两大技术方向。第一个技术方向是把Yarn作为资源调度的基础,Kubernetes作为运行在Yarn上的一个应用框架,而且Kubernetes与Yarn并列在同一层。另外一个技术方向是把调度器抽象出来作为插件,例如Yarn和Mesos都可以作为Kubernetes的调度器,当然也可以实现自己的调度程序,使用Docker或者CoreOS(一种基于Linux 内核的轻量级操作系统)进行容器管理,而Hadoop等分布式服务运行在Kubernetes之上。第二个技术对底层能够提供资源隔离和管理,对最上层能够提供各种服务。孙元浩认为,第二个技术方向可能是明年的主流趋势。

猜你喜欢
历史数据磁盘内存
基于故障历史数据和BP神经网络的接地选线方案研究
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
“春夏秋冬”的内存
修改磁盘属性
用好细节材料 提高课堂实效
磁盘组群组及iSCSI Target设置
创建VSAN群集
基于内存的地理信息访问技术