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