?

基于Hadoop與Spark的高校校園大數據平臺研究

2018-08-15 10:01劉萍
軟件工程 2018年5期
關鍵詞:大數據

劉萍

摘 要:對校園大數據分析是校園信息化發展的新思路。Hadoop是Apache基金會開發的分布式系統基礎架構,它是集分布式計算、存儲和管理為一體的生態系統。目前流行的Spark框架是與Hadoop生態系統中的MapReduce類似的一個分布式計算平臺,Spark比MapReduce的速度更快且提供的功能更豐富。本文以數據采集、數據存儲、數據分析、數據展現為主線,結合大數據領域最流行的Hadoop框架與Spark框架提出了高校校園大數據平臺架構,詳細闡述了架構各層次的具體功能,并對架構中關系數據庫數據的采集存儲進行了詳細介紹,最后設計校園大數據分析原型系統來驗證架構的可行性。

關鍵詞:大數據;Hadoop;Spark;校園大數據平臺

中圖分類號: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)

隨著云計算、物聯網、WEB搜索、電子商務、個性化信息服務和社交網絡的高速發展,產生了大量的數據,其中蘊含的巨大價值成為大數據分析的強大動力。大數據技術也推動了高校校園信息化建設由數字化校園逐漸向智慧化校園轉變,在持續建設過程中,校園各個階段建設了一系列上層應用系統,例如學生管理系統、教務系統、科研系統、招生系統、就業系統、財務系統、人事系統、圖書管理系統、后勤管理系統和校園一卡通等,積累的校園數據也在迅猛增加,已初步形成校園大數據環境。搭建大數據平臺,對海量校園數據進行分析,集成各個時期開發的各種信息系統中的結構化數據,并對校園網頁等非結構化數據,以及實時的流數據進行采集分析,實現校園中信息的互聯互通,并對師生進行個性化服務,為學生學業提供預警,如提前一年畢業資格審核,發送審核報告給學生,對學校教師和科研數據進行分析,為學校管理者制定教學管理方針提供可靠的數據依據,有著重要的意義。

2 Hadoop與Spark介紹(Hadoop and Spark

introduction)

目前以Hadoop為核心的大數據解決方案占大數據市場95%以上的份額。Hadoop是一個集分布式計算、存儲和管理為一體的生態系統,它為大規模并行數據處理算法提供運行環境。Hadoop生態系統的核心是分布式文件系統(Hadoop Distributed File System,簡稱HDFS)和MapReduce框架,HDFS為海量數據提供了高容錯性和高吞吐量的數據存儲,MapReduce框架為海量數據提供并行計算[1]。

Spark是專為大規模數據處理而設計的快速通用的內存計算框架。Spark可以認為是MapReduce的替代方案。Spark中數據被高度抽象且存儲在彈性分布式數據集(Resilient Distributed Dataset,簡稱RDD)中。它將數據加載到節點內存中,然后在內存中完成計算。Spark有許多內置操作,可以將一個RDD轉換為另一個RDD,RDD的持久化操作,可以將它緩存在工作節點的內存中,這樣中間結果可以保存在內存,從而不再需要讀寫HDFS。后續重用數據時,直接從內存讀取。它能夠快速訪問數據,有效提高了迭代執行的時間效率[2]。而MapReduce在計算過程中要將中間結果寫入HDFS,這樣就需要大量的磁盤I/O操作。

Hadoop的容錯方式與Spark很不一樣,Hadoop通過復制備份多份數據進行容錯。而Spark無需備份數據,RDD為Spark提供了良好的容錯性能,Spark記錄RDD上執行的一系列操作,構建一個有向非循環DAG圖,若數據出錯或丟失,就依據DAG追溯重算[3]。Spark比MapReduce有諸多的優勢[4],特別適用于批處理、迭代計算(如機器學習、圖計算等)、交互式處理(如數據挖掘)和流式處理(如點擊日志分析)等[5]。

Spark僅僅是計算框架,它的生態系統并沒有提供資源管理系統,因此需要使用Hadoop YARN,為上層應用提供統一資源管理和調度,它為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處[6]。Spark本身也并沒有提供分布式文件系統,Spark的分析大多依賴Hadoop的分布式文件系統HDFS,它可兼容HDFS和Hive等分布式存儲層,可融入Hadoop生態系統[7]。因此下文結合Hadoop與Spark構建高校校園大數據平臺。

3 基于Hadoop與Spark的校園大數據平臺架構

(Campus big data platform architecture based on

Hadoop and Spark)

對學校各階段開發使用的應用系統中的結構化數據進行收集存儲,對校園內海量的半結構化和非結構化數據也進行統一管理和存儲,能夠實現學生、教師、科研、招生、就業、財務、人事、圖書、后勤、一卡通等信息的統一采集、存儲、處理、分析。研究科研數據,分析最近幾年學院的科研動態,對科研發展方向進行預測;研究教師數據,及時關注學校的教學動態,為學校教育教學方針政策的制定提供數據依據,通過關聯規則分析教務系統中教師的教學工作量與科研系統中教師的科研進展之間的關系;研究學生數據,分析學生的學習狀況、食宿消費、圖書借閱等行為,對學生畢業資格提前進行審核,對可能無法正常畢業的學生進行預警。對校園一卡通的消費記錄進行分析,得出學生的消費水平和消費習慣,為學院助學金政策的制定和實施提供有效的數據支撐[8]。

下文結合伯克利APM實驗室打造的Spark生態圈(BDAS),因其是在算法(Algorithms)、機器(Machines)和人(People)之間通過大規模集成來展現大數據應用的一個平臺。該生態圈已涉及機器學習、數據挖掘、信息檢索、數據庫、自然語言處理和語音識別等領域。但該生態圈并沒有提供分布式文件系統,因此Spark的分析可借助與Hadoop的分布式文件系統HDFS;Spark還可以使用Hadoop生態系統中的Yarn進行集群資源管理和調度[9]。因此結合Hadoop和Spark技術,提出了基于Hadoop與Spark的校園大數據平臺架構,如圖1所示。

3.1 校園大數據平臺架構分析

針對校園大數據平臺架構的各層次功能實現給出如下闡釋:

數據源該層包括結構化數據、非結構化數據和實時流數據,結構化數據主要包括高校校園信息化建設過程中的各應用系統中的數據,如學生管理系統、教務系統、科研系統、招生系統、就業系統、財務系統、人事系統、圖書管理系統、后勤管理系統、資產管理和校園一卡通等;非結構化數據一般包括網頁、微博、微信等;實時流數據主要包括監控、門禁等。

大數據采集與存儲,該層實現從數據源中抽取數據到HDFS中進行數據分析。數據采集中采用Sqoop將關系數據庫,如Oracle、MySQL等中的數據導入Hadoop的HDFS或HBase中,當然也可將HDFS的數據導出到關系數據庫中。Sqoop通過Hadoop的MapReduce導入導出,因此整個平臺擁有很高的并行性,以及良好的容錯性。在HDFS上儲存時,文件會分成64MB為一單位的數據集合,通過冗余鏡像的方式在計算機集群中進行分布式儲存。對于結構化明顯的數據可以進行集中儲存,對于結構化不明顯的數據以文件和目錄方式進行分布式儲存。對于非結構化數據和流數據通過專業的工具,如網絡爬蟲等,收集教師、學生的數據,如教學過程、教育管理過程產生的視頻、文檔、PPT、教案,學生的作業、試卷等信息,以及物聯網產生的信息如監控、門禁信息等,這其中包含了大量的文件、照片、視頻等數據。

大數據分析,該層使用內存計算框架Spark,Spark提供了大量的庫,包括Spark SQL、Spark MLlib、Spark GraphX、Spark Streaming、DataFrames等。本平臺將無縫組合使用這些庫。使用Spark SQL讀取HDFS,并進行分布式數據查詢操作,使用Spark Streaming將流式數據轉換成RDD,使用Spark GraphX解析運行圖計算,使用Spark MLlib設計和實現機器學習算法。運用它協同實現校園大數據的分類、聚類、關聯規則等數據挖掘算法。部分使用MapReduce進行離線分析。

數據應用展示,該層為用戶提供個性化服務定制功能,可以為用戶進行信息推送,用戶可以查詢分析結果,可以展示科研數據分析、學生數據分析、教師數據分析,以及學生畢業資格審核等。通過建立校園大數據平臺得到有價值的信息并以可視化方式,例如通過門戶網站、移動APP等展現給用戶,并為學生提供學習情況和消費情況分析、為老師提供教科研分析等,分析結果以曲線、二維圖像或文件報告等方式展現。大數據分析結果也可在其他系統中展示和應用[10]。

3.2 關系數據庫數據導入HDFS

由于校園大數據平臺中很大一部分數據是來源于各個階段開發的各類信息系統,下面介紹一下在本文提出的校園大數據平臺架構中如何將關系數據庫導入到HDFS文件系統中,以Oracle數據庫為例,其他關系數據庫類似。

使用Sqoop將關系數據庫數據遷移到HDFS中,首先下載Sqoop壓縮包上傳到Hadoop集群的節點上,將它解壓縮即可使用,然后將連接Oracle的驅動包拷貝到Sqoop目錄下的lib目錄中,并配置好Oracle數據庫的遠程連接。準備工作完成后,使用如下步驟和命令把關系型數據庫中數據導入HDFS中。

(1)設置Oracle的連接字符串,包括Oracle的主機地址、SID和端口號。

CONNECTURL=jdbc:oracle:thin:@192.168.14.253:1521:ORCL

(2)訪問Oracle數據庫的用戶名和密碼。

ORACLENAME=lp ORACLEPASSWORD=123456

(3)設置需要從Oracle數據庫中導入的表名,例如此處導入學生表信息。

oralceTableName=Student

(4)需要從Oracle中導入的學生表的字段名。

columns=studentId,studentName,sex,age,classId,

telephone

(5)將Oracle中的數據導入到HDFS中的存放路徑。

hdfsPath=apps/as/hive/$oralceTableName

(6)執行sqoop導入邏輯,將Oracle中的數據導入到HDFS中。

sqoop import--connect$CONNECTURL--username $ORACLENAME--password$ORACLEPASSWORD --target-dir$hdfsPath--num-mappers 1--table $oralceTableName--columns$columns--fields-terminated-by'\001'

4 原型系統(Protosystem)

為驗證校園大數據平臺架構的合理可行性,基于Hadoop集群和Spark集群構建大數據處理平臺,并采用JavaEE平臺的Struts框架和Hibernate框架進行原型系統開發。下面以原型系統中的畢業資格審核模塊為例,來驗證平臺架構的合理性。

學生在畢業前一年,通過原型系統的畢業資格審核模塊進行畢業資格的提前預審,并以郵件的形式發送報告給學生,對有科目未通過,或其他影響畢業的問題的學生進行提前預警,以便讓學生可以好好利用最后一學年查漏補缺,爭取正常畢業。用戶通過瀏覽器訪問原型系統,可按系部、班級進行整班查詢畢業資格預審,也可具體到某個學生,通過學號或姓名等查詢某學生畢業資格預審情況,如圖2所示,查詢出來的結果集里包含學生基本信息、課程成績是否全部通過,若有未通過課程,給出未通過課程名稱;學生考證情況,會給出具體考了哪幾個證書;學生獎懲情況和積點情況,積點若未通過,會給出具體缺多少;還會對學費繳納情況、圖書借閱情況、體育器材借閱情況等進行說明,這些都會影響畢業證書的領取,這些信息分別來源于高校招生系統、教務系統、學生管理系統、財務系統、圖書管理系統等,原來這些信息是分別存在于各個應用系統中的,這些應用系統之間數據冗余,不統一,存在一個個“信息孤島”,不能實現數據共享。通過本文設計的大數據平臺架構,把各個應用系統的數據都被抽取到了HDFS文件系統,然后通過大數據分析統一處理,實踐表明,該本文提出的大數據平臺架構是可行的,也是合理的。

5 結論(Conclusion)

研究大數據技術Hadoop和Spark在教育信息化領域的應用,進一步豐富數字化校園和智慧校園的技術體系,提出校園大數據平臺架構,利用大數據技術,對校園信息進行綜合的分析整理,更好幫助教師管理學生。在提出的校園大數據平臺中采用HDFS完成龐大數據的分布式存儲。該平臺基于開放架構,具備較好的擴展處理能力,能為多種數據源提供全面可靠的處理。通過該大數據平臺對學生歷史數據和實時數據進行分析,對學生異常狀態進行預警,尤其可以對學生提前進行畢業資格預審,可以促使更多的學生按時畢業。研究科研數據,分析學??蒲袆討B發展;研究教師數據,關注學校教學動態,為教學方針政策的合理制定提供依據。該平臺能夠充分集成院校不同階段使用的各信息系統。下一步將重點研究大數據相關算法,例如對圖書館的圖書研究推薦算法,讀者可以輕松獲取與本人興趣相關的推薦圖書等,以及架構中數據利用過程中的安全問題和隱私保護問題??傊?,本文提出的校園大數據平臺可以加快推進智慧校園的建設。

參考文獻(References)

[1] 常濤.改進型MapReduce框架的研究與設計[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].計算機應用研究,2017,34(8):2274-2277.

[4] Gao Yanjie.Data Processing with Spark[M].Beijing:China Machine Press,2015.

[5] 李濤,劉斌.Spark平臺下的高效Web文本分類系統的研究[J].計算機應用與軟件,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] 毛國君,胡殿軍,謝松燕.基于分布式數據流的大數據分類模型和算法[J].計算機學報,2017(1):161-175.

[8] 何清,李寧,羅文娟,等.大數據下的機器學習算法綜述[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技術的高校學生行為分析系統研究與實現[D].北京:北京郵電大學碩士論文,2014:1-2.

作者簡介:

劉 萍(1982-),女,碩士,講師.研究領域:軟件工程,系統集成,大數據分析.

猜你喜歡
大數據
大數據環境下基于移動客戶端的傳統媒體轉型思路
基于大數據背景下的智慧城市建設研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合