程 蓓, 孫勝春, 李忠猛, 耿洪健, 周 維
(海軍工程大學 訓練部, 湖北 武漢 430033)
基于Hadoop技術的數字化校園海量數據存儲系統研究與設計
程 蓓, 孫勝春, 李忠猛, 耿洪健, 周 維
(海軍工程大學 訓練部, 湖北 武漢 430033)
基于Hadoop技術開發了數字化校園海量數據存儲系統,提出了基于Hadoop的大數據存儲模型。將整個系統設計為系統管理、業務應用、數據處理、數據采集等4個大模塊,采用開源分布式數據處理框架,高效處理海量數據。系統具有可伸縮性、高可靠性、低成本和高效性等優點,解決了傳統數據處理成本高、數據管理困難、可靠性低、效率低、并行處理程序編寫困難等諸多問題。
Hadoop; MapReduce; HDFS; 數字化校園; 大數據
數字化校園是以現代先進計算機技術和網絡技術為基礎構建的數字化、虛擬化教育環境,對學校的教學管理、科學研究、生活服務、后勤保障等各類信息進行充分利用和優化。數字化校園在時間和空間兩個維度上對校園環境進行最大拓展[1],實現教學環境、教學資源的數字化,擴寬了傳統校園的業務范圍、提升了傳統校園教學管理水平、提高了傳統校園的運營效率。數字化校園的數據具有海量、復雜、異構、動態變化等特點,在信息化建設中容易形成“數據孤島”。構建一個數字化校園海量數據存儲管理系統,對數據資源進行有效存儲、管理、分發、共享和高效利用,已經成為現階段亟待解決的問題。
傳統的數據庫架構存在高成本、低效率、低可靠性、管理難度大、并行處理程序開發復雜等諸多問題;而Hadoop分布式文件系統(Hadoop distributed file system,HDFS)是一種開源的分布式數據處理框架,適合在普通服務器上對各類數據資源進行分布式存儲和管理,具有低成本、高可靠性、伸縮性強和效率高等優點[2]。
筆者采用Hadoop技術設計了數字化校園海量數據存儲管理系統。該系統采用Hadoop/MapReduce等大數據技術實現,不僅滿足數字化校園建設中對海量數據有效存儲和管理的需求,還充分整合了現有的硬件資源,為大數據時代下的現代教育開展數據分析、決策支持、數據挖掘等活動提供了可靠的技術支持。
傳統的大規模數據處理通常需要昂貴的計算資源支撐,一般采用網格計算、高性能計算技術,并且需要繁瑣的軟件編程才能實現對大規模數據進行有效分割并合理分配計算任務。
Hadoop是著名開源機構Apache基金會所開發的一個專用于處理大規模數據的分布式計算框架。Hadoop主要適用于集群上,使用簡單的編程模型就可以在集群服務器上對大數據集進行有效的分割并且分配計算任務,從而實現大規模數據的高效并行處理[3]。Hadoop的高可用性不依賴于硬件設備,它被設計成每臺服務器都有本地的存儲資源和計算,既能適應單臺服務器環境,也可擴展至數以千計的服務器環境。Hadoop內置的代碼庫能在應用層實時偵測并處理硬件故障,因此非常適合用來構建一個基于服務器集群的具有高可用性、高可靠性、高擴展性的并行分布式系統[4]。
Hadoop分布式文件系統(HDFS)、MapReduce編程模型和HBase分布式數據庫是Hadoop三大核心技術。
HDFS是分布式技術的存儲基礎,它具有高容錯性、高可用性等優點,可以部署在普通服務器上,將未經處理的源數據集存儲在Hadoop分布式文件系統中[5]。
MapReduce主要進行運算任務的分解和結果的匯總,解決大數據的運算問題[6]。MapReduce分為Map和Reduce兩個部分:Map可將一項大的運算任務分解成為多個子任務;Reduce用來將分解后的多任務處理的結果進行匯總,得到最終的結果[7]。
HBase用于實時讀寫超大規模的數據,它還可以解決HDFS不太適合存儲小型文件的問題[8]。
作為大數據存儲系統,其核心功能是數據處理,而數據的并行加載存儲是整個系統實現的關鍵。為了實現對海量數據的存儲和管理,本方案的設計思路是:先采用分布式文件系統(HDFS)存儲源數據,然后采用分布式計算模型(MapReduce)對數據進行處理,再用分布式數據庫(HBase)將系統處理后的數據進行存儲。
2.1 系統框架結構
由于數字化校園海量數據存在復雜性、異構性、分布性等特點,系統采用模型-視圖-控制器(model-view-controller,MVC)模式進行多層架構設計,從系統編程實現角度考慮,多層架構設計使系統結構清晰、易于功能擴展。系統從邏輯上將總體分為應用層、接口層、邏輯層、存儲層和資源層(見圖1)。

圖1 系統總體框架
(1) 應用層。系統為用戶提供方便、易用和友好的界面。用戶登錄系統后,可使用系統提供的各種應用服務,通過客戶端向系統發出請求;系統則把處理結果反饋給客戶端(一般是通過瀏覽器軟件瀏覽、查詢、管理數據)。
(2) 接口層。系統提供公共的API,供高級用戶或開發者進行二次開發使用。用戶可以根據業務類型,通過接口層擴展海量存儲系統的功能,以適用不同業務需求。
(3) 邏輯層。它是整個系統的核心部分,主要用于應用程序與存儲系統之間的溝通,并行處理海量數據,并對整個系統進行配置管理。邏輯層提供系統設置、安全管理、目錄管理、資源管理等基礎功能,通過HDFS和HBase集中管理海量存儲系統中的多臺存儲設備,實現設備之間的協作,對外提供統一的高性能數據訪問服務。系統還通過各種數據備份和容災技術措施來保障海量存儲系統的安全和穩定。
(4) 存儲層。它包括各類存儲設備,負責數據的管理和任務的分配,為系統提供分布式計算和存儲,是海量數據存儲系統的基礎。存儲設備可以分布在不同地域,提供龐大的存儲容量。存儲層還要實現存儲設備的邏輯虛擬化管理,實時監控硬件設備的狀態。
(5) 資源層。資源層負責從外部系統采集并處理源數據,屏蔽各種結構化、非結構化和半結構化數據的結構差異化,對各類異構數據源進行集中管理[9]。
2.2 總體功能設計
從系統功能角度考慮,可以將整個系統設計為系統管理、業務應用、數據處理、數據采集4大模塊,系統總體功能如圖2所示。
2.3 系統管理模塊
對系統實現分布式管理,包括系統設置管理等8個組件(見圖2),通過在Hadoop基礎平臺合理配置組件,可以讓各組件協同工作以達到最優效率。

圖2 系統總體功能
(1) 系統設置管理:用于設置系統各種可配置功能,如定時調度設置;
(2) 系統權限管理:用于對系統訪問操作權限進行統一認證管理;
(3) 負載均衡管理:用于對每個存儲節點進行負載均衡和容錯管理;
(4) 對象事務管理:用于對系統事務處理及其一致性進行管理;
(5) 遠程部署管理:用于對集群進行遠程部署和配置,通過合理的配置使系統整體以最優狀態運行;
(6) 自主維護管理:可以對自身的運行狀態進行監測,并且根據具體運行狀態進行自我維護;
(7) 數據標準管理:對系統中的數據標準進行統一維護,以提高數據計算效率;
(8) 系統日志管理:系統日志包括記錄系統自身運行的日志,還包括用戶對系統操作的日志。
2.4 業務應用模塊
業務應用模塊直接面向用戶開放,分為基于用戶GUI界面的應用和API公用接口。
(1) 基于用戶GUI應用。系統面向普通用戶,提供簡單、直觀、友好的系統操作界面,為用戶提供數據管理、查詢、統計等基本功能操作,也可以面向專業用戶提供基于海量數據的深層次智能分析、數據挖掘等應用。
(2) API公用接口。高級用戶可以通過開發應用系統,調用系統提供的API公用接口來擴展系統功能,實現所需的應用功能。
2.5 數據處理模塊
數據處理模塊是海量數據存儲系統設計的核心部分,主要采用計算機集群、分布式數據庫等技術,對海量數據進行并行處理,并把經過處理后的數據分配到分布式數據庫中進行存儲[10]。該模塊還提供管理支撐服務,用于保證系統正常運行。該模塊功能如下:
數據字典:用于維護系統的元數據信息,為系統配置全局的數據字典;
資源管理:用來對海量數據資源進行統一管理;
內容分發:系統根據制定的策略選擇一個或者幾個節點將數據分發下去,保存或者用于別的途徑;
并行加載存儲管理:包含并行數據加載、并行存儲、并行ETL子模塊,實現海量數據的并行加載、處理和存儲;
并行查詢:通過并行查詢提升系統執行效率;
備份管理:為了增強系統的安全性和容錯性,系統提供數據備份存儲、備份恢復等備份管理功能;
容災管理:當發生設備故障、人為操作破壞等意外事件時,系統保持不間斷地運行,并能將意外事件所造成的損失降到最低;
安全管理:利用技術手段保障系統的安全,防止系統遭受破壞和信息丟失。
2.6 數據采集模塊
一般計算機處理的數據分為結構化、非結構化和半結構化幾種類型[11]。為了使系統能夠處理不同結構的數據,數據采集模塊針對各種結構的數據操作方式進行底層屏蔽設計,通過去異構化設計,對外提供統一的海量數據存儲服務,在存取數據時可以適應各種數據結構的操作,增強系統的擴展性。
2.7 網絡拓撲結構
數字化校園海量數據存儲系統由多臺數據庫服務器和應用服務器共同構成,這些服務器在物理地址上既可以部署在同一個區域,也可部署在不同區域。由于系統設計的靈活性,可以很容易進行擴展,以適應用戶需求的變化和數據量的增加。通過去異構化處理,系統可以將現有的關系型數據庫整合到系統中,共同為用戶提供存儲和海量數據的管理服務。系統的拓撲結構如圖3所示:

圖3 系統網絡拓撲結構
傳統的數據管理一般采用數據庫+大磁盤陣列+多服務器集群解決方案,并通過索引、分區、負載均衡等技術提高數據的訪問效率。但隨著數據量快速增長,當原來的系統不能滿足存儲和訪問要求時,一般需要購買更大的系統來替代原有的系統,但價格昂貴。傳統的數據管理方式因管理復雜、維護成本高、使用效率不高等問題,已不能適應數字化校園信息化建設發展的需要。基于Hadoop技術設計的分布式數據存儲系統具有以下特性。
(1) 可擴展性。通過增加節點(具備計算和存儲能力)即可對原有系統的存儲和處理能力進行擴展,能可靠地存儲和處理PB級甚至ZB級海量數據。
(2) 經濟性。Hadoop服務器集群可以由普通的服務器構成,用于存儲和管理海量數據,集群中管理的節點可達上萬個,節點的增加和退出不會影響整個系統的使用,原有的服務器可以繼續發揮作用。
(3) 可靠性。HDFS的備份恢復機制以及MapReduce的任務監控機制保證了分布式處理的可靠性。Hadoop的數據塊復制策略能自動維護數據的多份復制,每個數據塊將在3個節點上分別保存,確保數據的可靠。把任務分解后部署到數據所在節點執行,并監控各節點的任務執行情況,如果出現問題,會將任務在其他機器上重啟,避免大的任務因為單個節點的失敗而造成整個任務的失敗。
(4) 高效性。系統采用LocalData技術[12],提高數據的處理和訪問效率。通過監控各節點的資源(存儲、內存、CPU、網絡)使用情況,根據各節點的處理能力和負載情況,自動分配任務,在節點之間動態地移動調整數據塊,保證能力強的節點任務多,能力弱的節點任務少,保持每個節點的動態平衡。
基于Hadoop的數字化校園海量數據存儲管理系統,為數字化校園建設提供了一種處理海量數據和低成本存儲的解決方案。海量數據存儲系統的實現將使數字化校園中產生的海量數據能夠得到有效存儲和管理,對數字化校園的建設具有重要基礎支撐作用。該系統可以穩定、可靠、不間斷地為校園各類用戶提供海量數據存儲和管理服務,使之充分發揮其在教學、科研、管理等方面的利用價值。
References)
[1] 姜婷婷,乜勇.我國數字化校園研究的現狀與反思[J].中國教育信息化:高教職教,2013(7):73-76.
[2] 劉師語,周淵平,杜江.基于hadoop分布式系統的數據處理分析[J].通信技術,2013(9):99-102.
[3] 曹英忠,謝曉蘭,趙鵬.基于Hadoop的云存儲實踐[J].現代計算機:上半月版,2011(10):25-27.
[4] 郗俊強.云計算中的數據管理關鍵技術及其應用[J].無線互聯科技,2011(8):3-4.
[5] 金松昌.基于HDFS的多用戶并行文件IO的設計與實現[D].長沙:國防科學技術大學,2010.
[6] 張文峰.MapReduce模型的分布式計算平臺的原理與設計[D].武漢:華中科技大學,2010.
[7] 鄭啟龍,房明,汪勝,等.基于MapReduce模型的并行科學計算[J].微電子學與計算機,2009(8):13-17.
[8] 陳峰.大型冗余集中存儲在監測系統中的應用[C]//第21屆中國數字廣播電視與網絡發展年會暨第12屆全國互聯網與音視頻廣播發展研討會論文集.2013.
[9] 馮少榮.基于XML的Web數據集成技術的研究[J].計算機應用與軟件,2005(7):39-41.
[10] 孟永偉,黃建強,曹騰飛,等.Hadoop集群部署實驗的設計與實現[J].實驗技術與管理,2015,32(1):145-149.
[11] 劉文杰,林樂春,李鳳岐,等.VLAN技術在校園網實驗中的應用[J].實驗技術與管理,2009,26(3):85-87.
[12] 皮瑩瑩.處理海量數據的異構數據庫訪問中間件的設計與實現[D].南京:南京郵電大學,2013.
Research and design of mass data storage system with digital campus based on Hadoop technology
Cheng Bei, Sun Shengchun, Li Zhongmeng, Geng Hongjian, Zhou Wei
(Training Department, Naval University of Engineering, Wuhan 430033, China)
With the rapid growth of digital teaching resources of colleges and universities, the storage and application of big data have become a new topic in the study of digital campus technology in military colleges and universities.There are many shortcomings in traditional data processing methods, such as high cost, data management difficulty, low reliability, inefficiency, parallel processing programming difficulty, etc. Hadoop, which is an open source, distributed data processing framework being used to handle huge amounts of data efficiently, has the scalability, high reliability, low cost, high efficiency, etc. In view of the problems existing in traditional storage architecture, the big data storage model based on Hadoop technology is proposed, and on the basis, the Hadoop distributed data storage system is designed.
Hadoop; MapReduce; HDFS; digital campus; big data
2015- 05- 11
程蓓(1982—),女,湖北應城,碩士,講師,主要研究方向為教育教學信息化.
E-mail:bud1997@163.com
TP333
A
1002-4956(2015)9- 0149- 04