賈海天 陳晨
摘 要:學校信息化建設已經(jīng)經(jīng)歷了10多個年頭,現(xiàn)有系統(tǒng)達到幾十個,各個系統(tǒng)獨立運行;同時安防監(jiān)控,在線課程資源,上網(wǎng)行為非結(jié)構(gòu)化數(shù)據(jù)資源在智慧校園建設中的作用已經(jīng)體現(xiàn)。文章根據(jù)學?,F(xiàn)狀提出適合高校信息化建設的數(shù)據(jù)模型。主要通過Hadoop分布式系統(tǒng)架構(gòu)解決結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)之間的融合,為數(shù)據(jù)分析和決策提供依據(jù)。
關鍵詞:Hadoop;非結(jié)構(gòu)數(shù)據(jù);數(shù)據(jù)標準;Spark
中圖分類號:TP3 文獻標志碼:A 文章編號:2095-2945(2019)20-0162-02
Abstract: School information construction has been conducted for more than 10 years, the existing system has reached dozens, and each system runs independently; at the same time, security monitoring, online curriculum resources, and the role of online behavior unstructured data resources have been reflected in the construction of the intelligent campus. According to the present situation of the school, this paper puts forward a data model which is suitable for the information construction of colleges and universities. The main purpose of this paper is to solve the fusion between structured data and unstructured data through Hadoop distributed system architecture, so as to provide a basis for data analysis and decision-making.
Keywords: Hadoop; unstructured data; data standard; Spark
1 概述
智慧校園建設中大數(shù)據(jù)構(gòu)建已經(jīng)成為重要的發(fā)展方向,為發(fā)現(xiàn)數(shù)據(jù)價值而開展數(shù)據(jù)治理成為各方的關注問題,本文通過Hadoop及其生態(tài)圈建設構(gòu)建模型,提出基于Hadoop分布式系統(tǒng)基礎架構(gòu)思想的解決辦法,主要涉及數(shù)據(jù)抽取與清洗、Hadoop數(shù)據(jù)存儲與分析、數(shù)據(jù)標準構(gòu)建和智能分析與可視化,大數(shù)據(jù)構(gòu)建在智慧校園建設中將起到關鍵性的作用。本文所有實現(xiàn)工具均采用開源技術完成。
2 Hadoop及其生態(tài)圈介紹
大數(shù)據(jù)建設目前采用的主流技術為Hadoop技術框架,Hadoop技術框架下可以完成數(shù)據(jù)倉庫構(gòu)建。數(shù)據(jù)倉庫包括操作性系統(tǒng)和數(shù)據(jù)倉庫系統(tǒng)兩部分。操作性系統(tǒng)由各個形式的業(yè)務數(shù)據(jù)組成,主要包括關系數(shù)據(jù)庫、TXT或CSV文件、外部系統(tǒng)數(shù)據(jù)。這些數(shù)據(jù)通過抽取、轉(zhuǎn)換和裝載進入數(shù)據(jù)倉庫系統(tǒng)。
2.1 大數(shù)據(jù)處理架Hadoop
Hadoop是Apache開源軟件分布式計算平臺, 生態(tài)系統(tǒng)包括:Flume,Hive,Hbase,Pig,Sqoop,Spark等。其中,Hive用于數(shù)據(jù)倉庫,通過HQL語言查詢 HDFS上的數(shù)據(jù)。Hbase是Key/Value架構(gòu),運行于HDFS平臺之上。其生態(tài)圈較為廣泛的應用完全可以支撐大數(shù)據(jù)平臺運行。
2.2 HDFS分布式文件系統(tǒng)
HDFS分布式存儲系統(tǒng)(Hadoop Distributed File System, HDFS),采用主/從架構(gòu)設計,HDFS主節(jié)點和數(shù)據(jù)節(jié)點數(shù)據(jù)處理過程如下:(1)Client端發(fā)送添加文件到HDFS的請求到NameNode;(2)NameNode告訴Client端如何分發(fā)數(shù)據(jù)塊以及分發(fā)的位置;(3)Client端把數(shù)據(jù)分塊(block),然后把這些塊分發(fā)到DataNode中;(4)DataNode在NameNode管理下根據(jù)一定的算法復制數(shù)據(jù)塊,保持數(shù)據(jù)冗余。
2.3 Spark并行計算框架
Spark并行計算框架與MapReduce基于文件并行計算框架不同,是基于內(nèi)存計算的并行處理架構(gòu),Spark是MapReduce的一種替代方案,將執(zhí)行模型抽象為有向無環(huán)圖執(zhí)行計劃,將中間輸出結(jié)果存儲在內(nèi)存中。兼容HDFS和Hive等技術,Sprak采用Scala語言編寫,代碼簡潔高效,具有先進的架構(gòu),建立在分布式內(nèi)存抽象RDD之上,可以處理不同的大數(shù)據(jù)應用場景;基于內(nèi)存的運行機制和基于硬盤文件的運行機制在緩存處理上與MapReduce得到了極大的提升;Spark提供了多語言支持,支持(Scala,Java,Python),提升其易用性。
3 大數(shù)據(jù)環(huán)境下智慧校園建設
智慧校園建設過程中數(shù)據(jù)抽取和清洗主要采用Kettle或者Sqoop完成,數(shù)據(jù)倉庫采用Hive和Hbase,數(shù)據(jù)標準根據(jù)《教育信息化教育部標準》構(gòu)建Mysql數(shù)據(jù)庫,通過Davinci完成智能分析和可視化展示。由圖1可以知各部分組成關系。
3.1 數(shù)據(jù)抽取與清洗
智慧校園建設過程中數(shù)據(jù)抽取主要實現(xiàn)對現(xiàn)有系統(tǒng)數(shù)據(jù)的數(shù)據(jù)采集工作,采集工具采用Kettle工具完成,采集到的數(shù)據(jù)進入原始庫。原始庫數(shù)據(jù)包括結(jié)構(gòu)化數(shù)據(jù)庫Mysql和非結(jié)構(gòu)化數(shù)據(jù)庫Hive和Hbase。Hive和Hbase都是基于HDFS分布式文件系統(tǒng)作為基礎完成,可以對接非結(jié)構(gòu)化數(shù)據(jù)。原始庫包括各種結(jié)構(gòu)化數(shù)據(jù)應用系統(tǒng)和非結(jié)構(gòu)化的應用系統(tǒng)(上網(wǎng)行為和考勤視頻)對接的數(shù)據(jù)。數(shù)據(jù)采集以后根據(jù)數(shù)據(jù)標準定義的數(shù)據(jù)元進行數(shù)據(jù)清洗工作,清洗工作主要包括:(1)預處理階段;(2)缺失值清洗;(3)格式內(nèi)容清洗;(4)邏輯錯誤清洗;(5)非需求結(jié)構(gòu)清洗;(6)關聯(lián)性驗證等。
3.2 數(shù)據(jù)標準
數(shù)據(jù)標準作為數(shù)據(jù)中心的重要組成部分,主要的數(shù)據(jù)標準包括中華人民共和國教育行業(yè)標準,JY/T 1001-2012, JY/T 1002-2012,JY/T 1003-2012、JY/T 1004-2012、JY/T 1005-2012,JY/T 1006-2012,JY/T 1007-2012這些構(gòu)成了教育信息化的標準。這些數(shù)據(jù)標準經(jīng)過整理,從文檔轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu),完成元數(shù)據(jù)的定義。數(shù)據(jù)標準主要由教育管理基礎代碼和教育管理信息組成,數(shù)據(jù)標準建設是個系統(tǒng)工程,數(shù)據(jù)元的定義可以通過學校需求動態(tài)建設主題數(shù)據(jù)表,具體實現(xiàn)包括2個存儲過程完成:(1)構(gòu)造標準的DDL數(shù)據(jù)語言;(2)傳遞標準的SQL創(chuàng)建數(shù)據(jù)表。
3.3 智能分析與可視化
在數(shù)據(jù)標準構(gòu)建完成以后進入數(shù)據(jù)智能分析和可視化工作,可視化的數(shù)據(jù)主要來自2個方面,一方面是結(jié)構(gòu)化標準數(shù)據(jù)展示,對接的數(shù)據(jù)源是各種結(jié)構(gòu)化數(shù)據(jù)庫,另一方面是非結(jié)構(gòu)化數(shù)據(jù)展示,可以對接Hive數(shù)據(jù)倉庫??梢暬脚_實現(xiàn)采用了開源的DVAAS(Data Visualization as a Service)平臺解決方案。具體實現(xiàn)過程是:定義數(shù)據(jù)源->數(shù)據(jù)視圖構(gòu)建->數(shù)據(jù)可視化組件綁定->交互能力設計->集成能力設計。
4 關鍵技術及其實現(xiàn)
大數(shù)據(jù)環(huán)境下智慧校園建設包括Hadoop生態(tài)圈的各個技術應用,主要有分布式系統(tǒng)基礎架構(gòu)Hadoop技術、數(shù)據(jù)交換技術-Kettle實現(xiàn)、數(shù)據(jù)總線技術-OpenESB、Hadoop及其生態(tài)圈技術-Hive\Hbase\Sqoop\Oozie、Spark快速通用的計算引擎、Hue\Zeppelin數(shù)據(jù)可視化技術等。這里主要介紹MapReduce和Spark 2種技術及其實現(xiàn)過程。
4.1 MapReduce編程模型
MapReduce編程模型在Intellij IDE開發(fā)具體搭建過程包括:JDK安裝->maven安裝->IDE環(huán)境settings.xml配置獲取代碼倉jar包-> IntelliJ IDEA配置maven-> maven WEB項目->配置依賴 jar 包->編寫代碼完成開發(fā)->打包運行。
4.2 Spark集群計算平臺
Spark是專為大規(guī)模處理而設計的快速通用計算引擎。具有高可伸縮性、高容錯和內(nèi)存計算的特性,屬于BDAS生態(tài)體系。Spark執(zhí)行過程:(1)Driver與Master建立連接并申請資源;(2)Master進行資源調(diào)度;(3)Master與Worker進行RPC通信,榮Worker啟動Executor;(4)Worker啟動Executer;(5)Executer與Driver進行通信;(6)RDD(Resilibuted Distributed DataSet)彈性分布式數(shù)據(jù)集觸發(fā)到Action后,根據(jù)這個RDD從后往前推斷依賴關系,遇到shuffle就切分;(7)DAGScheduler切分完Stage后,先提交前面的Stage,執(zhí)行完后在提交后面的Stage,Stage會產(chǎn)出Task,一個Stage會產(chǎn)生很多業(yè)務邏輯相同的Task,然后將以TaskSet的形式傳遞給TaskScheduler,TaskScheduler將Task序列化,根據(jù)資源情況,發(fā)送給Executor。Intellij IDE開發(fā)具體搭建過程包括:JDK安裝并配置->Scala安裝并配置->Maven安裝并配置->Intellij IDEA配置scala Plugin->配置Scala SDK->新建maven項目->pom.xml導入spark依賴->編寫sprak代碼->打包運行。
5 結(jié)束語
大數(shù)據(jù)主要是基于Hadoop分布式的應用高校信息化結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)進行有效的存儲、管理與運算。本文充分利用Hadoop及其生態(tài)圈優(yōu)勢,根據(jù)高校信息化需求設計和部署,實現(xiàn)一套基于大數(shù)據(jù)Hadoop和Spark結(jié)合的高校信息化平臺。該平臺具有良好的對于大量異構(gòu)數(shù)據(jù)的采集、處理、分析和展示能力。為實現(xiàn)教職工和學生人員畫像提供了重要的技術支撐和實現(xiàn)手段。
參考文獻:
[1]蘇秋月,陳興蜀,羅永剛.大數(shù)據(jù)環(huán)境下多源異構(gòu)數(shù)據(jù)的訪問控制模型[J].網(wǎng)絡與信息安全學報,2019(01):78-86.
[2]趙亞楠,李朝奎,肖克炎,等.基于Hadoop的地質(zhì)礦產(chǎn)大數(shù)據(jù)分布式存儲方法[J].地質(zhì)通報,2019(Z1):462-470.
[3]陳中,范開勇,饒宏博.基于Hadoop分布式交通大數(shù)據(jù)存儲分析平臺設計[J].電腦編程技巧與維護,2018(12):111-113.