楊珍珍 張堅(jiān)君/浙江中醫(yī)藥大學(xué)
近年來,校史編研工作得到了許多高校的重視,高校出版了大量的編研成果,校史編研取得了積極的成績,形成了當(dāng)代歷史研究的一個(gè)新領(lǐng)域。隨著各個(gè)高校電子校務(wù)、智慧校園等項(xiàng)目的建設(shè),校史編研工作也出現(xiàn)了新的趨勢(shì),研究內(nèi)容更豐富,不再局限于高校自身的歷史,開始關(guān)注同一歷史時(shí)期不同高校的共性及差異性研究;研究方法有創(chuàng)新,校史研究從傳統(tǒng)的手工資料收集、史料整理向計(jì)算機(jī)數(shù)據(jù)分析處理、專題研究轉(zhuǎn)變,并利用多媒體手段探索校史成果的多樣化展示及多元化傳播。但是距離世界一流大學(xué)的建設(shè)要求,或是與其他領(lǐng)域的編研工作水平相比,都存在一定的差距,主要表現(xiàn)為史料收集工作效率低、編研成果挖掘深度不夠、展示形式有待進(jìn)一步拓展、編研成果無法有效利用等。
為提高高校校史編研工作效率、充分挖掘高校校史資源價(jià)值,充分利用新技術(shù)手段探索校史成果展示形式,本文擬選擇當(dāng)前熱度比較高、應(yīng)用比較廣泛的Apache Spark這一大數(shù)據(jù)處理框架,構(gòu)建高校校史編研模型,探索高效、靈活的校史編研方法,最終形成準(zhǔn)確、完整、生動(dòng)的校史編研成果。
校史即學(xué)校的歷史,校史編研顧名思義就是對(duì)學(xué)校的歷史進(jìn)行編寫和研究[1]。校史編研是高校檔案工作的一項(xiàng)重要內(nèi)容,是校史檔案信息資源開發(fā)利用的一種高級(jí)形式,自1984年8月教育部下發(fā)《關(guān)于編寫校史的通知》以來,校史研究隊(duì)伍逐步壯大,研究內(nèi)容不斷拓展,研究方法和手段也日趨多樣,研究成果日益豐富[2]。
傳統(tǒng)的校史編研多以書籍資料、畫冊(cè)、展覽等的實(shí)體展示為主。隨著學(xué)校信息化及智慧校園建設(shè)的不斷深化,校史資源散存在數(shù)量龐大、數(shù)據(jù)冗余的各類信息系統(tǒng)中。這一方面給校史編研帶來了新的機(jī)遇,高校能夠運(yùn)用各類信息化工具整合校史資源、挖掘校史之間的內(nèi)在聯(lián)系、多樣化地呈現(xiàn)校史編研成果;另一方面也給校史編研帶來了新的挑戰(zhàn),傳統(tǒng)的校史編研如何改進(jìn)、如何適應(yīng)新的技術(shù)進(jìn)步成為難點(diǎn)。目前傳統(tǒng)校史編研主要存在以下四個(gè)方面的問題。
一是史料收集工作效率低下。校史編研依托于海量的校史資料,盡管高校檔案館(室)保存著大量學(xué)校第一手史料,但是仍不能滿足校史編研的需要。高校各部門、學(xué)院有獨(dú)立的信息系統(tǒng),甚至出現(xiàn)一個(gè)部門有多個(gè)系統(tǒng)的情況,各個(gè)信息系統(tǒng)并不互通,還會(huì)出現(xiàn)“數(shù)據(jù)打架”的情況,底層數(shù)據(jù)結(jié)構(gòu)也不盡相同。這就給數(shù)據(jù)資源的收集、鑒別與整合帶來了一定的難度。
二是編研成果挖掘深度不夠。由于校史編研起步較晚,基礎(chǔ)相對(duì)薄弱,不少高校也不夠重視校史編研這項(xiàng)工作,沒有投入充足的人力物力,尤其是校史編研隊(duì)伍的專業(yè)化水平有待提高。校史編研人員多是辦公室人員或檔案人員,他們?nèi)狈I(yè)的編史修志知識(shí),也不具備各類數(shù)據(jù)庫系統(tǒng)知識(shí)或數(shù)據(jù)分析與挖掘能力等。校史編研的成果主要為校史檔案的匯編或選編,編研方法多是編史修志、史料匯編等,多“編”少“研”的問題突出,深入的研究分析不足。
三是編研成果展示形式單一、新技術(shù)應(yīng)用不足[3]。大部分校史編研成果為史料匯編,多為圖片加文字說明,有些則全部是文字,很少為音頻、視頻展示;網(wǎng)上展廳也只是單純的在線展示線下展覽的內(nèi)容,缺乏與觀眾互動(dòng)或應(yīng)用新技術(shù)。特別是各類可視化、動(dòng)態(tài)化的技術(shù)如可視化技術(shù)Html5、圖表繪制工具Chart.js的應(yīng)用較少,人機(jī)交互等人工智能技術(shù)的應(yīng)用也很少。
四是編研成果無法有效利用。一方面校史編研成果沒有很好地宣傳,受眾面狹窄,多是在檔案系統(tǒng)內(nèi)部傳播,其內(nèi)容也未必能“深入人心”[4]。另一方面校史編研成果多是固化的書籍資料、畫冊(cè)、展覽等,一次編完很難及時(shí)更新內(nèi)容,與公眾的互動(dòng)有待加強(qiáng)。
Apache Spark 是一個(gè)在集群上運(yùn)行的統(tǒng)一計(jì)算引擎以及一組并行數(shù)據(jù)處理軟件庫[5],是一個(gè)圍繞速度、通用和復(fù)雜分析構(gòu)建的大數(shù)據(jù)處理框架。2009年它誕生于加州大學(xué)伯克利分校AMP實(shí)驗(yàn)室,2010年成為Apache的開源項(xiàng)目之一,2013年已經(jīng)得到了廣泛的應(yīng)用。
作為目前應(yīng)用最廣泛的開源大數(shù)據(jù)處理框架,Spark的最大優(yōu)勢(shì)在于擁有數(shù)量龐大的資源、工具和社群力量。Spark生態(tài)系統(tǒng)以Spark Core為核心,這是一個(gè)包含了交互式查詢(SparkSQL)、實(shí)時(shí)流處理(Spark Streaming)、機(jī)器學(xué)習(xí)(SparkMLlib)和圖計(jì)算(GraphX)等多個(gè)子項(xiàng)目的集合。它是在借鑒主要運(yùn)行在計(jì)算機(jī)集群上的并行計(jì)算引擎Hadoop Map Reduce之上發(fā)展起來的,繼承了其分布式并行計(jì)算的優(yōu)點(diǎn)并進(jìn)行了改進(jìn),能高效支持更多的計(jì)算模式,如流處理、交互式查詢、迭代算法等。通過Spark這一統(tǒng)一的框架,原本需要多種不同分布式平臺(tái)的處理流程得以整合在一起,大大減輕了管理多個(gè)平臺(tái)的負(fù)擔(dān)。
Spark主要使用Scala語言進(jìn)行編寫,并支持多種編程語言運(yùn)行Spark代碼,應(yīng)用程序由一個(gè)驅(qū)動(dòng)器進(jìn)程(Driver)和一組執(zhí)行器(Executor)進(jìn)程組成,以彈性分布式數(shù)據(jù)集(RDD)為工作核心,通過DAG圖和Stage作業(yè)劃分完成組織、運(yùn)算和調(diào)度等一系列計(jì)算任務(wù)。Spark主要有以下四個(gè)特點(diǎn)。
一是速度更快。大數(shù)據(jù)處理中速度往往被置于第一位,Spark實(shí)現(xiàn)了高效的DAG執(zhí)行引擎,中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS。與Hadoop Map Reduce相比,Spark基于內(nèi)存的運(yùn)算速度要快100倍以上,基于硬盤的運(yùn)算速度也要快10倍。
二是易于使用。Spark底層支持多種數(shù)據(jù)存儲(chǔ)模式,Spark不但能夠訪問多個(gè)數(shù)據(jù)庫,如HDFS、Cassandra、Hbase、AmazonS3,還支持多種常用的編程語言,提供了Scala、Java、Python以及R四種語言的API接口,并支持超過80種高級(jí)算法,以便于更多的開發(fā)者在自己熟悉的語言環(huán)境下進(jìn)行工作, Spark的應(yīng)用范圍得以普及。此外,Spark可以非常方便地與其他開源產(chǎn)品進(jìn)行融合,如部署在已有的Hadoop系統(tǒng)上,同Yarn進(jìn)行集群調(diào)度,不需要做任何的數(shù)據(jù)遷移,最大限度地利用Hadoop系統(tǒng)[6]。
三是降低成本。針對(duì)原本需要多種不同分布式平臺(tái)才能實(shí)現(xiàn)的算法,如批處理、迭代算法、交互式查詢、流處理等,Spark提供了統(tǒng)一的解決方案,使各種處理流程得以簡(jiǎn)單而方便地整合在一起。這在實(shí)際的應(yīng)用場(chǎng)景中,大大減少了部署多個(gè)平臺(tái)的物力成本以及開發(fā)和維護(hù)的人力成本。
四是適用于機(jī)器學(xué)習(xí)及復(fù)雜數(shù)據(jù)處理。使用Spark批量處理計(jì)算任務(wù),其基于內(nèi)存的特點(diǎn)使得它更適用于大量迭代的機(jī)器學(xué)習(xí)和復(fù)雜數(shù)據(jù)處理,支持交互計(jì)算和復(fù)雜算法,提供支持SQL、流處理、機(jī)器學(xué)習(xí)等多種任務(wù)的軟件庫,可以直接用于批量數(shù)據(jù)分析。
校史編研的前提是準(zhǔn)確、全面的校史數(shù)據(jù)。一直以來我國高校校史編研工作仍以傳統(tǒng)模式為主,主要依賴學(xué)校檔案資源,檔案收集的完整程度直接關(guān)系校史編研成敗。校史編研者如想要收集第一手?jǐn)?shù)據(jù),需要走訪校內(nèi)各部門,這不僅費(fèi)時(shí)費(fèi)力,而且資料的正確性、完整性也無法保障。隨著信息化不斷發(fā)展以及“智慧校園”的建設(shè),高校各部門、學(xué)院紛紛建設(shè)自己的信息系統(tǒng),信息資源從數(shù)量上來說呈指數(shù)級(jí)增長,從類型上來講也是多種多樣。如何在大數(shù)據(jù)環(huán)境下全面收集、分析、整合學(xué)校信息資源,開展校史編研工作,成為校史編研工作亟待解決的問題。
從數(shù)據(jù)收集層面講,Spark平臺(tái)解決了集群環(huán)境下并行處理大數(shù)據(jù)的效率問題,這使得各業(yè)務(wù)系統(tǒng)之間的整合成為可能,能夠保障校史編研資料的全面性。Apache Spark這一大數(shù)據(jù)處理框架,能夠很好地整合校內(nèi)檔案系統(tǒng)、OA系統(tǒng)、教務(wù)系統(tǒng)、科研系統(tǒng)、郵件系統(tǒng)等異構(gòu)數(shù)據(jù)庫,不僅從空間維度上而且從時(shí)間維度上確保了學(xué)校信息資源收集的完整性,為校史編研工作的開展打下了較好的物質(zhì)基礎(chǔ)。
從數(shù)據(jù)處理層面講,使用Spark SQL、Spark Streaming、Mllib、GraphX等多種框架對(duì)數(shù)據(jù)進(jìn)行分析與處理。根據(jù)選定的校史專題,如圍繞學(xué)校知名人物、學(xué)校重大事件等抓取、分析、分類海量平臺(tái)數(shù)據(jù),快速獲取與該專題相關(guān)的所有文件材料,呈現(xiàn)素材全面、內(nèi)容準(zhǔn)確的校史編研成果,進(jìn)一步提高校史編研的效率、拓展校史編研的形式。
從數(shù)據(jù)應(yīng)用層面講,Spark平臺(tái)更適用于大量迭代的機(jī)器學(xué)習(xí)和復(fù)雜數(shù)據(jù)處理,能夠?qū)ζ脚_(tái)數(shù)據(jù)進(jìn)行多維度分析,通過不同的圖表、動(dòng)畫甚至虛擬現(xiàn)實(shí)技術(shù)、人工智能技術(shù),豐富校史編研成果的展示形式,擴(kuò)大校史編研成果的應(yīng)用場(chǎng)景。
校史編研系統(tǒng)預(yù)期整合校內(nèi)檔案管理系統(tǒng)、OA系統(tǒng)、教務(wù)系統(tǒng)、科研管理系統(tǒng)等各業(yè)務(wù)系統(tǒng),對(duì)學(xué)校大數(shù)據(jù)進(jìn)行采集、存儲(chǔ)、計(jì)算、分析、應(yīng)用,構(gòu)建校史編研系統(tǒng)。系統(tǒng)核心采用Spark技術(shù),搭建的校史編研系統(tǒng)分析如下。
為了實(shí)現(xiàn)從一臺(tái)計(jì)算機(jī)到多達(dá)數(shù)千臺(tái)計(jì)算機(jī)的伸縮計(jì)算,同時(shí)獲得最大的靈活性,Spark支持在各種集群管理器上運(yùn)行。管理和協(xié)調(diào)集群中多臺(tái)計(jì)算機(jī)設(shè)備的集群管理器主要有三個(gè),即Spark的獨(dú)立集群管理器、Hadoop Yarn、Apache Mesos。結(jié)合校內(nèi)各業(yè)務(wù)系統(tǒng)的實(shí)際,校史編研系統(tǒng)擬采用Hadoop Yarn集群管理器,Yarn是Hadoop2.0中引入的集群管理器,可以在一個(gè)共享的資源池里運(yùn)行多種數(shù)據(jù)處理框架,而且和Hadoop的分布式存儲(chǔ)系統(tǒng)(HDFS)安裝在同一個(gè)物理節(jié)點(diǎn)上,這樣當(dāng)Spark程序運(yùn)行在存儲(chǔ)節(jié)點(diǎn)上的時(shí)候可以快速訪問HDFS中的數(shù)據(jù)。
根據(jù)數(shù)據(jù)的流向自底向上劃分,校史編研系統(tǒng)主要分為三個(gè)層面,即數(shù)據(jù)采集層、數(shù)據(jù)處理層、數(shù)據(jù)應(yīng)用層。
其中,數(shù)據(jù)采集層使用Hadoop架構(gòu)的分布式存儲(chǔ)模塊HDFS,采集并整合校內(nèi)各部門的業(yè)務(wù)系統(tǒng)數(shù)據(jù),形成結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化的數(shù)據(jù)集;數(shù)據(jù)處理層采用Spark技術(shù),對(duì)底層數(shù)據(jù)進(jìn)行清洗、整合、關(guān)聯(lián)、轉(zhuǎn)換、匯總、存儲(chǔ)等操作;數(shù)據(jù)應(yīng)用層為校史編研提供數(shù)據(jù)查詢、統(tǒng)計(jì)、分析、可視化顯示等功能。數(shù)據(jù)應(yīng)用層與數(shù)據(jù)處理層之間進(jìn)行數(shù)據(jù)交互,數(shù)據(jù)采集層采用分布式數(shù)據(jù)庫存儲(chǔ),數(shù)據(jù)處理層采用Spark計(jì)算框架,這樣有效提升了系統(tǒng)的響應(yīng)效率,降低了系統(tǒng)的負(fù)載壓力,使系統(tǒng)順暢運(yùn)行。
校史編研系統(tǒng)的數(shù)據(jù)主要來自于高校檔案管理系統(tǒng)及各部門、學(xué)院使用的業(yè)務(wù)系統(tǒng),調(diào)研顯示基本為關(guān)系型數(shù)據(jù)庫,即結(jié)構(gòu)數(shù)據(jù)。除此之外,我們還面臨著大量的結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù),如工作郵件、關(guān)系數(shù)據(jù)庫中的文本附件等。
我們通過SQL Server的Hadoop連接器,使用Hadoop架構(gòu),整合檔案館、學(xué)校各部門數(shù)據(jù)庫及其他非結(jié)構(gòu)數(shù)據(jù),對(duì)大量數(shù)據(jù)進(jìn)行分布式處理。Hadoop有兩個(gè)核心模塊,即分布式存儲(chǔ)模塊HDFS和分布式計(jì)算模塊Mapreduce。由于Spark本身并沒有提供分布式文件系統(tǒng)[7],因此Spark的分析大多依賴于Hadoop的分布式文件系統(tǒng)HDFS。Hadoop連接器提供了Hadoop非結(jié)構(gòu)數(shù)據(jù)與SQL Server結(jié)構(gòu)化數(shù)據(jù)之間的雙向遷移能力。
校史編研系統(tǒng)應(yīng)用Spark框架進(jìn)行數(shù)據(jù)處理。Spark除了Spark Core基礎(chǔ)框架之外,還有Spark SQL、Mlib、GraphX、Spark Streaming、Spark R等子框架,用來滿足不同的工作需求。Spark Core包含Spark的基本功能,其他Spark的庫都是構(gòu)建在RDD和Spark Core之上的[8]。
Spark SQL是Spark用來處理結(jié)構(gòu)化數(shù)據(jù)的一個(gè)模塊,它提供一個(gè)編程抽象Data Frame作為分布式SQL查詢引擎。Spark SQL把校史編研系統(tǒng)內(nèi)的每個(gè)數(shù)據(jù)庫表都被當(dāng)做一個(gè)RDD,Spark SQL查詢被轉(zhuǎn)換為Spark操作,提交到集群執(zhí)行,從而提高系統(tǒng)運(yùn)行效率。
MLlib是Spark的機(jī)器學(xué)習(xí)(Machine Learning)算法庫,提供了常用數(shù)據(jù)挖掘算法的分布式實(shí)現(xiàn)功能。這個(gè)庫包含一些通用的學(xué)習(xí)算法和工具,包括分類、回歸、聚類、協(xié)同過濾等對(duì)大批量數(shù)據(jù)進(jìn)行迭代的操作。機(jī)器學(xué)習(xí)使校史編研選題更加豐富、成果更加多樣。
GraphX是一個(gè)分布式圖處理框架,用于圖和并行圖的計(jì)算,在Spark之上提供了一棧式數(shù)據(jù)解決方案[9],但GraphX并不提供對(duì)數(shù)據(jù)可視化的支持,我們可以通過第三方庫GraphStream和Breeze來實(shí)現(xiàn)這一目標(biāo),為校史編研成果提供更豐富更直觀的表現(xiàn)手段。
校史編研系統(tǒng)建成以后,用戶根據(jù)選題范圍或者關(guān)鍵詞,在系統(tǒng)上提交編研請(qǐng)求,系統(tǒng)依靠Spark計(jì)算框架,對(duì)系統(tǒng)所包含的各個(gè)數(shù)據(jù)庫(各業(yè)務(wù)系統(tǒng))進(jìn)行檢索,分析、處理用戶輸入的信息,并根據(jù)統(tǒng)計(jì)指標(biāo)、數(shù)據(jù)組合關(guān)系、數(shù)據(jù)間相互影響關(guān)系,建立數(shù)字模型,呈現(xiàn)編研結(jié)果。除使用GraphX、Mllib等Spark自帶的子框架外,系統(tǒng)還可使用主流的可視化技術(shù)Html5、圖表繪制工具Chart.js等[10],將抽象的數(shù)據(jù)編碼成用戶所需的可視化數(shù)據(jù)、文字、圖表或動(dòng)畫,進(jìn)一步豐富校史編研成果的呈現(xiàn)形式。
本文提出一種依靠Spark大數(shù)據(jù)框架構(gòu)建的校史編研系統(tǒng),以期能夠?qū)Ω咝8鳂I(yè)務(wù)部門及學(xué)院的系統(tǒng)數(shù)據(jù)進(jìn)行采集、整合存儲(chǔ)、分析計(jì)算,促進(jìn)校史編研向全面、準(zhǔn)確、豐富的目標(biāo)進(jìn)一步發(fā)展,為信息化時(shí)代的校史編研提供一種可行的思路;探索更加快速、便捷、個(gè)性化的校史編研模型,滿足用戶實(shí)時(shí)、多元化的校史編研需求,以期能將理論運(yùn)用于實(shí)踐,為師生及校友提供個(gè)性化編研服務(wù),為高校發(fā)展決策及文化建設(shè)提供基礎(chǔ)和依據(jù),并能在其他高校進(jìn)行推廣,促進(jìn)校史編研進(jìn)一步發(fā)展,提高校史編研的整體知名度和社會(huì)影響力。