(漯河醫(yī)學(xué)高等??茖W(xué)校,河南 漯河 462002)
大數(shù)據(jù)技術(shù)應(yīng)用已有許多成功的案例,如何與校園可視化相結(jié)合,綜合多種定位技術(shù),提供準(zhǔn)確的室內(nèi)和室外精確位置,以及學(xué)生活動內(nèi)容,并通過三維可視空間直觀地展示數(shù)據(jù)挖掘分析結(jié)果是本文的創(chuàng)新之處。
在對學(xué)生在校軌跡信息進(jìn)行大數(shù)據(jù)分析的基礎(chǔ)上,發(fā)現(xiàn)了學(xué)生的在?;顒右?guī)律,以及在學(xué)習(xí)過程中的學(xué)習(xí)軌跡與成績、健康、安全等規(guī)律,不同時段學(xué)生聚集的空間規(guī)律等,作為促進(jìn)學(xué)校教學(xué)輔助管理水平提高,后續(xù)管理水平提高的客觀數(shù)據(jù)依據(jù)。
整體設(shè)計應(yīng)根據(jù)實際情況和信息技術(shù)發(fā)展的現(xiàn)狀,遵循以下技術(shù)原則:
1.根據(jù)系統(tǒng)建設(shè)項目中制定的相關(guān)規(guī)范,細(xì)化應(yīng)用系統(tǒng)設(shè)計,采用成熟的平臺產(chǎn)品,加強(qiáng)和改進(jìn)應(yīng)用支撐平臺的設(shè)計,構(gòu)建安全、易擴(kuò)展的應(yīng)用系統(tǒng);
2.采用面向服務(wù)的架構(gòu)(SOA)進(jìn)行設(shè)計,并以組件化方式進(jìn)行開發(fā);
3.項目主體采用 Hadoop、Spark和JavaEE技術(shù)體系結(jié)構(gòu),按照通用的瀏覽器規(guī)范實現(xiàn),支持通用的瀏覽器標(biāo)準(zhǔn),如 HTML、DHTML;
4.系統(tǒng)提供了統(tǒng)一的數(shù)據(jù)接口和應(yīng)用服務(wù)接口,并使用中間件技術(shù)對所有業(yè)務(wù)邏輯進(jìn)行封裝,服務(wù)接口支持主流網(wǎng)絡(luò)服務(wù)技術(shù);
5.遵循高內(nèi)聚、低耦合的設(shè)計原則,最大限度地減少系統(tǒng)之間、系統(tǒng)內(nèi)模塊之間的耦合程度,降低操作的復(fù)雜性,確保實現(xiàn)的通用性,提高系統(tǒng)的可重復(fù)使用性和可擴(kuò)展性。
該系統(tǒng)采用“分布式部署”的模式,根據(jù)業(yè)務(wù)實際,通過業(yè)務(wù)流程說明、指標(biāo)體系、統(tǒng)一軟件,支持從數(shù)據(jù)集成到數(shù)據(jù)服務(wù)應(yīng)用的全過程。體系結(jié)構(gòu)分為五個層次:數(shù)據(jù)整合層、數(shù)據(jù)支持服務(wù)層、數(shù)據(jù)治理層、數(shù)據(jù)挖掘服務(wù)層和服務(wù)應(yīng)用層。
1.數(shù)據(jù)整合層:將分散、異構(gòu)、不同類型的信息數(shù)據(jù)通過一個統(tǒng)一的數(shù)據(jù)整合器提取到操作數(shù)據(jù)存儲區(qū)(ODS)。分級數(shù)據(jù)整合系統(tǒng)是實現(xiàn)數(shù)據(jù)整合傳輸?shù)幕A(chǔ)平臺。
2.大數(shù)據(jù)支撐服務(wù)層:大數(shù)據(jù)支撐服務(wù)平臺由大數(shù)據(jù)存儲服務(wù)和大數(shù)據(jù)計算服務(wù)組成,它為大數(shù)據(jù)存儲、計算、分析和大數(shù)據(jù)挖掘服務(wù)平臺提供基本的技術(shù)支持。
3.數(shù)據(jù)治理層:數(shù)據(jù)治理層通過對數(shù)據(jù)標(biāo)準(zhǔn)、元數(shù)據(jù)、主數(shù)據(jù)和數(shù)據(jù)質(zhì)量檢測的管理,管理數(shù)據(jù)的整個生命周期中的問題,從而使數(shù)據(jù)過程中的問題可以識別、可以測量、可以監(jiān)測,并且通過改進(jìn)和改進(jìn)組織的管理,進(jìn)一步改進(jìn)數(shù)據(jù)質(zhì)量,為高質(zhì)量的數(shù)據(jù)分析挖掘提供技術(shù)。
4.數(shù)據(jù)挖掘服務(wù)層:大數(shù)據(jù)挖掘和分析服務(wù)平臺是以數(shù)據(jù)挖掘模型為基礎(chǔ)的數(shù)據(jù)挖掘模型,它利用 OLAP和數(shù)據(jù)挖掘引擎對分步數(shù)據(jù)倉庫中的有效數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘分析,從而形成有價值的數(shù)據(jù)知識。
5.數(shù)據(jù)應(yīng)用層:數(shù)據(jù)應(yīng)用層是對大學(xué)業(yè)務(wù)和服務(wù)重新應(yīng)用經(jīng)分析挖掘后有價值的數(shù)據(jù)。
主要包括 JBoss應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器、存儲設(shè)備等組成的系統(tǒng)物理部署環(huán)境,以及必要的附屬硬件設(shè)施。通過防火墻、VPN安全設(shè)備作為外部訪問安全性的主要保障。
該系統(tǒng)的主要用戶是通過網(wǎng)絡(luò)瀏覽器訪問該系統(tǒng),通過網(wǎng)絡(luò)瀏覽器對大數(shù)據(jù)運營監(jiān)管中心進(jìn)行管理、維護(hù)、數(shù)據(jù)分析可視化展示等操作。
為有效地利用服務(wù)器資源,提高并發(fā)訪問性能,Web應(yīng)用服務(wù)器邏輯部署采用類 Apache、JBoss集群方式,為靜態(tài)資源提供 Apache服務(wù),為緩存提高性能,同時為 JBoss實例轉(zhuǎn)發(fā)動態(tài)請求,為特定服務(wù)類型提供圖片訪問服務(wù),為獨立JBoss實例提供認(rèn)證服務(wù),以提高總體并發(fā)訪問性能。在優(yōu)化緩存使用時,Orale數(shù)據(jù)庫主要采取數(shù)據(jù)分區(qū)的方式,從而提高數(shù)據(jù)訪問性能。Hadoop數(shù)據(jù)存儲主要采用分布式存儲和拷貝的方式,提高新的數(shù)據(jù)訪問能力和安全性。
包括大數(shù)據(jù)基礎(chǔ)支撐服務(wù)模塊、數(shù)據(jù)治理模塊、可視化展示三個部分。大數(shù)據(jù)支持服務(wù)是建立在Spark體系之上的,數(shù)據(jù)收集和分發(fā)是使用工具包和基于Actor模型的Akka高并發(fā)性、分布式和容錯應(yīng)用,數(shù)據(jù)處理隊列使用Disruptor技術(shù)等。3-D視覺顯示部分是基于 three.js和Echarts圖表庫構(gòu)建的Web GIS系統(tǒng)。
1.支撐服務(wù)
支持服務(wù)是大數(shù)據(jù)挖掘服務(wù)平臺的基礎(chǔ)服務(wù),它為大數(shù)據(jù)環(huán)境下的數(shù)據(jù)存儲、處理和計算提供了應(yīng)用基礎(chǔ)。數(shù)據(jù)支持服務(wù)平臺由統(tǒng)一的資源管理與調(diào)度平臺、分步數(shù)據(jù)倉庫、分步數(shù)據(jù)計算和服務(wù)接口等構(gòu)成。
在大數(shù)據(jù)挖掘服務(wù)平臺中,包括 Hadoop HDFS、Tachyon和Spark等基于數(shù)據(jù)密集型應(yīng)用的存儲和計算框架。由于考慮到資源利用率、運營成本、數(shù)據(jù)共享等因素,這些框架通常都希望部署在一個公共的集群中,讓它們共享集群的資源,統(tǒng)一地使用資源,Apache Mesos就是一個這樣的資源統(tǒng)一管理和調(diào)度平臺。
Apache的 Mesos包括四個組件,分別是Mesos-master、mesos-slave、framework和執(zhí)行程序。
作為整個系統(tǒng)的核心,Mesos-master負(fù)責(zé)管理訪問 mesos的單個framework(由frameworks_manager管理)和 slave (由slaves_manager管理),并根據(jù)某種策略將 slave上的資源分配給 framework (由獨立插拔模塊 Allocator管理)。
mesos-slave從mesos-master中接收和執(zhí)行命令,在節(jié)點上管理mesostask,并為各個 task分配資源。mesos-slave向mesos-master發(fā)送其資源量,由mesos-master中的 Allocator模塊決定將資源分配給哪一個framework,當(dāng)前考慮的資源是 CPU和內(nèi)存,也就是說,mesos-slave將向mesos-master發(fā)送 CPU數(shù)目和內(nèi)存量,而用戶在提交作業(yè)時,需要指定每個任務(wù)所需的 CPU數(shù)目和內(nèi)存量,這樣,當(dāng)任務(wù)運行時,mesos-slave將任務(wù)放在包含固定資源的 linux container中運行,從而實現(xiàn)資源隔離。顯然,master存在單點故障問題,為此,mesos使用 zookeeper來解決這個問題。
框架是指外部計算框架,例如 Hadoop、Mesos等,這些計算框架可以通過注冊的方式訪問 mesos,從而實現(xiàn)對 mesos的統(tǒng)一管理和資源分配。Mesos要求可訪問框架必須具有一個調(diào)度程序模塊,該調(diào)度程序模塊負(fù)責(zé)在框架中調(diào)度任務(wù)。如果framework希望訪問 mesos,則需要對其自身的調(diào)度器進(jìn)行修改以向 mesos注冊并獲取 mesos分配給自己的資源,這樣,mesos再由其自己的調(diào)度程序?qū)⑦@些資源分配給框架中的任務(wù),即整個 mesos系統(tǒng)采用兩層調(diào)度框架:第一層,mesos將資源分配給框架;第二層,框架自己的調(diào)度程序?qū)①Y源分配給其內(nèi)部的任務(wù)。目前的 Mesos支持 C++、java和 python三種語言編寫的調(diào)度器,為了為各種調(diào)度器提供統(tǒng)一的訪問方式,在 Mesos內(nèi)部使用 C++實現(xiàn)了一個MesosSchedulerDriver (調(diào)度器驅(qū)動器),framework的調(diào)度器可以調(diào)用該調(diào)度器中的接口與Mesos-master進(jìn)行交互,完成一系列功能(如注冊、資源分配等)。
執(zhí)行器主要用于在框架中啟動任務(wù)。因為不同的框架啟動task的接口或者方法不同,所以當(dāng)一個新的框架要訪問 mesos時,需要編寫executor來告訴 mesos如何在這個框架中啟動 task。為各種框架提供統(tǒng)一的執(zhí)行程序編寫方式,在Mesos中使用 C++實現(xiàn)了一個MesosExecutorDiver (執(zhí)行器驅(qū)動器),通過這個驅(qū)動器的相關(guān)接口,framework可以告訴mesos如何啟動task。
2.可視化軌跡展示
利用基于 three.js技術(shù)的網(wǎng)絡(luò) Gis平臺,依托校園三維可視化平臺,實現(xiàn)了校園內(nèi)外三維建模、全景展示、漫游等功能,利用大數(shù)據(jù)支持下的數(shù)據(jù)采集模塊,實現(xiàn)了對全校實時位置空間數(shù)據(jù)、學(xué)生行為數(shù)據(jù)和各種基礎(chǔ)數(shù)據(jù)的采集,采集結(jié)果通過聚類算法對學(xué)生的軌跡信息進(jìn)行分析,推薦算法對學(xué)生相似行為進(jìn)行分析,通過遷移圖、熱力圖、散點圖等方法對校園地圖進(jìn)行可視化顯示,具體可提供校園行蹤軌跡數(shù)據(jù)顯示,校園行蹤熱點分析,學(xué)生遷移規(guī)律分析,考勤分析,學(xué)生住宿情況分析,宿舍人口分布,相似學(xué)生分析等。
根據(jù)空間位置數(shù)據(jù)的及時性,將其劃分為實時和歷史位置數(shù)據(jù)。即時定位數(shù)據(jù)提供了個性化、綜合性、全校不同類型數(shù)據(jù)的空間軌跡數(shù)據(jù)顯示,并結(jié)合運動量實現(xiàn)了運動軌跡的可視化顯示;通過各種高性能技術(shù)模塊可以提供更為實時的數(shù)據(jù)計算結(jié)果。利用歷史位置數(shù)據(jù)可形成歷史運動軌跡數(shù)據(jù),直觀地展示個體或整體的運動軌跡趨勢,掌握學(xué)校階段的運動軌跡趨勢圖。
對大數(shù)據(jù)技術(shù)在可視化校園中的應(yīng)用,研究并應(yīng)用了以空間位置和豐富圖表形式呈現(xiàn)學(xué)生行為軌跡的研究與應(yīng)用,探索獲取的數(shù)據(jù)是否充分、全面,數(shù)據(jù)質(zhì)量是否足夠高,對研究結(jié)果的影響,以及如何更好地進(jìn)行更深入的后續(xù)研究與使用,需要不斷提升大數(shù)據(jù)治理,提供更多的數(shù)據(jù)獲取源和更多的數(shù)據(jù)分析維度。在數(shù)據(jù)不斷豐富、數(shù)據(jù)治理水平不斷提高的今天,結(jié)合可視化校園可以展示更多有意義的內(nèi)容,拓展其他維度,可以為提升教學(xué)輔助管理提供更多幫助。