梁烜彰
【關(guān)鍵詞】數(shù)字化校園;大數(shù)據(jù)平臺(tái);Hadoop
【中圖分類號(hào)】TP311 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-0688(2021)08-048-03
0 引言
隨著互聯(lián)網(wǎng)科學(xué)技術(shù)的高速發(fā)展,如今世界已進(jìn)入全面信息化的時(shí)代。數(shù)據(jù)信息遍及我們生活中的每個(gè)角落,已然成為現(xiàn)代生活中一項(xiàng)重要的資源,各大頂尖公司都在競(jìng)相爭(zhēng)奪數(shù)據(jù)資源,建立大數(shù)據(jù)平臺(tái)對(duì)收集到的數(shù)據(jù)進(jìn)行處理分析,從而獲取有價(jià)值的信息,以便在競(jìng)爭(zhēng)中處于有利的地位。
目前,大部分高校都已經(jīng)建設(shè)多種信息化系統(tǒng)進(jìn)行管理,例如教務(wù)管理系統(tǒng)、財(cái)務(wù)管理系統(tǒng)、一卡通管理系統(tǒng)、圖書(shū)管理系統(tǒng)、就業(yè)管理系統(tǒng)、食堂管理系統(tǒng)等,這些系統(tǒng)雖然能完成各自部分的功能管理,但是這些系統(tǒng)都是在獨(dú)立運(yùn)作,它們之間存在信息孤立,沒(méi)有實(shí)現(xiàn)數(shù)據(jù)互通。高校系統(tǒng)管理著成千上萬(wàn)的師生,每年匯集了海量的數(shù)據(jù),這些數(shù)據(jù)結(jié)構(gòu)多樣復(fù)雜,如果不能有效地利用就會(huì)造成資源的浪費(fèi)。在大數(shù)據(jù)時(shí)代背景下,如何高效地利用這些海量數(shù)據(jù)進(jìn)行處理分析是未來(lái)高校信息化管理的一個(gè)挑戰(zhàn)。因此,依托高校信息管理系統(tǒng)建設(shè)一個(gè)大數(shù)據(jù)平臺(tái)具有重要的意義。本文提出一種基于Hadoop大數(shù)據(jù)技術(shù)的數(shù)據(jù)處理方案,對(duì)高校系統(tǒng)中產(chǎn)生的海量數(shù)據(jù)進(jìn)行有效整合及處理,實(shí)現(xiàn)高校各管理系統(tǒng)功能一體化,提供高校師生的數(shù)據(jù)分析,從而提升信息化管理質(zhì)量。
1 Hadoop大數(shù)據(jù)技術(shù)
作為一個(gè)開(kāi)源分布式的系統(tǒng)架構(gòu),Hadoop是專門研發(fā)用于大數(shù)據(jù)處理的工具,能有效地解決并行計(jì)算和分布式存儲(chǔ)。Hadoop的自由可擴(kuò)展性、開(kāi)源性和廉價(jià)低成本,使之成為目前應(yīng)用最廣泛的大數(shù)據(jù)處理平臺(tái),備受研發(fā)人員的青睞。整個(gè)ApacheHadoop平臺(tái)包括Mapreduce、HFDS、Hadoop內(nèi)核及一些相關(guān)工具,其中又包括Hive和HBase等 [1]。
Hadoop能夠讓開(kāi)發(fā)者輕松地搭建分布式計(jì)算平臺(tái)并應(yīng)用于開(kāi)發(fā)數(shù)據(jù)處理相關(guān)的工具。作為分布式集群的框架,Hadoop可以方便地?cái)U(kuò)展到無(wú)數(shù)的節(jié)點(diǎn)中,分配相關(guān)數(shù)據(jù)計(jì)算等任務(wù)到空閑的計(jì)算機(jī)節(jié)點(diǎn)。與其他大數(shù)據(jù)框架相比,Hadoop的BitMap技術(shù)和優(yōu)良的數(shù)據(jù)處理能力,能夠?qū)崿F(xiàn)數(shù)據(jù)節(jié)點(diǎn)間的動(dòng)態(tài)交互通信,這使得Hadoop在數(shù)據(jù)處理方面擁有極高的效率。Hadoop的副本策略在集群中會(huì)默認(rèn)存儲(chǔ)多個(gè)數(shù)據(jù)副本,當(dāng)出現(xiàn)任務(wù)失敗時(shí)能將任務(wù)自動(dòng)重新分配,具有很高的容錯(cuò)性。同時(shí),構(gòu)建Hadoop平臺(tái)只需要廉價(jià)的服務(wù)器便能實(shí)現(xiàn),無(wú)須額外購(gòu)買搭配昂貴的設(shè)備。由于Hadoop的開(kāi)源特性,因此在基于Hadoop的開(kāi)發(fā)項(xiàng)目上能降低許多軟件的開(kāi)發(fā)成本,使開(kāi)發(fā)者們可以放心地依賴它應(yīng)用研發(fā)項(xiàng)目。
1.1 Hadoop的整體框架
Hadoop的整體框架主要由兩個(gè)部分組成構(gòu)成(如圖1所示),一是分布式文件系統(tǒng)HDFS,它在Hadoop中作為最基礎(chǔ)的底層存儲(chǔ)系統(tǒng),是Hadoop的核心組件之一,其主要功能是為收集的數(shù)據(jù)提供分布式存儲(chǔ)。二是分布式計(jì)算框架MapReduce,它構(gòu)建于分布式文件系統(tǒng)之上,擁有大規(guī)模并行計(jì)算的能力,是Hadoop核心主鍵之一,其功能是對(duì)分布式文件系統(tǒng)上的數(shù)據(jù)進(jìn)行并行計(jì)算處理。在Hadoop中,開(kāi)發(fā)者可通過(guò)重寫接口實(shí)現(xiàn)自定義分布式文件系統(tǒng),并在分布式文件系統(tǒng)上通過(guò)MapReduce對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行處理,因此開(kāi)發(fā)者擁有極大的可擴(kuò)展性開(kāi)發(fā)。
1.2 HDFS分布式文件系統(tǒng)
HDFS的架構(gòu)如圖2所示。HDFS主要負(fù)責(zé)維護(hù)Hadoop框架中的分布式文件系統(tǒng),它由一個(gè)主節(jié)點(diǎn)(NameNode)和多從節(jié)點(diǎn)(DataNode)共同組成,也被稱為Master/Slave主從結(jié)構(gòu) [2]。NameNode節(jié)點(diǎn)又被稱作管理節(jié)點(diǎn),作為整個(gè)集群的文件管理者維護(hù)HDFS的正常運(yùn)行,并負(fù)責(zé)文件系統(tǒng)的命名空間和客戶端對(duì)數(shù)據(jù)的訪問(wèn) [3]。一個(gè)集群中存在一個(gè)NameNode作為主節(jié)點(diǎn),還有一個(gè)SecondaryNameNode作為輔助節(jié)點(diǎn)在主節(jié)點(diǎn)旁邊,它負(fù)責(zé)同步檢查點(diǎn)與主節(jié)點(diǎn)之間的數(shù)據(jù)并備份主節(jié)點(diǎn)上的文件系統(tǒng)操作日志和元數(shù)據(jù)。一個(gè)集群中可以擁有多個(gè)DataNode節(jié)點(diǎn),也被稱為數(shù)據(jù)節(jié)點(diǎn),是HDFS重要的組成部分,其功能是用于存放數(shù)據(jù),DataNode節(jié)點(diǎn)與NameNode節(jié)點(diǎn)之間的交互通信是通過(guò)心跳機(jī)制進(jìn)行的。HDSF的核心功能是管理每個(gè)數(shù)據(jù)節(jié)點(diǎn),對(duì)某一組數(shù)據(jù)進(jìn)行有效的加工以達(dá)到維護(hù)系統(tǒng)的目的,對(duì)于每一個(gè)文件的塊的來(lái)源、狀態(tài)數(shù)據(jù)信息和切割情況等都能夠進(jìn)行詳細(xì)的記錄 [4]。
1.3 MapReduce編程架構(gòu)
MapReduce是一種高性能面向大規(guī)模數(shù)據(jù)處理的并行計(jì)算框架,它的編程架構(gòu)如圖3所示。MapReduce在處理數(shù)據(jù)時(shí)的核心思想是Map(映射)和Reduce(歸約),它在做并行數(shù)據(jù)處理計(jì)算任務(wù)時(shí),首先分配任務(wù)到集群的各個(gè)不同節(jié)點(diǎn)上,在Map端會(huì)先將接收到的任務(wù)做分塊處理,接著對(duì)切分成大批量的小任務(wù)單獨(dú)處理,然后在Reduce端整合每個(gè)小任務(wù)的處理結(jié)果,最后經(jīng)過(guò)不斷計(jì)算處理之后輸出最終的結(jié)果。MapReduce框架完善的機(jī)制可以自動(dòng)解決任務(wù)調(diào)度、容錯(cuò)處理、負(fù)載均衡等問(wèn)題,所以開(kāi)發(fā)者不用擔(dān)心在多節(jié)點(diǎn)計(jì)算中涉及的這些問(wèn)題。
2 大數(shù)據(jù)平臺(tái)架構(gòu)設(shè)計(jì)
高校數(shù)字化校園大數(shù)據(jù)平臺(tái)系統(tǒng)架構(gòu)可以分成4個(gè)部分(如圖4所示),第一部分是數(shù)字化校園內(nèi)教務(wù)管理系統(tǒng)、財(cái)務(wù)管理系統(tǒng)、一卡通管理系統(tǒng)、圖書(shū)管理系統(tǒng)、就業(yè)管理系統(tǒng)、食堂管理系統(tǒng)等產(chǎn)生的數(shù)據(jù)源。第二部分是數(shù)據(jù)采集,通過(guò)數(shù)據(jù)采集工具對(duì)數(shù)據(jù)化校園的數(shù)據(jù)源進(jìn)行傳輸和分配。第三部分是數(shù)據(jù)處理,這個(gè)架構(gòu)中對(duì)數(shù)據(jù)的處理可以分為兩個(gè)離線數(shù)據(jù)處理和實(shí)時(shí)數(shù)據(jù)處理兩個(gè)部分。第四部分是數(shù)據(jù)展示,實(shí)時(shí)數(shù)據(jù)處理模塊輸出結(jié)果通過(guò)網(wǎng)頁(yè)客戶端或者App端展示數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài),離線數(shù)據(jù)處理模塊輸出數(shù)據(jù)分析模型,提供師生個(gè)體或者群體行為的數(shù)據(jù)分析和行為預(yù)測(cè)。
基于Hadoop的大數(shù)據(jù)框架如圖5所示,在這個(gè)架構(gòu)中,離線數(shù)據(jù)處理部分是由Hadoop集群完成的,實(shí)時(shí)數(shù)據(jù)處理部分是由Storm實(shí)時(shí)數(shù)據(jù)處理框架完成的。數(shù)字化校園數(shù)據(jù)源的采集通過(guò)Flume工具完成,F(xiàn)lume是由Cloudera提供的一種高可靠、高可用的分布式日志收集系統(tǒng),它支持定制數(shù)據(jù)收集和傳輸?shù)姆绞?。同時(shí),F(xiàn)lume可以對(duì)采集到的數(shù)據(jù)進(jìn)行預(yù)處理,并將數(shù)據(jù)傳輸至指定地點(diǎn),在采集數(shù)據(jù)時(shí)可以依據(jù)不同的數(shù)據(jù)處理方式對(duì)不同的數(shù)據(jù)源進(jìn)行采集處理。
Hive是基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù)分析工具,它可以根據(jù)SQL語(yǔ)句在MapReduce實(shí)現(xiàn)統(tǒng)計(jì)任務(wù)。Impala是應(yīng)用于處理在Hadoop集群中存儲(chǔ)的海量數(shù)據(jù)的MPP(大規(guī)模并行處理)SQL查詢引擎,它實(shí)現(xiàn)了一個(gè)基于守護(hù)進(jìn)程的分布式架構(gòu),降低了MapReduce方面的延遲,Impala處理任務(wù)的速度比Hive更快,可以通過(guò)Impala對(duì)海量數(shù)據(jù)處理實(shí)現(xiàn)一些復(fù)雜查詢的需求,同時(shí)Impala的查詢需要在Hive端導(dǎo)入完成。
Storm是一個(gè)類似Hadoop的分布式實(shí)時(shí)數(shù)據(jù)處理框架,能夠很好地完成實(shí)時(shí)數(shù)據(jù)的處理并實(shí)現(xiàn)數(shù)據(jù)可視化。Kafka是一種高吞吐量的分布式消息處理平臺(tái),能夠支持每秒數(shù)百萬(wàn)消息的吞吐量,完全滿足系統(tǒng)對(duì)數(shù)據(jù)傳輸?shù)囊蟆?/p>
Sqoop是用于Hadoop或者Hive與關(guān)系型數(shù)據(jù)庫(kù)間數(shù)據(jù)傳輸?shù)墓ぞ?,可以將處理好的?shù)據(jù)轉(zhuǎn)移至數(shù)據(jù)庫(kù)中。Mysql數(shù)據(jù)庫(kù)作為最后數(shù)據(jù)處理結(jié)果的存儲(chǔ)倉(cāng)庫(kù),網(wǎng)頁(yè)客戶端或者App端可以從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)展示出來(lái)。
3 大數(shù)據(jù)平臺(tái)功能實(shí)現(xiàn)
在服務(wù)器上搭建好Hadoop和Storm的環(huán)境,安裝Kafka、Flume、Mysql等相關(guān)軟件,并配置好軟件相關(guān)的配置文件。每臺(tái)機(jī)器上都有一個(gè)Flume agent運(yùn)行,通過(guò)Avro的方式進(jìn)行數(shù)據(jù)的傳輸,其中一個(gè)Flume agent由多個(gè)Sinks和Sources組成,而這兩者連接是以Channel作為通道的。
基于Hadoop的大數(shù)據(jù)框架數(shù)據(jù)處理流程如圖6所示,包括數(shù)據(jù)采集模塊、離線數(shù)據(jù)處理模塊、實(shí)時(shí)數(shù)據(jù)處理模塊、數(shù)據(jù)存儲(chǔ)分析模塊、數(shù)據(jù)展示模塊。
數(shù)據(jù)采集模塊,利用分布式日志采集系統(tǒng)Flume從數(shù)字化校園系統(tǒng)采集離線數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù),Source從數(shù)字化校園系統(tǒng)采集數(shù)據(jù)后傳輸?shù)紺hannel,Channel收集的數(shù)據(jù)通過(guò)Sink輸出。
離線數(shù)據(jù)處理模塊,采集的離線數(shù)據(jù)經(jīng)過(guò)SinK輸出上傳到HDFS分布式文件系統(tǒng)上,在Hadoop集群中通過(guò)Map-Reduce計(jì)算框架對(duì)存儲(chǔ)在HDFS分布式系統(tǒng)上的離線數(shù)據(jù)進(jìn)行預(yù)處理,預(yù)處理之后的離線數(shù)據(jù)傳輸至Hive數(shù)據(jù)倉(cāng)庫(kù)中存儲(chǔ)。
實(shí)時(shí)數(shù)據(jù)處理模塊,采集的實(shí)時(shí)數(shù)據(jù)經(jīng)過(guò)SinK輸出上傳到Kafka上,Storm實(shí)時(shí)計(jì)算框架從Kafa中提取出實(shí)時(shí)數(shù)據(jù)并進(jìn)行預(yù)處理,預(yù)處理之后的數(shù)據(jù)傳送到Mysql數(shù)據(jù)庫(kù)中進(jìn)行分類存儲(chǔ)。
數(shù)據(jù)的預(yù)處理主要包括數(shù)據(jù)清洗、格式整理、濾除臟數(shù)據(jù)等過(guò)程。在Eclipse軟件上,通過(guò)Java編程語(yǔ)言編寫相關(guān)數(shù)據(jù)預(yù)處理程序,完成后打包放到Linux系統(tǒng)中運(yùn)行。
數(shù)據(jù)存儲(chǔ)分析模塊,Hive數(shù)據(jù)倉(cāng)庫(kù)中可以提供實(shí)時(shí)查詢功能,為更好地管理調(diào)度海量任務(wù)單元,可以在項(xiàng)目中增添一個(gè)Ooize任務(wù)調(diào)度模塊,在Hive數(shù)據(jù)倉(cāng)庫(kù)中建立相應(yīng)的模型表以滿足離線數(shù)據(jù)處理的需求,同時(shí)利用Impala工具實(shí)現(xiàn)對(duì)Hive中的數(shù)據(jù)實(shí)現(xiàn)復(fù)雜查詢的功能。
數(shù)據(jù)展示模塊,通過(guò)Sqoop工具將Hive數(shù)據(jù)倉(cāng)庫(kù)中處理完的數(shù)據(jù)結(jié)構(gòu)傳送至Mysql數(shù)據(jù)庫(kù)中,經(jīng)過(guò)處理之后的離線數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)都會(huì)傳送至Mysql數(shù)據(jù)庫(kù)中進(jìn)行分類存儲(chǔ)。網(wǎng)頁(yè)客戶端或者App端訪問(wèn)Mysql數(shù)據(jù)庫(kù)中提取數(shù)據(jù)通過(guò)界面展示出來(lái),展示的實(shí)時(shí)數(shù)據(jù)可以提供師生查詢個(gè)人或群體在數(shù)字化校園上最新的數(shù)據(jù)動(dòng)態(tài),展示的離線數(shù)據(jù)則為師生提供行為分析預(yù)警、學(xué)期考核評(píng)定、就業(yè)分析預(yù)測(cè)等信息。
4 結(jié)語(yǔ)
在當(dāng)今全球大數(shù)據(jù)時(shí)代的背景下,數(shù)據(jù)已經(jīng)成為不可或缺的寶貴資源,如果能利用好這些資源就能給我們帶來(lái)巨大的好處。高校推進(jìn)大數(shù)據(jù)技術(shù)的發(fā)展,從海量數(shù)據(jù)資源中挖掘出有價(jià)值信息,不僅能改善師生的學(xué)習(xí)和生活服務(wù),提升部門間協(xié)同工作,實(shí)現(xiàn)數(shù)據(jù)資源有效整合和共享,也為高校未來(lái)的發(fā)展提供更合理的規(guī)劃和定位。本文根據(jù)高校信息化管理現(xiàn)狀,設(shè)計(jì)了基于Hadoop的大數(shù)據(jù)處理框架,研究了大數(shù)據(jù)平臺(tái)在高校數(shù)字化校園的應(yīng)用,對(duì)涉及相關(guān)的技術(shù)功能和實(shí)現(xiàn)流程做了介紹。希望通過(guò)大數(shù)據(jù)技術(shù)充分挖掘整合數(shù)據(jù)資源,為高校師生進(jìn)一步提升信息化管理服務(wù)質(zhì)量,為高校未來(lái)的發(fā)展變革提供方向。
參 考 文 獻(xiàn)
[1]陳娜姍.基于Hadoop的用戶行為分析方法的應(yīng)用研究[D].南京:南京郵電大學(xué),2016.
[2]Dean Jeffery,Ghemawat Sanjay.Map Redece:si-
mplified data processing on large clusters[J].Communications of the ACM,2008,51(1):107-113.
[3]Leiqing Shi,F(xiàn)ei Gao,Zhengping Jin.Novel design of the model of distributed namenode in HDFS[C].IEEE International Conference on Cloud Computing and Intelligence Systems,2012:310-330.
[4]李莉.基于云計(jì)算平臺(tái)Hadoop的并行k-means聚類算法設(shè)計(jì)研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2017(12):46-47.