黃安
(廣西農(nóng)業(yè)職業(yè)技術(shù)大學(xué),廣西南寧,530007)
隨著大數(shù)據(jù)時(shí)代的到來(lái),依靠大數(shù)據(jù)技術(shù)進(jìn)行高校信息化建設(shè)也得到快速發(fā)展[1]。大數(shù)據(jù)已經(jīng)深入到全國(guó)高校信息化建設(shè)的方方面面。國(guó)內(nèi)高校面對(duì)大數(shù)據(jù)的快速發(fā)展,是加快校園信息化建設(shè)的良好機(jī)遇,同時(shí)也面臨更大的挑戰(zhàn)。通過(guò)大量的查閱相關(guān)文獻(xiàn),以及上網(wǎng)查找資料發(fā)現(xiàn),國(guó)內(nèi)很少有高校提出通過(guò)hadoop建立校本數(shù)據(jù)中心的實(shí)施方案可供我們參考。
對(duì)于校內(nèi)的數(shù)據(jù)綜合查詢(xún),以往的做法都是直接或間接的訪問(wèn)校內(nèi)各業(yè)務(wù)信息系統(tǒng)的數(shù)據(jù)庫(kù),往往一個(gè)數(shù)據(jù)項(xiàng)又出行在多個(gè)數(shù)據(jù)庫(kù)里,這就造成了數(shù)據(jù)的不統(tǒng)一性,甚至對(duì)數(shù)據(jù)的安全性產(chǎn)生影響,冗余數(shù)據(jù)還會(huì)導(dǎo)致查詢(xún)效率降低。依賴(lài)于校園各信息系統(tǒng)的相關(guān)教學(xué)質(zhì)量、數(shù)據(jù)分析管理決策、科研分析等拓展業(yè)務(wù)就很難開(kāi)展。正因?yàn)槿绱?,我們就借助Hadoop技術(shù)在大數(shù)據(jù)方面的優(yōu)越性,以此來(lái)建立校本數(shù)據(jù)中心,通過(guò)該平臺(tái),采集校內(nèi)各大信息系統(tǒng)的數(shù)據(jù),建立常用的主題數(shù)據(jù)庫(kù)。在此基礎(chǔ)上,根據(jù)使用者不同的角色,提供不同層面的數(shù)據(jù)實(shí)時(shí)查詢(xún)和數(shù)據(jù)實(shí)時(shí)分析,為學(xué)校領(lǐng)導(dǎo)及廣大師生提供可靠準(zhǔn)確的數(shù)據(jù),有助于使用者做相關(guān)的思考和決策。
校本數(shù)據(jù)中心采用Hadoop分布式文件系統(tǒng) (HDFS) 、分布式數(shù)據(jù)庫(kù)Hbase和數(shù)據(jù)倉(cāng)庫(kù)Hive進(jìn)行搭建。Hadoop是一個(gè)由 Apache 基金會(huì)所開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),提供了可靠的、可擴(kuò)展的、可分布式計(jì)算的開(kāi)源服務(wù)[3]。數(shù)據(jù)中心架構(gòu)結(jié)構(gòu)如圖1所示。
圖1 數(shù)據(jù)中心架構(gòu)圖
HDFS通過(guò)一個(gè)高效的分布式算法,將數(shù)據(jù)的訪問(wèn)和存儲(chǔ)分布在大量服務(wù)器中,在可靠地多備份存儲(chǔ)的同時(shí)還能將訪問(wèn)分布在集群中的各個(gè)服務(wù)器上,是傳統(tǒng)存儲(chǔ)構(gòu)架的一個(gè)顛覆性的發(fā)展[4]。Flume負(fù)責(zé)收集日志,同時(shí)提供對(duì)日志數(shù)據(jù)進(jìn)行簡(jiǎn)單的處理。YARN負(fù)責(zé)資源管理。MapReduc用于進(jìn)行大數(shù)據(jù)的計(jì)算。ZooKeeper解決分布式環(huán)境下的數(shù)據(jù)管理問(wèn)題。HBase提供對(duì)大規(guī)模數(shù)據(jù)的隨機(jī)實(shí)時(shí)讀寫(xiě)及訪問(wèn)。Hive用作數(shù)據(jù)存儲(chǔ)的倉(cāng)庫(kù)。Oozie負(fù)責(zé)進(jìn)行作業(yè)調(diào)度,Sqoop用于在傳統(tǒng)數(shù)據(jù)庫(kù)和Hadoop之間傳輸數(shù)據(jù)。
通過(guò)校本數(shù)據(jù)中心,把學(xué)校的各信息系統(tǒng)的數(shù)據(jù)進(jìn)行統(tǒng)一采集、清洗、存儲(chǔ)。首先將剛采集來(lái)的數(shù)據(jù)放入原始庫(kù),經(jīng)過(guò)標(biāo)準(zhǔn)化處理后,再放入標(biāo)準(zhǔn)庫(kù),最后從標(biāo)準(zhǔn)庫(kù)抽取便于我們做數(shù)據(jù)查詢(xún)和分析的數(shù)據(jù),放入主題庫(kù)。針對(duì)結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù),為了實(shí)現(xiàn)其統(tǒng)一格式,hadoop技術(shù)使用的分布式系統(tǒng)以及列式數(shù)據(jù)庫(kù),可以很好的處理這些問(wèn)題。
基于Hadoop技術(shù)架構(gòu)來(lái)搭建校本數(shù)據(jù)中心。搭建完全分布式模式Hadoop集群, HDFS集群有兩類(lèi)節(jié)點(diǎn),分布為NameNode節(jié)點(diǎn)和DataNode節(jié)點(diǎn)。數(shù)據(jù)中心集群使用多節(jié)點(diǎn)服務(wù)器堆疊技術(shù),以此來(lái)實(shí)現(xiàn)服務(wù)器高并發(fā)和高并行的數(shù)據(jù)計(jì)算和處理能力。集群中包含了三個(gè)管理節(jié)點(diǎn)(NameNode),數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)在這些節(jié)點(diǎn)當(dāng)中。主NameNode節(jié)點(diǎn)處于活動(dòng)狀態(tài) (NameNode Active) 對(duì)外提供服務(wù), 備用Name Node節(jié)點(diǎn) (Name Node Standby)同步主NameNode節(jié)點(diǎn)的元數(shù)據(jù), 作為主節(jié)點(diǎn)的熱備。兩個(gè)節(jié)點(diǎn)共享存儲(chǔ), 隨時(shí)等待切換。DataNode節(jié)點(diǎn)仍然負(fù)責(zé)數(shù)據(jù)塊的冗余存儲(chǔ), 所有DataNode同時(shí)向主備N(xiāo)ame Node節(jié)點(diǎn)匯報(bào)數(shù)據(jù)塊狀態(tài)信息[5]。正因?yàn)槿绱?,校本?shù)據(jù)中心對(duì)NameNode做定時(shí)熱備份,一般情況下,僅有一臺(tái)主NameNode為集群提供服務(wù),另外一臺(tái)自動(dòng)進(jìn)行備份及數(shù)據(jù)同步。當(dāng)主NameNode出現(xiàn)宕機(jī)情況,另外一臺(tái)備份的NameNode就會(huì)自動(dòng)為集群提供服務(wù),變成主NameNode。這樣就大大的提高了集群的可用性能。
Hadoop集群采用的是HBase數(shù)據(jù)庫(kù),為了保證數(shù)據(jù)的一致性及可靠性,存儲(chǔ)的數(shù)據(jù)會(huì)進(jìn)行自動(dòng)備份3份。當(dāng)服務(wù)器需要對(duì)某個(gè)文件進(jìn)行存儲(chǔ)時(shí),該文件蔣會(huì)被分成多個(gè)大小一樣的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊會(huì)分別備份到3個(gè)不同的DataNode節(jié)點(diǎn)上,這樣做的目的是確保任何存儲(chǔ)的數(shù)據(jù),不會(huì)因?yàn)槌霈F(xiàn)宕機(jī)的情況下丟失,同時(shí)還解決了以外服務(wù)器出現(xiàn)的負(fù)載不均衡的問(wèn)題,以及對(duì)龐大的數(shù)據(jù)進(jìn)行存儲(chǔ)時(shí)出現(xiàn)網(wǎng)絡(luò)瓶頸的問(wèn)題。當(dāng)我們對(duì)服務(wù)器里的數(shù)據(jù)進(jìn)行讀取操作時(shí),服務(wù)器會(huì)自動(dòng)根據(jù)數(shù)據(jù)塊和節(jié)點(diǎn)的映射關(guān)系表為我們快速找到并提供所需的數(shù)據(jù)。
校本數(shù)據(jù)中心起到了紐帶的作用,在學(xué)校各個(gè)信息系統(tǒng)之間架起一座橋梁,讓所有數(shù)據(jù)庫(kù)的數(shù)據(jù)資源得到有效的整合,實(shí)現(xiàn)了數(shù)據(jù)的高效共享。同時(shí),校本數(shù)據(jù)中心還起到數(shù)據(jù)堡壘的作用,確保數(shù)據(jù)的有效性、完整性、準(zhǔn)確性、一致性,安全性。
校本數(shù)據(jù)中心需要對(duì)校內(nèi)各業(yè)務(wù)信息系統(tǒng)的數(shù)據(jù)進(jìn)行采集并存儲(chǔ)。Hadoop平臺(tái)借助數(shù)據(jù)轉(zhuǎn)移工具Apache Sqoop來(lái)實(shí)現(xiàn)數(shù)據(jù)的采集, Sqoop主要解決的問(wèn)題是:導(dǎo)入Hadoop生態(tài)系統(tǒng)外的數(shù)據(jù)源 (本地文件或數(shù)據(jù)庫(kù)表) 到系統(tǒng)內(nèi) (HDFS文件、Hive表和HBase表);導(dǎo)出系統(tǒng)內(nèi)的數(shù)據(jù)源 (包括處理結(jié)果) 到系統(tǒng)外[6]。采集數(shù)據(jù)分為兩種,分別是歷史數(shù)據(jù)采集和實(shí)時(shí)增量數(shù)據(jù)采集。歷史數(shù)據(jù)采集是對(duì)各信息業(yè)務(wù)系統(tǒng)原有的所有數(shù)據(jù)進(jìn)行原樣采集,不改變數(shù)據(jù)原本的結(jié)構(gòu)和內(nèi)容,照搬過(guò)來(lái)進(jìn)行全量備份。歷史數(shù)據(jù)采集完成以后,各信息業(yè)務(wù)系統(tǒng)每天都會(huì)產(chǎn)生新的業(yè)務(wù)數(shù)據(jù),為了確保校本數(shù)據(jù)中心的數(shù)據(jù)具有時(shí)效性和準(zhǔn)確性,就要對(duì)這些新的數(shù)據(jù)進(jìn)行定時(shí)采集增量數(shù)據(jù),根據(jù)業(yè)務(wù)系統(tǒng)數(shù)據(jù)產(chǎn)生的頻率,設(shè)置相應(yīng)的時(shí)間間隔觸發(fā)增量采集任務(wù),確保校本數(shù)據(jù)中心的數(shù)據(jù)與業(yè)務(wù)系統(tǒng)的數(shù)據(jù)時(shí)刻保持一致。
在數(shù)據(jù)存儲(chǔ)方面,校本數(shù)據(jù)中心使用的是列式數(shù)據(jù)庫(kù)Hbase對(duì)數(shù)據(jù)進(jìn)行集中存儲(chǔ)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),如Oracle、DB2、MySQL、SQL SERVER 等采用行式存儲(chǔ)法(Row-based),在基于行式存儲(chǔ)的數(shù)據(jù)庫(kù)中,數(shù)據(jù)是按照行數(shù)據(jù)為基礎(chǔ)邏輯存儲(chǔ)單元進(jìn)行存儲(chǔ)的,一行中的數(shù)據(jù)在存儲(chǔ)介質(zhì)中以連續(xù)存儲(chǔ)形式存在。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)計(jì)算與存儲(chǔ)分離,數(shù)據(jù)訪問(wèn)存在競(jìng)爭(zhēng)和帶寬瓶頸,同時(shí)存在著擴(kuò)展問(wèn)題。而列式數(shù)據(jù)庫(kù)Hbase支持?jǐn)?shù)據(jù)自動(dòng)切分存儲(chǔ),并支持高并發(fā)讀寫(xiě)操作,使得海量數(shù)據(jù)存儲(chǔ)自動(dòng)具有更強(qiáng)的擴(kuò)展性。傳統(tǒng)數(shù)據(jù)庫(kù)行式存儲(chǔ)與HBase列式存儲(chǔ)對(duì)比如表1所示。
表1 傳統(tǒng)數(shù)據(jù)庫(kù)行式存儲(chǔ)與HBase列式存儲(chǔ)對(duì)比
HBase是一個(gè)基于Hadoop、面向列、可伸縮、高性能、高可靠的分布式存儲(chǔ)系統(tǒng),HBase利用HadoopHDFS作為其文件存儲(chǔ)系統(tǒng)。校本數(shù)據(jù)中心的數(shù)據(jù)按照分表的方式存儲(chǔ)在Hadoop平臺(tái)的HBase數(shù)據(jù)庫(kù)中,一張HBase表存儲(chǔ)一種數(shù)據(jù)。為了滿(mǎn)足校內(nèi)各業(yè)務(wù)系統(tǒng)不同場(chǎng)景對(duì)數(shù)據(jù)的實(shí)際使用需求,校本數(shù)據(jù)中心把對(duì)外交換與共享的數(shù)據(jù)以及數(shù)據(jù)分析的中間結(jié)果,都存儲(chǔ)在Hadoop平臺(tái)的其他組件中,以此來(lái)提高數(shù)據(jù)的高效利用率。
從各信息業(yè)務(wù)系統(tǒng)采集來(lái)的數(shù)據(jù),放入原始庫(kù)。這些數(shù)據(jù)存在無(wú)序、混亂、冗余等缺點(diǎn),我們需要經(jīng)過(guò)一系列處理,對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行規(guī)范化、標(biāo)準(zhǔn)化和有效性校驗(yàn),對(duì)這些數(shù)據(jù)通過(guò)統(tǒng)一其定義、分類(lèi)、記錄格式、轉(zhuǎn)換方式、編碼等方式,實(shí)現(xiàn)數(shù)據(jù)的標(biāo)準(zhǔn)化,形成標(biāo)準(zhǔn)庫(kù)。標(biāo)準(zhǔn)庫(kù)的數(shù)據(jù)更加有序、可信,數(shù)據(jù)質(zhì)量更高。為了更好的提供數(shù)據(jù)共享與交換、數(shù)據(jù)查詢(xún)與分析、數(shù)據(jù)協(xié)同與交換等服務(wù),根據(jù)業(yè)務(wù)場(chǎng)景實(shí)際需要,對(duì)標(biāo)準(zhǔn)庫(kù)的數(shù)據(jù)進(jìn)行再次治理、篩選、聚集、抽取等操作,轉(zhuǎn)存到數(shù)據(jù)倉(cāng)庫(kù),形成新的主題數(shù)據(jù)庫(kù)。主題數(shù)據(jù)庫(kù)能夠更好的為數(shù)據(jù)查詢(xún)、專(zhuān)題分析和決策支持等業(yè)務(wù)提供數(shù)據(jù)服務(wù),可為數(shù)據(jù)使用者開(kāi)展數(shù)據(jù)統(tǒng)計(jì)分析、挖掘數(shù)據(jù)規(guī)律、輔助領(lǐng)導(dǎo)決策等提供支撐。校本數(shù)據(jù)中心其數(shù)據(jù)主要來(lái)源于學(xué)校各業(yè)務(wù)領(lǐng)域中實(shí)際產(chǎn)生的業(yè)務(wù)及管理數(shù)據(jù),經(jīng)過(guò)一系列數(shù)據(jù)治理后,反過(guò)來(lái)對(duì)管理業(yè)務(wù)提供數(shù)據(jù)服務(wù)與支持,校本數(shù)據(jù)中心與各信息業(yè)務(wù)系統(tǒng)相輔相成,為學(xué)校信息化建設(shè)高速發(fā)展提供強(qiáng)有利的先決條件。
校本數(shù)據(jù)中心每天或者固定的時(shí)間,從全校的信息業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)中抽取全量歷史數(shù)據(jù),放入校本數(shù)據(jù)中心自己的數(shù)據(jù)庫(kù)中,并以一個(gè)類(lèi)似原始表的表名相似的名字命名,加以識(shí)別和區(qū)分,形成校本數(shù)據(jù)中心的原始庫(kù)。如為了減少服務(wù)器的壓力,管理員也可把全量抽取改成增量抽取,校內(nèi)各業(yè)務(wù)系統(tǒng)每天都會(huì)產(chǎn)生新的數(shù)據(jù),這些新的數(shù)據(jù)會(huì)根據(jù)管理員設(shè)置好的時(shí)間,通過(guò)集成平臺(tái)定時(shí)推送到數(shù)據(jù)中心,這樣,就不會(huì)每次都進(jìn)行數(shù)據(jù)的全量覆蓋,大大降低了服務(wù)器的運(yùn)算壓力。
校本數(shù)據(jù)中心建立好的原始庫(kù),是沒(méi)有經(jīng)過(guò)任何修改和增刪的數(shù)據(jù),存在大量的數(shù)據(jù)冗余,不利于后期的使用,所以要對(duì)這些數(shù)據(jù)進(jìn)行清洗和標(biāo)準(zhǔn)化治理,形成校本數(shù)據(jù)中心的標(biāo)準(zhǔn)庫(kù),便于其他業(yè)務(wù)系統(tǒng)直接使用,大大提高數(shù)據(jù)的查詢(xún)效率。
根據(jù)學(xué)校的實(shí)際應(yīng)用場(chǎng)景需要,從數(shù)據(jù)中心的標(biāo)準(zhǔn)庫(kù)抽取部分?jǐn)?shù)據(jù)并經(jīng)過(guò)治理后,建立主題數(shù)據(jù)庫(kù),使得各部門(mén)信息系統(tǒng)的數(shù)據(jù)得到更好的集成和統(tǒng)一的管理。有了主題數(shù)據(jù)庫(kù),即可根據(jù)用戶(hù)需求,呈現(xiàn)相關(guān)的數(shù)據(jù)統(tǒng)計(jì)查詢(xún)和匯總。除此之外,其他信息業(yè)務(wù)系統(tǒng)在實(shí)際生產(chǎn)過(guò)程中根據(jù)自身應(yīng)用場(chǎng)景,如需要用到主題數(shù)據(jù)庫(kù)的數(shù)據(jù),作為數(shù)據(jù)需求方提出數(shù)據(jù)使用申請(qǐng),由數(shù)據(jù)中心管理員審核并授權(quán)后,作為數(shù)據(jù)供方,提供經(jīng)過(guò)治理后的數(shù)據(jù)給需求方使用,以此來(lái)提高平臺(tái)數(shù)據(jù)的利用率。通過(guò)構(gòu)建多維度、高質(zhì)量的主題數(shù)據(jù)庫(kù),滿(mǎn)足不同業(yè)務(wù)系統(tǒng)應(yīng)用場(chǎng)景的個(gè)性化查詢(xún)、統(tǒng)計(jì)和分析訴求,最終達(dá)到推動(dòng)學(xué)校精細(xì)化管理、加速學(xué)術(shù)研究產(chǎn)出、提升學(xué)校信息化建設(shè)影響力的目的。
5.3.1 學(xué)生主題數(shù)據(jù)庫(kù)
學(xué)生是學(xué)校的主體,學(xué)生的相關(guān)數(shù)據(jù)也是最龐大、最復(fù)雜的。學(xué)生數(shù)據(jù)涉及的業(yè)務(wù)系統(tǒng)主要包括教務(wù)系統(tǒng)、學(xué)工系統(tǒng)、學(xué)生繳費(fèi)系統(tǒng)、迎新系統(tǒng)、宿舍管理系統(tǒng)、網(wǎng)上辦事大廳、一卡通系統(tǒng)、就業(yè)系統(tǒng)、VPN管理系統(tǒng)等。各業(yè)務(wù)系統(tǒng)之間難免會(huì)出現(xiàn)數(shù)據(jù)不一致的問(wèn)題,導(dǎo)致同一個(gè)內(nèi)容在不同系統(tǒng)里呈現(xiàn)不一樣的查詢(xún)結(jié)果,這就導(dǎo)致用戶(hù)無(wú)法正確使用相關(guān)查詢(xún)結(jié)果。為了打通各業(yè)務(wù)系統(tǒng)之間的壁壘,消除信息孤島以及解決數(shù)據(jù)統(tǒng)一的問(wèn)題,建立學(xué)生主題數(shù)據(jù)庫(kù)是非常有必要的。學(xué)生主題數(shù)據(jù)庫(kù)主要涉及的信息表包括學(xué)生學(xué)籍信息、學(xué)生編號(hào)信息、學(xué)生成績(jī)信息、學(xué)生獎(jiǎng)懲信息、學(xué)生宿舍信息、學(xué)生繳費(fèi)信息、學(xué)生就業(yè)信息等。
5.3.2 教師主題數(shù)據(jù)庫(kù)
涉及教師的業(yè)務(wù)系統(tǒng)主要包括人事系統(tǒng)、協(xié)同辦公平臺(tái)、科研系統(tǒng)、教務(wù)系統(tǒng)、學(xué)工系統(tǒng)、網(wǎng)上辦事大廳、資產(chǎn)管理系統(tǒng)、黨建系統(tǒng)、績(jī)效考核系統(tǒng)、財(cái)務(wù)系統(tǒng)、站群管理系統(tǒng)等。教師主題數(shù)據(jù)庫(kù)主要涵蓋的信息表有:教師編號(hào)信息、教師工資信息、教師職稱(chēng)信息、教師授課信息、黨員基本信息、年度考核信息、教師辦公資產(chǎn)信息等。
5.3.3 科研主題數(shù)據(jù)庫(kù)
一個(gè)學(xué)校的科研能力在一定程度上反映出該校的辦學(xué)實(shí)力。而科研管理系統(tǒng)正是用余記錄和體現(xiàn)科研水平的重要業(yè)務(wù)系統(tǒng)。加上長(zhǎng)期積累,每個(gè)學(xué)校的科研數(shù)據(jù)也是相當(dāng)龐大,因此,針對(duì)科研系統(tǒng)建立相應(yīng)的科研主題數(shù)據(jù)庫(kù)也是非常有必要的??蒲兄黝}數(shù)據(jù)庫(kù)涉及的信息表主要包括:論文成果信息、教材成果信息、專(zhuān)利成果信息、品種認(rèn)定信息、著作成果信息、獲獎(jiǎng)成果信息等。
本文主要對(duì)基于Hadoop平臺(tái)的校本數(shù)據(jù)中心的建設(shè)進(jìn)行了研究,校本數(shù)據(jù)中心利用Hadoop的Sqoop組件,將學(xué)校各信息業(yè)務(wù)系統(tǒng)的數(shù)據(jù)進(jìn)行抽取,存儲(chǔ)在分布式數(shù)據(jù)庫(kù)HBase中。數(shù)據(jù)按照列式方式進(jìn)行存儲(chǔ),有效解決了傳統(tǒng)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)訪問(wèn)存瓶頸和數(shù)據(jù)庫(kù)擴(kuò)展的問(wèn)題,同時(shí)很大程度上提供了存儲(chǔ)效率和空間的利用率。校本數(shù)據(jù)中心對(duì)采集的數(shù)據(jù)經(jīng)過(guò)有效治理后,形成標(biāo)準(zhǔn)庫(kù)和主題數(shù)據(jù)庫(kù),打破了學(xué)校各信息業(yè)務(wù)系統(tǒng)直接的壁壘,很多程度了消息了信息孤島,為各業(yè)務(wù)系統(tǒng)開(kāi)展數(shù)據(jù)統(tǒng)計(jì)分析、挖掘數(shù)據(jù)規(guī)律、輔助領(lǐng)導(dǎo)決策等提供強(qiáng)有力支撐。同時(shí)為學(xué)校的信息化建設(shè)提供強(qiáng)大可靠的校本數(shù)據(jù)中心。