黄安
(广西农业职业技术大学,广西南宁,530007)
随着大数据时代的到来,依靠大数据技术进行高校信息化建设也得到快速发展[1]。大数据已经深入到全国高校信息化建设的方方面面。国内高校面对大数据的快速发展,是加快校园信息化建设的良好机遇,同时也面临更大的挑战。通过大量的查阅相关文献,以及上网查找资料发现,国内很少有高校提出通过hadoop建立校本数据中心的实施方案可供我们参考。
对于校内的数据综合查询,以往的做法都是直接或间接的访问校内各业务信息系统的数据库,往往一个数据项又出行在多个数据库里,这就造成了数据的不统一性,甚至对数据的安全性产生影响,冗余数据还会导致查询效率降低。依赖于校园各信息系统的相关教学质量、数据分析管理决策、科研分析等拓展业务就很难开展。正因为如此,我们就借助Hadoop技术在大数据方面的优越性,以此来建立校本数据中心,通过该平台,采集校内各大信息系统的数据,建立常用的主题数据库。在此基础上,根据使用者不同的角色,提供不同层面的数据实时查询和数据实时分析,为学校领导及广大师生提供可靠准确的数据,有助于使用者做相关的思考和决策。
校本数据中心采用Hadoop分布式文件系统 (HDFS) 、分布式数据库Hbase和数据仓库Hive进行搭建。Hadoop是一个由 Apache 基金会所开发的分布式系统基础架构,提供了可靠的、可扩展的、可分布式计算的开源服务[3]。数据中心架构结构如图1所示。
图1 数据中心架构图
HDFS通过一个高效的分布式算法,将数据的访问和存储分布在大量服务器中,在可靠地多备份存储的同时还能将访问分布在集群中的各个服务器上,是传统存储构架的一个颠覆性的发展[4]。Flume负责收集日志,同时提供对日志数据进行简单的处理。YARN负责资源管理。MapReduc用于进行大数据的计算。ZooKeeper解决分布式环境下的数据管理问题。HBase提供对大规模数据的随机实时读写及访问。Hive用作数据存储的仓库。Oozie负责进行作业调度,Sqoop用于在传统数据库和Hadoop之间传输数据。
通过校本数据中心,把学校的各信息系统的数据进行统一采集、清洗、存储。首先将刚采集来的数据放入原始库,经过标准化处理后,再放入标准库,最后从标准库抽取便于我们做数据查询和分析的数据,放入主题库。针对结构化和半结构化的数据,为了实现其统一格式,hadoop技术使用的分布式系统以及列式数据库,可以很好的处理这些问题。
基于Hadoop技术架构来搭建校本数据中心。搭建完全分布式模式Hadoop集群, HDFS集群有两类节点,分布为NameNode节点和DataNode节点。数据中心集群使用多节点服务器堆叠技术,以此来实现服务器高并发和高并行的数据计算和处理能力。集群中包含了三个管理节点(NameNode),数据仓库存储在这些节点当中。主NameNode节点处于活动状态 (NameNode Active) 对外提供服务, 备用Name Node节点 (Name Node Standby)同步主NameNode节点的元数据, 作为主节点的热备。两个节点共享存储, 随时等待切换。DataNode节点仍然负责数据块的冗余存储, 所有DataNode同时向主备Name Node节点汇报数据块状态信息[5]。正因为如此,校本数据中心对NameNode做定时热备份,一般情况下,仅有一台主NameNode为集群提供服务,另外一台自动进行备份及数据同步。当主NameNode出现宕机情况,另外一台备份的NameNode就会自动为集群提供服务,变成主NameNode。这样就大大的提高了集群的可用性能。
Hadoop集群采用的是HBase数据库,为了保证数据的一致性及可靠性,存储的数据会进行自动备份3份。当服务器需要对某个文件进行存储时,该文件蒋会被分成多个大小一样的数据块,每个数据块会分别备份到3个不同的DataNode节点上,这样做的目的是确保任何存储的数据,不会因为出现宕机的情况下丢失,同时还解决了以外服务器出现的负载不均衡的问题,以及对庞大的数据进行存储时出现网络瓶颈的问题。当我们对服务器里的数据进行读取操作时,服务器会自动根据数据块和节点的映射关系表为我们快速找到并提供所需的数据。
校本数据中心起到了纽带的作用,在学校各个信息系统之间架起一座桥梁,让所有数据库的数据资源得到有效的整合,实现了数据的高效共享。同时,校本数据中心还起到数据堡垒的作用,确保数据的有效性、完整性、准确性、一致性,安全性。
校本数据中心需要对校内各业务信息系统的数据进行采集并存储。Hadoop平台借助数据转移工具Apache Sqoop来实现数据的采集, Sqoop主要解决的问题是:导入Hadoop生态系统外的数据源 (本地文件或数据库表) 到系统内 (HDFS文件、Hive表和HBase表);导出系统内的数据源 (包括处理结果) 到系统外[6]。采集数据分为两种,分别是历史数据采集和实时增量数据采集。历史数据采集是对各信息业务系统原有的所有数据进行原样采集,不改变数据原本的结构和内容,照搬过来进行全量备份。历史数据采集完成以后,各信息业务系统每天都会产生新的业务数据,为了确保校本数据中心的数据具有时效性和准确性,就要对这些新的数据进行定时采集增量数据,根据业务系统数据产生的频率,设置相应的时间间隔触发增量采集任务,确保校本数据中心的数据与业务系统的数据时刻保持一致。
在数据存储方面,校本数据中心使用的是列式数据库Hbase对数据进行集中存储。传统的关系型数据库,如Oracle、DB2、MySQL、SQL SERVER 等采用行式存储法(Row-based),在基于行式存储的数据库中,数据是按照行数据为基础逻辑存储单元进行存储的,一行中的数据在存储介质中以连续存储形式存在。传统的关系型数据库计算与存储分离,数据访问存在竞争和带宽瓶颈,同时存在着扩展问题。而列式数据库Hbase支持数据自动切分存储,并支持高并发读写操作,使得海量数据存储自动具有更强的扩展性。传统数据库行式存储与HBase列式存储对比如表1所示。
表1 传统数据库行式存储与HBase列式存储对比
HBase是一个基于Hadoop、面向列、可伸缩、高性能、高可靠的分布式存储系统,HBase利用HadoopHDFS作为其文件存储系统。校本数据中心的数据按照分表的方式存储在Hadoop平台的HBase数据库中,一张HBase表存储一种数据。为了满足校内各业务系统不同场景对数据的实际使用需求,校本数据中心把对外交换与共享的数据以及数据分析的中间结果,都存储在Hadoop平台的其他组件中,以此来提高数据的高效利用率。
从各信息业务系统采集来的数据,放入原始库。这些数据存在无序、混乱、冗余等缺点,我们需要经过一系列处理,对结构化数据进行规范化、标准化和有效性校验,对这些数据通过统一其定义、分类、记录格式、转换方式、编码等方式,实现数据的标准化,形成标准库。标准库的数据更加有序、可信,数据质量更高。为了更好的提供数据共享与交换、数据查询与分析、数据协同与交换等服务,根据业务场景实际需要,对标准库的数据进行再次治理、筛选、聚集、抽取等操作,转存到数据仓库,形成新的主题数据库。主题数据库能够更好的为数据查询、专题分析和决策支持等业务提供数据服务,可为数据使用者开展数据统计分析、挖掘数据规律、辅助领导决策等提供支撑。校本数据中心其数据主要来源于学校各业务领域中实际产生的业务及管理数据,经过一系列数据治理后,反过来对管理业务提供数据服务与支持,校本数据中心与各信息业务系统相辅相成,为学校信息化建设高速发展提供强有利的先决条件。
校本数据中心每天或者固定的时间,从全校的信息业务系统的数据库中抽取全量历史数据,放入校本数据中心自己的数据库中,并以一个类似原始表的表名相似的名字命名,加以识别和区分,形成校本数据中心的原始库。如为了减少服务器的压力,管理员也可把全量抽取改成增量抽取,校内各业务系统每天都会产生新的数据,这些新的数据会根据管理员设置好的时间,通过集成平台定时推送到数据中心,这样,就不会每次都进行数据的全量覆盖,大大降低了服务器的运算压力。
校本数据中心建立好的原始库,是没有经过任何修改和增删的数据,存在大量的数据冗余,不利于后期的使用,所以要对这些数据进行清洗和标准化治理,形成校本数据中心的标准库,便于其他业务系统直接使用,大大提高数据的查询效率。
根据学校的实际应用场景需要,从数据中心的标准库抽取部分数据并经过治理后,建立主题数据库,使得各部门信息系统的数据得到更好的集成和统一的管理。有了主题数据库,即可根据用户需求,呈现相关的数据统计查询和汇总。除此之外,其他信息业务系统在实际生产过程中根据自身应用场景,如需要用到主题数据库的数据,作为数据需求方提出数据使用申请,由数据中心管理员审核并授权后,作为数据供方,提供经过治理后的数据给需求方使用,以此来提高平台数据的利用率。通过构建多维度、高质量的主题数据库,满足不同业务系统应用场景的个性化查询、统计和分析诉求,最终达到推动学校精细化管理、加速学术研究产出、提升学校信息化建设影响力的目的。
5.3.1 学生主题数据库
学生是学校的主体,学生的相关数据也是最庞大、最复杂的。学生数据涉及的业务系统主要包括教务系统、学工系统、学生缴费系统、迎新系统、宿舍管理系统、网上办事大厅、一卡通系统、就业系统、VPN管理系统等。各业务系统之间难免会出现数据不一致的问题,导致同一个内容在不同系统里呈现不一样的查询结果,这就导致用户无法正确使用相关查询结果。为了打通各业务系统之间的壁垒,消除信息孤岛以及解决数据统一的问题,建立学生主题数据库是非常有必要的。学生主题数据库主要涉及的信息表包括学生学籍信息、学生编号信息、学生成绩信息、学生奖惩信息、学生宿舍信息、学生缴费信息、学生就业信息等。
5.3.2 教师主题数据库
涉及教师的业务系统主要包括人事系统、协同办公平台、科研系统、教务系统、学工系统、网上办事大厅、资产管理系统、党建系统、绩效考核系统、财务系统、站群管理系统等。教师主题数据库主要涵盖的信息表有:教师编号信息、教师工资信息、教师职称信息、教师授课信息、党员基本信息、年度考核信息、教师办公资产信息等。
5.3.3 科研主题数据库
一个学校的科研能力在一定程度上反映出该校的办学实力。而科研管理系统正是用余记录和体现科研水平的重要业务系统。加上长期积累,每个学校的科研数据也是相当庞大,因此,针对科研系统建立相应的科研主题数据库也是非常有必要的。科研主题数据库涉及的信息表主要包括:论文成果信息、教材成果信息、专利成果信息、品种认定信息、著作成果信息、获奖成果信息等。
本文主要对基于Hadoop平台的校本数据中心的建设进行了研究,校本数据中心利用Hadoop的Sqoop组件,将学校各信息业务系统的数据进行抽取,存储在分布式数据库HBase中。数据按照列式方式进行存储,有效解决了传统数据库对数据访问存瓶颈和数据库扩展的问题,同时很大程度上提供了存储效率和空间的利用率。校本数据中心对采集的数据经过有效治理后,形成标准库和主题数据库,打破了学校各信息业务系统直接的壁垒,很多程度了消息了信息孤岛,为各业务系统开展数据统计分析、挖掘数据规律、辅助领导决策等提供强有力支撑。同时为学校的信息化建设提供强大可靠的校本数据中心。