劉萍
摘 要:對校園大數(shù)據(jù)分析是校園信息化發(fā)展的新思路。Hadoop是Apache基金會開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),它是集分布式計算、存儲和管理為一體的生態(tài)系統(tǒng)。目前流行的Spark框架是與Hadoop生態(tài)系統(tǒng)中的MapReduce類似的一個分布式計算平臺,Spark比MapReduce的速度更快且提供的功能更豐富。本文以數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)分析、數(shù)據(jù)展現(xiàn)為主線,結(jié)合大數(shù)據(jù)領(lǐng)域最流行的Hadoop框架與Spark框架提出了高校校園大數(shù)據(jù)平臺架構(gòu),詳細闡述了架構(gòu)各層次的具體功能,并對架構(gòu)中關(guān)系數(shù)據(jù)庫數(shù)據(jù)的采集存儲進行了詳細介紹,最后設(shè)計校園大數(shù)據(jù)分析原型系統(tǒng)來驗證架構(gòu)的可行性。
關(guān)鍵詞:大數(shù)據(jù);Hadoop;Spark;校園大數(shù)據(jù)平臺
中圖分類號:TP391 文獻標識碼:A
Abstract:The analysis of campus big data is a new way of campus information development.Hadoop is a distributed system infrastructure developed by Apache Foundation,which is an ecosystem integrating distributed computing,storage and management.The current popular Spark framework is a distributed computing platform similar to MapReduce in the Hadoop ecosystem,and Spark is faster and more functional than MapReduce.With the main line of data collection,data storage,data analysis and data presentation,this paper puts forward the big data platform architecture of university campus in combination with the most popular Hadoop framework and Spark framework in big data fields,and expounds the specific functions of the architecture at all levels in detail,and gives a detailed description of the data collection and storage of the related coefficients in the architecture.Finally,the campus big data analysis prototype system is designed to verify the feasibility of the architecture.
Keywords:big data;Hadoop;Spark;campus big data platform
1 引言(Introduction)
隨著云計算、物聯(lián)網(wǎng)、WEB搜索、電子商務(wù)、個性化信息服務(wù)和社交網(wǎng)絡(luò)的高速發(fā)展,產(chǎn)生了大量的數(shù)據(jù),其中蘊含的巨大價值成為大數(shù)據(jù)分析的強大動力。大數(shù)據(jù)技術(shù)也推動了高校校園信息化建設(shè)由數(shù)字化校園逐漸向智慧化校園轉(zhuǎn)變,在持續(xù)建設(shè)過程中,校園各個階段建設(shè)了一系列上層應(yīng)用系統(tǒng),例如學生管理系統(tǒng)、教務(wù)系統(tǒng)、科研系統(tǒng)、招生系統(tǒng)、就業(yè)系統(tǒng)、財務(wù)系統(tǒng)、人事系統(tǒng)、圖書管理系統(tǒng)、后勤管理系統(tǒng)和校園一卡通等,積累的校園數(shù)據(jù)也在迅猛增加,已初步形成校園大數(shù)據(jù)環(huán)境。搭建大數(shù)據(jù)平臺,對海量校園數(shù)據(jù)進行分析,集成各個時期開發(fā)的各種信息系統(tǒng)中的結(jié)構(gòu)化數(shù)據(jù),并對校園網(wǎng)頁等非結(jié)構(gòu)化數(shù)據(jù),以及實時的流數(shù)據(jù)進行采集分析,實現(xiàn)校園中信息的互聯(lián)互通,并對師生進行個性化服務(wù),為學生學業(yè)提供預警,如提前一年畢業(yè)資格審核,發(fā)送審核報告給學生,對學校教師和科研數(shù)據(jù)進行分析,為學校管理者制定教學管理方針提供可靠的數(shù)據(jù)依據(jù),有著重要的意義。
2 Hadoop與Spark介紹(Hadoop and Spark
introduction)
目前以Hadoop為核心的大數(shù)據(jù)解決方案占大數(shù)據(jù)市場95%以上的份額。Hadoop是一個集分布式計算、存儲和管理為一體的生態(tài)系統(tǒng),它為大規(guī)模并行數(shù)據(jù)處理算法提供運行環(huán)境。Hadoop生態(tài)系統(tǒng)的核心是分布式文件系統(tǒng)(Hadoop Distributed File System,簡稱HDFS)和MapReduce框架,HDFS為海量數(shù)據(jù)提供了高容錯性和高吞吐量的數(shù)據(jù)存儲,MapReduce框架為海量數(shù)據(jù)提供并行計算[1]。
Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速通用的內(nèi)存計算框架。Spark可以認為是MapReduce的替代方案。Spark中數(shù)據(jù)被高度抽象且存儲在彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset,簡稱RDD)中。它將數(shù)據(jù)加載到節(jié)點內(nèi)存中,然后在內(nèi)存中完成計算。Spark有許多內(nèi)置操作,可以將一個RDD轉(zhuǎn)換為另一個RDD,RDD的持久化操作,可以將它緩存在工作節(jié)點的內(nèi)存中,這樣中間結(jié)果可以保存在內(nèi)存,從而不再需要讀寫HDFS。后續(xù)重用數(shù)據(jù)時,直接從內(nèi)存讀取。它能夠快速訪問數(shù)據(jù),有效提高了迭代執(zhí)行的時間效率[2]。而MapReduce在計算過程中要將中間結(jié)果寫入HDFS,這樣就需要大量的磁盤I/O操作。
Hadoop的容錯方式與Spark很不一樣,Hadoop通過復制備份多份數(shù)據(jù)進行容錯。而Spark無需備份數(shù)據(jù),RDD為Spark提供了良好的容錯性能,Spark記錄RDD上執(zhí)行的一系列操作,構(gòu)建一個有向非循環(huán)DAG圖,若數(shù)據(jù)出錯或丟失,就依據(jù)DAG追溯重算[3]。Spark比MapReduce有諸多的優(yōu)勢[4],特別適用于批處理、迭代計算(如機器學習、圖計算等)、交互式處理(如數(shù)據(jù)挖掘)和流式處理(如點擊日志分析)等[5]。
Spark僅僅是計算框架,它的生態(tài)系統(tǒng)并沒有提供資源管理系統(tǒng),因此需要使用Hadoop YARN,為上層應(yīng)用提供統(tǒng)一資源管理和調(diào)度,它為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處[6]。Spark本身也并沒有提供分布式文件系統(tǒng),Spark的分析大多依賴Hadoop的分布式文件系統(tǒng)HDFS,它可兼容HDFS和Hive等分布式存儲層,可融入Hadoop生態(tài)系統(tǒng)[7]。因此下文結(jié)合Hadoop與Spark構(gòu)建高校校園大數(shù)據(jù)平臺。
3 基于Hadoop與Spark的校園大數(shù)據(jù)平臺架構(gòu)
(Campus big data platform architecture based on
Hadoop and Spark)
對學校各階段開發(fā)使用的應(yīng)用系統(tǒng)中的結(jié)構(gòu)化數(shù)據(jù)進行收集存儲,對校園內(nèi)海量的半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)也進行統(tǒng)一管理和存儲,能夠?qū)崿F(xiàn)學生、教師、科研、招生、就業(yè)、財務(wù)、人事、圖書、后勤、一卡通等信息的統(tǒng)一采集、存儲、處理、分析。研究科研數(shù)據(jù),分析最近幾年學院的科研動態(tài),對科研發(fā)展方向進行預測;研究教師數(shù)據(jù),及時關(guān)注學校的教學動態(tài),為學校教育教學方針政策的制定提供數(shù)據(jù)依據(jù),通過關(guān)聯(lián)規(guī)則分析教務(wù)系統(tǒng)中教師的教學工作量與科研系統(tǒng)中教師的科研進展之間的關(guān)系;研究學生數(shù)據(jù),分析學生的學習狀況、食宿消費、圖書借閱等行為,對學生畢業(yè)資格提前進行審核,對可能無法正常畢業(yè)的學生進行預警。對校園一卡通的消費記錄進行分析,得出學生的消費水平和消費習慣,為學院助學金政策的制定和實施提供有效的數(shù)據(jù)支撐[8]。
下文結(jié)合伯克利APM實驗室打造的Spark生態(tài)圈(BDAS),因其是在算法(Algorithms)、機器(Machines)和人(People)之間通過大規(guī)模集成來展現(xiàn)大數(shù)據(jù)應(yīng)用的一個平臺。該生態(tài)圈已涉及機器學習、數(shù)據(jù)挖掘、信息檢索、數(shù)據(jù)庫、自然語言處理和語音識別等領(lǐng)域。但該生態(tài)圈并沒有提供分布式文件系統(tǒng),因此Spark的分析可借助與Hadoop的分布式文件系統(tǒng)HDFS;Spark還可以使用Hadoop生態(tài)系統(tǒng)中的Yarn進行集群資源管理和調(diào)度[9]。因此結(jié)合Hadoop和Spark技術(shù),提出了基于Hadoop與Spark的校園大數(shù)據(jù)平臺架構(gòu),如圖1所示。
3.1 校園大數(shù)據(jù)平臺架構(gòu)分析
針對校園大數(shù)據(jù)平臺架構(gòu)的各層次功能實現(xiàn)給出如下闡釋:
數(shù)據(jù)源該層包括結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)和實時流數(shù)據(jù),結(jié)構(gòu)化數(shù)據(jù)主要包括高校校園信息化建設(shè)過程中的各應(yīng)用系統(tǒng)中的數(shù)據(jù),如學生管理系統(tǒng)、教務(wù)系統(tǒng)、科研系統(tǒng)、招生系統(tǒng)、就業(yè)系統(tǒng)、財務(wù)系統(tǒng)、人事系統(tǒng)、圖書管理系統(tǒng)、后勤管理系統(tǒng)、資產(chǎn)管理和校園一卡通等;非結(jié)構(gòu)化數(shù)據(jù)一般包括網(wǎng)頁、微博、微信等;實時流數(shù)據(jù)主要包括監(jiān)控、門禁等。
大數(shù)據(jù)采集與存儲,該層實現(xiàn)從數(shù)據(jù)源中抽取數(shù)據(jù)到HDFS中進行數(shù)據(jù)分析。數(shù)據(jù)采集中采用Sqoop將關(guān)系數(shù)據(jù)庫,如Oracle、MySQL等中的數(shù)據(jù)導入Hadoop的HDFS或HBase中,當然也可將HDFS的數(shù)據(jù)導出到關(guān)系數(shù)據(jù)庫中。Sqoop通過Hadoop的MapReduce導入導出,因此整個平臺擁有很高的并行性,以及良好的容錯性。在HDFS上儲存時,文件會分成64MB為一單位的數(shù)據(jù)集合,通過冗余鏡像的方式在計算機集群中進行分布式儲存。對于結(jié)構(gòu)化明顯的數(shù)據(jù)可以進行集中儲存,對于結(jié)構(gòu)化不明顯的數(shù)據(jù)以文件和目錄方式進行分布式儲存。對于非結(jié)構(gòu)化數(shù)據(jù)和流數(shù)據(jù)通過專業(yè)的工具,如網(wǎng)絡(luò)爬蟲等,收集教師、學生的數(shù)據(jù),如教學過程、教育管理過程產(chǎn)生的視頻、文檔、PPT、教案,學生的作業(yè)、試卷等信息,以及物聯(lián)網(wǎng)產(chǎn)生的信息如監(jiān)控、門禁信息等,這其中包含了大量的文件、照片、視頻等數(shù)據(jù)。
大數(shù)據(jù)分析,該層使用內(nèi)存計算框架Spark,Spark提供了大量的庫,包括Spark SQL、Spark MLlib、Spark GraphX、Spark Streaming、DataFrames等。本平臺將無縫組合使用這些庫。使用Spark SQL讀取HDFS,并進行分布式數(shù)據(jù)查詢操作,使用Spark Streaming將流式數(shù)據(jù)轉(zhuǎn)換成RDD,使用Spark GraphX解析運行圖計算,使用Spark MLlib設(shè)計和實現(xiàn)機器學習算法。運用它協(xié)同實現(xiàn)校園大數(shù)據(jù)的分類、聚類、關(guān)聯(lián)規(guī)則等數(shù)據(jù)挖掘算法。部分使用MapReduce進行離線分析。
數(shù)據(jù)應(yīng)用展示,該層為用戶提供個性化服務(wù)定制功能,可以為用戶進行信息推送,用戶可以查詢分析結(jié)果,可以展示科研數(shù)據(jù)分析、學生數(shù)據(jù)分析、教師數(shù)據(jù)分析,以及學生畢業(yè)資格審核等。通過建立校園大數(shù)據(jù)平臺得到有價值的信息并以可視化方式,例如通過門戶網(wǎng)站、移動APP等展現(xiàn)給用戶,并為學生提供學習情況和消費情況分析、為老師提供教科研分析等,分析結(jié)果以曲線、二維圖像或文件報告等方式展現(xiàn)。大數(shù)據(jù)分析結(jié)果也可在其他系統(tǒng)中展示和應(yīng)用[10]。
3.2 關(guān)系數(shù)據(jù)庫數(shù)據(jù)導入HDFS
由于校園大數(shù)據(jù)平臺中很大一部分數(shù)據(jù)是來源于各個階段開發(fā)的各類信息系統(tǒng),下面介紹一下在本文提出的校園大數(shù)據(jù)平臺架構(gòu)中如何將關(guān)系數(shù)據(jù)庫導入到HDFS文件系統(tǒng)中,以O(shè)racle數(shù)據(jù)庫為例,其他關(guān)系數(shù)據(jù)庫類似。
使用Sqoop將關(guān)系數(shù)據(jù)庫數(shù)據(jù)遷移到HDFS中,首先下載Sqoop壓縮包上傳到Hadoop集群的節(jié)點上,將它解壓縮即可使用,然后將連接Oracle的驅(qū)動包拷貝到Sqoop目錄下的lib目錄中,并配置好Oracle數(shù)據(jù)庫的遠程連接。準備工作完成后,使用如下步驟和命令把關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)導入HDFS中。
(1)設(shè)置Oracle的連接字符串,包括Oracle的主機地址、SID和端口號。
CONNECTURL=jdbc:oracle:thin:@192.168.14.253:1521:ORCL
(2)訪問Oracle數(shù)據(jù)庫的用戶名和密碼。
ORACLENAME=lp ORACLEPASSWORD=123456
(3)設(shè)置需要從Oracle數(shù)據(jù)庫中導入的表名,例如此處導入學生表信息。
oralceTableName=Student
(4)需要從Oracle中導入的學生表的字段名。
columns=studentId,studentName,sex,age,classId,
telephone
(5)將Oracle中的數(shù)據(jù)導入到HDFS中的存放路徑。
hdfsPath=apps/as/hive/$oralceTableName
(6)執(zhí)行sqoop導入邏輯,將Oracle中的數(shù)據(jù)導入到HDFS中。
sqoop import--connect$CONNECTURL--username $ORACLENAME--password$ORACLEPASSWORD --target-dir$hdfsPath--num-mappers 1--table $oralceTableName--columns$columns--fields-terminated-by'\001'
4 原型系統(tǒng)(Protosystem)
為驗證校園大數(shù)據(jù)平臺架構(gòu)的合理可行性,基于Hadoop集群和Spark集群構(gòu)建大數(shù)據(jù)處理平臺,并采用JavaEE平臺的Struts框架和Hibernate框架進行原型系統(tǒng)開發(fā)。下面以原型系統(tǒng)中的畢業(yè)資格審核模塊為例,來驗證平臺架構(gòu)的合理性。
學生在畢業(yè)前一年,通過原型系統(tǒng)的畢業(yè)資格審核模塊進行畢業(yè)資格的提前預審,并以郵件的形式發(fā)送報告給學生,對有科目未通過,或其他影響畢業(yè)的問題的學生進行提前預警,以便讓學生可以好好利用最后一學年查漏補缺,爭取正常畢業(yè)。用戶通過瀏覽器訪問原型系統(tǒng),可按系部、班級進行整班查詢畢業(yè)資格預審,也可具體到某個學生,通過學號或姓名等查詢某學生畢業(yè)資格預審情況,如圖2所示,查詢出來的結(jié)果集里包含學生基本信息、課程成績是否全部通過,若有未通過課程,給出未通過課程名稱;學生考證情況,會給出具體考了哪幾個證書;學生獎懲情況和積點情況,積點若未通過,會給出具體缺多少;還會對學費繳納情況、圖書借閱情況、體育器材借閱情況等進行說明,這些都會影響畢業(yè)證書的領(lǐng)取,這些信息分別來源于高校招生系統(tǒng)、教務(wù)系統(tǒng)、學生管理系統(tǒng)、財務(wù)系統(tǒng)、圖書管理系統(tǒng)等,原來這些信息是分別存在于各個應(yīng)用系統(tǒng)中的,這些應(yīng)用系統(tǒng)之間數(shù)據(jù)冗余,不統(tǒng)一,存在一個個“信息孤島”,不能實現(xiàn)數(shù)據(jù)共享。通過本文設(shè)計的大數(shù)據(jù)平臺架構(gòu),把各個應(yīng)用系統(tǒng)的數(shù)據(jù)都被抽取到了HDFS文件系統(tǒng),然后通過大數(shù)據(jù)分析統(tǒng)一處理,實踐表明,該本文提出的大數(shù)據(jù)平臺架構(gòu)是可行的,也是合理的。
5 結(jié)論(Conclusion)
研究大數(shù)據(jù)技術(shù)Hadoop和Spark在教育信息化領(lǐng)域的應(yīng)用,進一步豐富數(shù)字化校園和智慧校園的技術(shù)體系,提出校園大數(shù)據(jù)平臺架構(gòu),利用大數(shù)據(jù)技術(shù),對校園信息進行綜合的分析整理,更好幫助教師管理學生。在提出的校園大數(shù)據(jù)平臺中采用HDFS完成龐大數(shù)據(jù)的分布式存儲。該平臺基于開放架構(gòu),具備較好的擴展處理能力,能為多種數(shù)據(jù)源提供全面可靠的處理。通過該大數(shù)據(jù)平臺對學生歷史數(shù)據(jù)和實時數(shù)據(jù)進行分析,對學生異常狀態(tài)進行預警,尤其可以對學生提前進行畢業(yè)資格預審,可以促使更多的學生按時畢業(yè)。研究科研數(shù)據(jù),分析學校科研動態(tài)發(fā)展;研究教師數(shù)據(jù),關(guān)注學校教學動態(tài),為教學方針政策的合理制定提供依據(jù)。該平臺能夠充分集成院校不同階段使用的各信息系統(tǒng)。下一步將重點研究大數(shù)據(jù)相關(guān)算法,例如對圖書館的圖書研究推薦算法,讀者可以輕松獲取與本人興趣相關(guān)的推薦圖書等,以及架構(gòu)中數(shù)據(jù)利用過程中的安全問題和隱私保護問題??傊疚奶岢龅男@大數(shù)據(jù)平臺可以加快推進智慧校園的建設(shè)。
參考文獻(References)
[1] 常濤.改進型MapReduce框架的研究與設(shè)計[D].北京:北京郵電大學,2011:19-22.
[2] Koliopoulos A K,Yiapanis P,Tekiner F,et al.A parallel distributed weka framework for big data mining using Spark[J].2015,26(7):9-16.
[3] 閆夢潔,羅軍,劉建英,等.IABS:一個基于Spark的Apriori改進算法[J].計算機應(yīng)用研究,2017,34(8):2274-2277.
[4] Gao Yanjie.Data Processing with Spark[M].Beijing:China Machine Press,2015.
[5] 李濤,劉斌.Spark平臺下的高效Web文本分類系統(tǒng)的研究[J].計算機應(yīng)用與軟件,2016,33(11):33-36.
[6] Landset S,Khoshgoftaar T M,Richter A N,et al.A survey of open source tools for machine learning with big data in the Hadoop ecosystem[J].Journal of Big Data,2015,2(1):24.
[7] 毛國君,胡殿軍,謝松燕.基于分布式數(shù)據(jù)流的大數(shù)據(jù)分類模型和算法[J].計算機學報,2017(1):161-175.
[8] 何清,李寧,羅文娟,等.大數(shù)據(jù)下的機器學習算法綜述[J].模式識別與人工智能,2014,27(4):327-336.
[9] Shan S.Big data classification:problems and challenges in network intrusion prediction with machine learning[J].ACM Sigmetrics Performance Evaluation Review,2014,41(4):70-73.
[10] 潘奇.基于Hadoop技術(shù)的高校學生行為分析系統(tǒng)研究與實現(xiàn)[D].北京:北京郵電大學碩士論文,2014:1-2.
作者簡介:
劉 萍(1982-),女,碩士,講師.研究領(lǐng)域:軟件工程,系統(tǒng)集成,大數(shù)據(jù)分析.