程光勝


摘 ?要:“互聯網+教育”的本質是教學和學習的數據化。為了應對智慧校園應用中海量數據的存儲需求,需要構建易擴展的大數據存儲平臺,而HBase是一個構建在HDFS基礎上基于列式的分布式存儲架構,能夠根據鍵值的大小,把數據分布到不同的存儲節點上。為了支撐不同業務的分析以及性能方面的考慮,在數據存儲平臺的設計中,采用HBase+Hive+ Redis相組合的解決方案,一方面可以實現復雜的統計分析和數據挖掘的目的,另一方面也提升了數據不同組合下的查詢效率。
關鍵詞:“互聯網+教育”;智慧校園;HBase數據存儲;Redis數據緩存
中圖分類號:G717 ? ? ?文獻標識碼:A ? ? ?文章編號:2096-3769(2020)06-066-04
互聯網的本質是數據化,“互聯網+教育”也不例外,“互聯網+教育”、傳統教育和電子商務與傳統商務之間的關系如出一轍。在電子商務剛起步時,人們曾擔心不謀面交易背后潛藏的各種風險,然而,伴隨著各種技術的發展以及制度的不斷完善,電子商務對傳統商務產生沖擊的同時,也給其帶來了新的機遇。一家電商和一家線下實體店的區別是是否保存了足夠的數據,數據的多少反映經營規模的大小、交易的活躍程度,這些數據包括商品數據、交易數據以及其他相關數據,不僅為用戶挑選喜歡的商品提供了便利,也為商家進行商業分析提供了基礎?!盎ヂ摼W+教育”在推動傳統教學的過程中,同樣需要有足夠的數據,這些數據就是各種優質教學資源、用戶信息數據以及用戶學習行為等,通過這些數據可以反映“互聯網+教育”的實施規模、程度和效果。因此,“互聯網+教育”也是數據化教育,在技術層面上對這些數據有效管理是實施“互聯網+教育”的一個重要方面,其存儲與管理質量的高低直接影響到“互聯網+教育”的建設水平。
一、“互聯網+教育”與智慧校園建設
“互聯網+教育”是互聯網技術手段在教育上的應用,以互聯網為基礎設施和創新要素,構建新的教育生態和服務模式正當時。在“互聯網+教育”環境下,學校的教育理念也從以教為主向以學為主轉變,這就要求智慧教學平臺必須以學習者為中心,提供個性化、多樣化的教育服務資源,在供給的同時,也可以根據學習者的學習行為進行精準化推薦和建議?!盎ヂ摼W+教育”催生知識的載體日漸豐富,最終將實現從環境的數據化到數據的環境化、從教學的數據化到數據的教學化、從人格的數據化到數據的人格化轉變。針對智慧校園,不同學者有不同的詮釋,綜合起來看,智慧校園是通過信息技術的有效支撐,提供一個可感知、可個性化定制、可共享協作的開放教育教學環境,在這種環境中,師生可以便捷地進行教學、學習和生活,以發展學習者的智慧為目的,同時為學校提供管理決策,助力學校管理水平的提升。智慧校園建設是“互聯網+教育”的一個重要方面,在一定程度上豐富了“互聯網+教育”的內涵,而“互聯網+教育”又給智慧校園建設提供了更大的空間。
二、數據存儲平臺的設計
在“互聯網+教育”下,互聯網化的本質是數據化再次得以體現。其所產生的大部分是非關系型數據,如果仍然采用傳統的關系型數據庫進行存儲和管理,無論是進行日常的讀寫還是從可用性、可擴展性等角度考慮,都是不合適的。所以,數據存儲平臺采用NoSQL數據庫進行存儲和管理,這是因為NoSQL數據庫能夠提供數據模型,可伸縮性強,支持自動分片和自動復制等。當然,也可采用其他技術實現分布式數據存儲,比如基于數據湖的大數據處理機制、基于區塊鏈設計數據存儲系統,但是讀寫效率不能滿足現有應用的需求。
結合智慧校園建設和應用實際,NoSQL數據庫最終選擇HBase進行存儲,這是因為HBase是一個構建在HDFS基礎上基于列式的分布式存儲架構,能夠根據鍵值大小,把數據分布到不同的存儲節點上,可靠性、可擴展性較強。同時,HBase底層采用了類B+樹的索引結構,所以基于行鍵查詢數據的效率很高。基于此,在數據存儲層可以HBase為核心管理海量的數據存儲,具體結構如圖1所示。
在圖1中,智慧校園大數據存儲平臺的核心層為數據集成層、數據存儲層、數據緩存及分析層,其最高層為業務層,最底層為數據源層。智慧校園的建設不是從零開始,而是保護原有的投入,在此基礎上集成各個業務系統,通過數據集成層提供的各種工具和組件,將原有系統產生的各種業務數據集成到大數據存儲環境中,同時為了向業務層提供更快的響應和更便利的分析,專門設計了數據緩存和分析層,通過該層向業務層提供基于Restful API的訪問接口。
作為“互聯網+教育”下智慧校園數據存儲平臺,數據存儲層是核心。在該層上,MySQL數據庫用來存放關系型數據以及Hive中的元數據,而海量數據通過具備高擴展性的HBase存儲到HDFS上。HBase存儲教育業務數據以及相關的非結構化數據,同時存儲多維數據模型,可以讓相關管理者和決策者通過不同的維度對數據進行分析,充分發揮大數據的作用和優勢。
為了提升查詢效率和有效構建分析模型,專門提供了數據緩存及分析層,通過Redis強大的分布式內存緩存機制,將熱點數據緩存起來,這樣一方面減輕I/O壓力,另一方面使得數據的讀取更加快速。而Hive作為一個數據倉庫工具,可以基于有效的多維數據模型實現數據的匯總、統計和挖掘,具有良好的可伸縮性和可擴展性。在智慧校園環境下,多維數據模型維度的確定有很多種方法,在充分調研的基礎上,通過校園生活、課堂學習、課外學習、社團活動、專業成長等方面來進行設計,會產生相關的主題、維表和事實表。為了充分利用HBase中Rowkey的查詢優勢,這里將數據模型中的每個維度映射為HBase中的一個列簇,將維表中包含的每個字段映射為列簇中的一列,從而實現Hive快速獲取分析數據的目的。
三、數據存儲與讀寫的優化
HBase在存儲數據時,一方面需要預寫日志WAL(Write-Ahead Log),在某種程度上可以確保內存中數據的可靠性;另一方面是實際的數據文件,具體執行流程是:一旦數據被寫入到WAL中,數據就會被放到MemStore中,同時還會檢查MemStore是否已經寫滿,如果寫滿,就會被刷新到磁盤中去。那么,對于大數據文件,Region服務器會頻繁執行Split過程和Compact過程,導致HBase寫入性能大大降低。為了解決此問題,本文在數據存儲系統中設置一個閾值,當文件的大小超過該閾值時,可以直接將其存儲到HDFS中,對應地其索引信息保存到HBase表中,這樣可實現不同大小的文件分布存儲到不同的存儲系統上,與切分大文件的處理相比,這種方式的優勢是系統開銷低、性能高。
與HBase中行鍵查詢相比,非主鍵查詢需要掃描全表,對于海量數據而言,時間延遲非常嚴重。因此,本文基于Redis的內存緩存特性建立了HBase中非主鍵索引,當一個查詢到來時,通過該索引快速找到Rowkey,從而獲取相應的數據,同時根據程序執行的局部性原理,對應用中的熱數據也進行緩存,這樣可以大大提升HBase的響應效率。綜上,針對HBase中的數據查詢可以通過圖2中的交互過程來表示。
在圖2中,客戶端可以直接在Redis上查詢熱點數據,因為所有的熱點數據都是存放在Redis分布式內存上的。為了有效管理Redis上的熱點數據,可采用一致性哈希算法,即將整個哈希值空間組織成一個虛擬的圓環,根據數據Key進行哈希計算,然后將Key所對應的Value放置在環中某一個位置,在進行數據讀取時,按順時針確定Key所對應的哈希地址在環中的位置。一致性哈希算法對于節點的增減都只需定位環空間中的一小部分數據,具有較好的容錯性和可擴展性,也保證了各個存儲節點的平衡。
為了發揮HBase的存儲優勢和Hive的查詢分析優勢,通過將HBase和Hive進行有效集成,從而滿足復雜的海量數據統計分析需求。在這種集成環境下,HBase和Hive可以協同進行工作,基于Hive支持的HQL可以實現分組、條件、排序等相關數據統計分析,并將其自動轉化為MapReduce程序;同時可以針對查詢中常用的字段,在設計HBase時,將其作為Rowkey設計,這樣可以快速查詢HBase中的數據,并為復雜統計分析提供數據支持服務。
四、數據存儲平臺的實現
智慧校園數據存儲平臺采用Java EE架構、基于B/S訪問模式,為用戶提供高效的文件及數據管理服務。在整個平臺上主要涉及客戶端、Web服務器、應用服務器、文件服務器以及數據庫服務器。各種服務器都是以集群的形式出現的,每個集群內含多個節點,Redis、HBase、Hive、Zookeeper、MySQL等部署在不同的節點上,以便相互交互,共同完成海量高并發的文件讀寫訪問請求。在系統中,業務數據文件分布在HBase和HDFS上,從而實現海量數據的管理,更具擴展性,而系統本身的數據存儲在關系型數據庫MySQL中,便于對系統中的業務文件數據進行權限管理。在功能上,系統具備用戶管理、文件管理以及權限驗證等。當然,作為數據存儲平臺,文件管理是重中之重,除了類似操作系統文件管理的功能之外,也具備分布式集群環境下的文件管理,比如分區管理、分布式鎖管理等。對一般用戶來說,可以實現文件的上傳、下載、刪除和過濾等。為了給上層應用提供數據資源訪問服務,數據存儲系統以HTTP+JSON定義接口,因為這樣可以滿足更多的需求,比如認證、授權、數據緩存、超時控制等,而且在應用上也非常成熟,可以支持大多數的數據資源需求者。
互聯網化的本質是數據化,“互聯網+教育”下的教育形態也是教育數據化。為了有效應對智慧校園建設中產生的海量教育數據,并實現對海量數據的高效利用,本文以數據為中心、基于HBase+Hive +Redis組合的方式構建了分層式的海量數據存儲方案,并從提升效率的角度,對數據的存儲、查詢和統計分析等方面進行優化。事實上,本文的核心是基于智慧校園海量數據存儲和管理的需要,以HBase為中心,并基于HBase提出了查詢和優化的具體方案。然而由于HBase應用的廣泛性,基于HBase查詢優化的解決方案有很多,比如在HBase上引入Elastic Search建立二級索引提高非主鍵查詢的速度,但是需要存儲和維護大量的索引文件;有些利用HBase內部的Region服務器,在其中添加索引,以提高查詢速度,但是如果Region服務器很多,而索引數據有限,這樣不但沒有實現快速響應反而增加額外的計算成本。本系統的設計在保留HBase主鍵查詢優勢的前提下,引入了Redis生成、管理和維護HBase中的非主鍵索引數據以及存放熱點數據,相對于上述方案,這種分層模式的結構設計具有很大的優勢,一方面提高應用邏輯上的獨立性,使得架構更加清晰,不同層之間通過特定接口實現簡單交互;另一方面使得實現更加簡單,同時可以充分發揮不同層上各組件的特定優勢。
基于HBase+Hive+Redis組合構建的智慧校園海量數據存儲平臺能夠高效支持學校的各項管理工作和教師的教學,以及學生的個性化學習,從而使新技術與教育教學深度融合,推進教學從信息技術應用向能力素質提升的擴展。
參考文獻:
[1]孫善學,劉正宏.職業教育專業教學資源庫的未來走向研究[J].中國職業技術教育,2018(23):8-11+22.
[2]趙志. 教育大數據統計分析平臺設計與研究[D].西安理工大學,2019.
[3]季一木,張寧,堯海昌,等. HOS:一種基于HBase的分布式存儲系統設計與實現[J]. 南京郵電大學學報(自然科學版),2019,39(5):63-71.
[4]龔玉霞,呂家恪.一種基于區塊鏈的數據存儲系統的設計[J]. 重慶理工大學學報(自然科學),2019(9): 190-195.
[5]陳永南,許桂明,張新建.一種基于數據湖的大數據處理機制研究[J]. 計算機與數字工程,2019(10):2540-2545.