蔡武越
(教育部考试中心,北京 100084)
网上评卷海量图像数据云存储技术应用探析
蔡武越
(教育部考试中心,北京 100084)
针对目前国家教育考试网上评卷海量图像文件的存储管理问题,本文提出基于Hadoop的NoSqL云存储方案,提高评卷海量数据安全性和存储可靠性,构建分布式、可扩展、高可用性和可靠性的云存储平台。通过分析基于Hadoop平台云计算体系和基于HDFS/HBase的云存储技术,结合网上评卷海量图像文件的存储需求和实际,规划基于Hadoop/HDFS/HBase的国家教育考试云存储中心的数据交换平台,并对在国家教育考试中深入应用此平台给出设计方案,提出发展愿景。
教育考试;网上评卷;海量图像数据;云存储
网上评卷是教育考试信息化、数字化趋势推动下的现代化评卷管理模式,改变了过去纸质试卷评阅中难以解决的效率、质量和可控制性等关键问题。近年来,国家教育考试全部采用了网上评卷模式。网上评卷的基础性工作之一就是将考生纸介质答卷扫描成为符合评阅要求的电子图片。在大规模考试中,一个考试项目一次考试就需要存储、处理上亿个图像文件。由于网上评卷图像文件属于非结构化数据,使用关系数据库往往会造成数据导入、导出、编辑修改的负担,所以目前大多数应用系统中使用文件方式直接存储在操作系统的管理平台上,其安全性、可操作性都存在隐患。
针对网上评卷的海量图像文件及相关数据的管理问题,本文提出应用NoSqL云存储进行管理的解决方案,可以较好地解决数据可靠性、传递效率、可检索性、计算处理等方面的问题,为今后实现全国性网络化存储管理探索可行的技术模式。
目前,在海量数据处理方面已经形成了很多专业技术,最为突出的是NoSqL数据库技术。NoSqL数据库技术大多采用键值方式存储技术存储非结构化数据,解决一般关系数据库中的格式冲突和处理效率问题。同时,在处理超大规模数据时,需要采用分布式存储方式,为保障可靠性、弹性伸缩、标准化服务等特性需要在云平台上构建存储系统。
云计算(cloud computing)是结合了分布式、并行计算、网络存储服务、虚拟化资源、负载均衡等技术提供的网络计算服务,其目标是实现资源共享、定制服务和高性能网络应用服务[1]。实质上,云计算的关键技术之一就是解决海量数据的存储问题。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备并建立高可靠性、高效率和统一服务的存储服务,而云计算服务的主要目标之一就是提供可定制、高可靠性的存储服务。云存储是一个以数据存储和管理为核心的云计算系统,使用云存储技术解决大规模数据存储和计算处理是今后很多应用领域的海量数据解决方案,也是数据技术的未来发展方向。
云存储是云计算平台提供的最基本的服务,通过使用虚拟化和分布式技术,将大量存储资源虚拟化,提供可定制和高可靠性服务,大大改善了过去单独划分使用存储所造成的资源共享、可扩展和可靠性问题,未来数据的存储方式都会逐渐转向云存储。在各类数据存储中,海量小文件(小于1MB的文件)是各类系统中遇到的最关键的存储难题,超大规模网站的图片资源、网页等都面临存储和检索问题,使用NoSqL技术可有效解决这类问题。将NoSqL数据库部署在云平台中可以实现较为完美的技术结合。
云存储(cloud storage)通过集群应用、网格技术和分布式文件系统等功能完成海量数据的存储和管理[2]。云存储的核心是应用软件与存储设备相结合,通过应用软件来实现存储设备向存储服务的转变。将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能。与传统的存储设备相比,云存储不仅仅是一个硬件,而是一个网络设备、存储设备、服务器、应用软件、公用访问接口、接入网和客户端程序等多个部分组成的复杂系统[3]。
通常,从云存储的技术实现层次上看,从底层向上,可以分为存储层、基础管理层、应用接口层、访问层四个层次,如图1所示。
图1 云存储系统的结构模型
将数据存储在文件中是较为传统的方式,目前很多中小型网站和操作系统中都使用文件存储各类数据。云平台中也提供了各类文件存储技术,现有的云存储分布式文件系统包括GFS、HDFS、Lustre、FastDFS、PVFS、GPFS、PFS、Ceph和TFS等。它们的许多设计理念类似,同时也各有特色。GFS(Google File System)是Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。Lustre由SUN公司开发和维护,是一个集群文件系统,规模大、安全可靠,具备高可用性,目前已经运用在一些领域,例如HP SFS产品等。它的下一代集群文件系统可以支持超过10 000个节点,可以存储数以PB的数据量。HDFS(Hadoop Distributed File System)主要用来存储大文件。HDFS在存储小文件时,通常的做法是先将很多小文件合并成一个大文件再保存到HDFS,同时为这些小文件建立索引,以便进行快速存取。典型技术包括Hadoop自带的Archive、SequenceFile,但均需要用户自己编写程序,实现小文件的合并。TFS(Taobao File System)对HDFS的元数据存储架构进行了调整。在元数据节点仅存放数据块与数据节点的映射,而将文件与数据块的映射关系保存到文件名,不再需要在元数据节点同时存放这两类映射,在系统层面解决小文件问题。但由于文件名包含数据块信息,为文件和数据块建立了强关系,导致数据块使用僵硬,TFS在文件的命名、移动方面带来新的问题,限制了其应用范围。
以GFS、HDFS为代表的适用于流式访问大文件的分布式存储系统,若直接用来存储图片,由于元数据膨胀,在扩展性和性能方面均存在严重问题。文件系统本身仅能用来存储文件,不能进行信息管理和进一步的数据处理分析。
NoSqL是Not Only SqL的简称,其目标是设计实现一种超出传统关系型数据库(流行的名称是“Sql数据库”)的数据管理技术,管理互联网上海量数据尤其是海量小文件。在各类NoSqL技术中,Hadoop平台的HBase是较为成熟和流行的系统,由Apache开源社区开发提供[4]。
HBase是Apache的Hadoop项目的子项目。HBase是基于Hadoop的NoSqL数据库,是Hadoop分布式文件存储系统HDFS支撑下的NoSqL数据库。相比单纯文件系统,HBase很容易做权限控制,因为和关系数据库一样,权限的授予和回收都使用grant和revoke,且HBase更容易做数据分析和数据挖掘。某些场景下,也可以在Hive中创建外部表来访问HBase表中的数据,并可用Sqoop和关系型数据库导入导出。如图2所示。
图2 Hadoop生态体系
网上评卷图像文件是评卷信息系统的基础数据,具有非结构化、大数据的基本特征。针对目前可预计的一定时间范围内,其存储处理的数据量可以达到海量大数据的程度。以硕士研究生招生考试试卷扫描图像及其考生信息数据为例,某东部省2017年度报名人数为18万余人,其中报本省院校的有9万余人,按照每人考试科目是4科、每科试卷扫描图像为2~4个文件、每个文件大小为几十KB到几百KB计算,图像容量大小约为0.21TB,全国总数据量可达到6.3TB。其中文件数目多,在操作系统环境下小图片文件的存储、管理较为困难。硕士研究生招生考试还是国家教育考试中规模较小的考试,其他考试数据量会更大,同时上述计算并没有包括整图、分图、轨迹记录等重复冗余性存储,随着时间的增加,历史数据量会爆炸性增长,海量数据存储管理将是亟须解决的问题。
从教育考试领域管理大发展来看,信息系统的统一整合和集中控制越来越重要,全国信息汇总与区域数据分发将成为常态化任务。例如,硕士研究生招生考试的特点要求各省之间做数据交换,目前的方式是人工携带数据,集中拷贝后分发,效率较低,且管理过程复杂,工作量庞大。各省获取到数据后还得重新导入,无法实时、自动交换和核查图像,且历年数据在跨系统应用中存在障碍,难以完成进一步的数据挖掘和应用。
采用Hadoop与HBase技术,因为基于内容的海量图像框架,不仅可以解决海量图像的存储与数据传输问题,还能将原本设计的图像检索算法直接移植到分布式环境中并行处理,依靠MapReduce集群的并行计算能力,实现对海量图像的检索。
网上评卷海量图像文件存储平台的基本需求是满足数据管理和数据交换,具体包括以下几个方面:(1)存储系统需要支持应用系统对数据的存取及检索调用,使目前的文件管理状态能够过渡到数据库管理状态。(2)数据存取效率能够满足应用系统的需求,在大规模评卷系统(3 000~5 000位评卷教师同时评阅)中能够应对图像的并发调用。(3)满足对数据的安全性、可靠性保存要求,在管理权限控制、底层硬件故障、异地容灾等方面具有技术支持。(4)解决数据切分、交换的问题,尤其是数据迁移的效率问题。(5)满足系统的弹性扩展需求。随着数据信息总量的扩大,存储系统为了满足需求必须不断地动态扩大存储规模。这使得存储系统必须能够支持新的存储节点不断加入,确保数据在各个存储节点的均匀分布,满足存储空间以及网络带宽的负载均衡。(6)在海量的数据信息中,高效查找定位目标数据是提高系统性能的关键。存储系统必须可以高效完成数据寻址,最大限度地减少平均响应时间,提供数据服务的吞吐量[5]。
除上述需求之外,存储系统应该能够支撑具有并行和分布式计算能力的开发平台,实现数据的动态处理、数据分析、智能计算与挖掘,为数据的进一步应用奠定基础。
HBase是一个分布式的、持久的、强一致性的数据存储系统,具有优异的读写性能。它是列存储数据库,底层通过HDFS做数据存储,更支持MapReduce的批量式计算和随机查询。近年来使用HBase的用户数量迅猛增长,主要原因在于HBase产品变得更加可靠,性能更好,并且产生了更多成功的应用领域和更庞大的用户群体,而且越来越多的公司开始投入大量资源来支持和使用它。随着越来越多的商业服务供应商提供支持,大量用户更加自信地将HBase应用于关键数据管理。
HBase存储关键大规模数据具有以下几个方面的优势:(1)高可靠性。HBase基于Bigtable技术开发,运行在Hadoop上,其基础数据管理的平台是HDFS,在文件管理层做了分布式数据冗余,具有高可靠性。很多大数据用户的应用案例也证明了其服务于海量数据的可靠性能力。(2)高并发读写。使用日志文件(HLOG)和内存存储将随机写转换成顺序写,保证稳定的数据插入速率;读写独立,这两种操作没有冲突。(3)高可用伸缩性。支撑能力可以随服务器增长而线性增长,表的数据表按键值范围自动分片,分布在不同的机器上,实现自动负载均衡。(4)读写的低延迟。由于采用了数据按列存储和并发处理技术,数据读写的延迟很低,适于大规模访问数据的应用系统。(5)低成本实现。当数据量变得越来越多时,数据存储管理会形成越来越高的成本需求,使用传统的专业存储设备其成本和升级费用将难以承受。而HBase基于Linux操作系统和分布式文件系统HDFS,支持较多压缩算法,可以在廉价的PC上实现,且成本较低[6]。
通过上述对HBase数据存储系统特性的分析,可以清楚地看到,该系统能够满足前面提到的网上评卷图像文件管理的各种需求,尤其是Hadoop平台的数据处理开发支撑能力,也能够为进一步开展数据分析提供支持。基于Hadoop和HDFS的NoSqL数据库系统,HBase的系统架构和数据存储管理方式如图3所示[7]。
3.3.1 数据存储工作模式
使用HBase存储网上评卷图像文件的工作方式可以分为直接和间接两种。如果建立统一的分布式平台,从图像扫描采集、分割、汇总提交、支撑网上评卷系统、归档全过程进行管理,则可以只在HBase中完成图像数据的存储,可以称为直接模式。如果结合目前的各类前段独立系统,将数据从各省采集系统中转入HBase,然后再分发到各个系统中,则称为间接模式[8]。
图3 HBase/HDFS/Hadoop数据存储系统结构
HBase更适合管理海量图像小文件。在存储格式上,由于数据和坐标都是以字节数组的形式存储(视为字符串),可以支持存储任意的数据类型。同时,HBase是基于HDFS的简单结构化数据分布式存储技术,被用来存储图片文件时,具有系统层小文件合并、全局名字空间等多种优势。HBase是采用面向列的存储模型,按列簇来存储和处理数据,即同一列簇的数据会连续存储。HBase在存储每个列簇时,会以Key-Value的方式来存储每行单元格(Cell)中的数据,形成若干数据块,然后把数据块保存到HFile中,最后把HFile保存到后台的HDFS上。HBase数据块限制为64MB,由于用单元格存储图片小文件的内容,存储数据的过程实际上隐含了把图片小文件打包的过程。若对于所有小于64M的图片均进行打包,则会加大打包文件的过程资源损耗,因此需要定一个阈值,当文件大小超过该阈值后进行打包操作,否则直接通过namenode进行上传。最新版本的Hadoop支持文件追加append操作,采用了“标记法”对Mapfile打包小文件时的增删改查进行处理,从而能保证图片存储访问的效率[9]。
鉴于目前应用前端整合的难度和系统的演变性,应该先采用间接模式进行数据管理,逐渐过渡到直接模式。间接管理模式下图像数据的存储处理过程如下:(1)海量图片小文件处理模块从用户接口接收用户上传的文件。(2)处理模块通过合并算法将符合条件的海量小文件进行合并处理。(3)处理模块通过文件写入模块将处理后的文件上传至云存储,数据分发阶段向用户分发数据。(4)云存储将待下载文件通过文件读出模块交付到海量小文件处理模块。(5)处理模块通过分离算法将经过合并处理的文件进行分离处理。(6)处理模块将处理后的文件通过用户接口发给用户。
3.3.2 数据分发工作方式
由于答题卡图像采集数据和网上评卷等系统运行在省平台,各省之间需要进行大规模的数据交换。在数据交换过程中,教育部考试中心(以下简称考试中心)可以应用云存储系统的大规模处理和高可靠性建立交换数据平台,各省考试院作为使用云存储系统用户进行数据提供和提取。云存储系统能够有效创建、管理、维护中心交换区和各省云用户区数据。考试中心为云用户建立服务系统,检查接收各省用户数据,并进行数据的分发和相应处理。考试中心对云存储平台进行统一规划,各省只要把需要分发的信息表的查询和导出权限授予合适的用户,即可实现初步的分发控制,如图4所示。
从互联网和云计算技术的发展趋势看,云存储会逐渐代替领域用户群的隔离式本地存储,计算处理也将会逐渐转移到云计算方式。因此,从教育考试数据管理的长期应用发展来看,建立云存储体系势在必行。在云存储平台中,考试中心和各省用户都将作为云存储的终端用户,各个应用系统将数据共享或分区管理在云平台上,通过严格的权限限制和加密保护,提供检索、计算、上传、下载等处理功能,以达到有效管理考试数据信息的目的。
基于Hadoop/HDFS/HBase的云存储是一种动态可调整、基于互联网的存储解决方案。云存储可以让用户很容易增加存储容量,而且不需要购买、安装和管理任何存储基础设施,却提供了一个完善的备份、容灾数据中心。采用分布式存储比采用共享存储成本节省60%以上,扩展性好,元数据字段可根据应用情况灵活添加[10],系统存储容量、并行处理能力可按需平滑扩展。由HBase后台处理图片打包,避免了二次开发;系统架构统一、简单,易管理维护;支持根据图片文件的多个属性进行综合检索;可自动发现文件读写错误,并进行纠正。
图4 教育部考试中心与省数据交换系统示意图
云计算技术目前已经成为互联网上的主流应用支撑平台,各大互联网公司都积极追逐云技术及其应用,各类著名的互联网应用系统和网站也都采用云计算平台进行构建,应用云计算是未来信息系统的发展方向和趋势。使用云存储技术及流行的非结构化平台存储网上评卷海量数据具有统一性、标准化和适应主流技术的优势,目前由于云存储技术复杂性较高,可选择的系统平台也较多,对各类技术的理解和掌握存在一定差异,导致考试系统(特别是网上评卷系统)在应用云计算技术提升业务支撑水平及运维能力方面还处于研究和探索状态。但是,随着数据的积累和对系统信息处理、过程数据保护、全程化管理等业务的要求,教育考试数据量正在迅速增长,对数据管理能力和安全可靠性要求日益提高,传统的单点或本地数据管理技术方式已远远不能满足其要求。从国家教育考试整体领域应用层面统一规划和利用好计算资源,采用分布式云存储降低教育考试领域信息化成本,对提高信息处理能力和保障信息安全具有巨大的推动作用,对进一步提升国家教育考试信息化水平具有战略意义。
[1]孟小峰,慈祥.大数据管理:概念、技术与挑战[J].计算机研究与发展,2013,50(1):146-169.
[2]杨传辉.大规模分布式存储系统[M].北京:机械工业出版社,2016.
[3]李智慧.大型网站技术架构[M].北京:电子工业出版社,2013.
[4]范东来.Hadoop海量数据处理[M].北京:人民邮电出版社,2016.
[5]彭建烽,魏文国,郑东炜,等.基于Hadoop的海量小文件合并的研究与设计[J].广东技术师范学院学报,2016,37(11).
[6]施磊磊,施化吉,束长波,等.基于Hadoop和HBase的分布式索引模型的研究[J].信息技术,2015(6).
[7]孙赵旭.Hadoop平台下基于HBase的海量数据处理研究[D].桂林:桂林理工大学,2014.
[8]GEORGE L.HBase权威指南[M].代志远,刘佳,蒋杰,译.北京:人民邮电出版社,2013.
[9]葛微,罗圣美,周文辉,等.HiBase:一种基于分层式索引的高效HBase查询技术与系统[J].计算机学报,2016(1):140-153.
[10]贺正红,周娅,文缔尧,等.面向HBase的大规模数据加载研究[J].计算机系统应用,2016,25(6):231-237.
Exploratory Analysis of the Application of Cloud Storage Technology for Massive Online Scoring Image Data
CAI Wuyue
(National Education Examinations Authority,Beijing 100084,China)
In view of the storage and management problem of massive image data files in national education examination online marking system,a cloud storage solution is introduced in this paper,which is aimed to solve the issues on security and reliability and to create a distributed,scalability,high-availability and high-reliability platform.In light of analysis of Hadoop cloud computing system and HDFS/HBase cloud storage technology,based on the requirement of the storage for massive online scoring image files,a data exchange platform is proposed for the national education test cloud storage center based on Hadoop/HDFS/HBase.Ultimately,a plan as well as an attractive prospect is outlined for an in-depth application of this platform in national education examinations.
Education Examinations;Online Scoring;Massive Image Data;Cloud Storage
G405
A
1005-8427(2017)06-0048-7
10.19360/j.cnki.11-3303/g4.2017.06.008
(责任编辑:陈宁)
蔡武越(1974—),男,教育部考试中心,工程师。