王慧
(廣東科學技術(shù)職業(yè)學院 廣東 珠海519090)
基于HDFS的校園云存儲平臺的優(yōu)化
王慧
(廣東科學技術(shù)職業(yè)學院 廣東 珠海519090)
為了提高當前校園信息管理系統(tǒng)效率的目的,本研究在構(gòu)建校園云存儲服務(wù)系統(tǒng)用戶層的基礎(chǔ)上,開發(fā)設(shè)計了基于HDFS體系的校園云存儲平臺及各個功能模塊。利用了Mybatis的開源持久層框架對HDFS體系進行改進,并且DAO層實現(xiàn)校園云端網(wǎng)絡(luò)的可變動態(tài)操作。實踐應(yīng)用結(jié)果表明:優(yōu)化后的HDFS方案能夠有效地減少名稱節(jié)點內(nèi)存的損耗,擴展了HDFS集群的命名空間,并且能夠有效地提升讀取文件元數(shù)據(jù)信息的速度。有效地提升了校園云存儲平臺的管理效率和數(shù)據(jù)訪問效率,緩解了對數(shù)據(jù)庫的壓力。
云存儲;校園網(wǎng);HDFS;名稱節(jié)點
Abstract:In order to improve the efficiency of the current Campus Information Management System The purpose of this study on the basis of constructing campus cloud storage system user layer on the development and design of the campus-based cloud storage platform HDFS system and each module.The use of open source persistence framework Mybatis of HDFS system could be improved,and the DAO layer to achieve dynamic operating variable clouds campus network.Practical application results show:optimized HDFS program can effectively reduce the loss of memory node name,expands the namespace HDFS clusters,and can effectively improve the reading speed of file metadata information.Effectively improve the efficiency of data access and management efficiency campus cloud storage platform to ease the pressure on the database.
Key words:cloud storage; campus network; HDFS;nodename
隨著互聯(lián)網(wǎng)信息化建設(shè)的發(fā)展,校園網(wǎng)內(nèi)的數(shù)字信息累計為數(shù)據(jù)存儲帶來了巨大的挑戰(zhàn)[1]。云儲存平臺作為數(shù)字信息化資源的整合,是由多種技術(shù)和服務(wù)將所需儲存的文件上傳到網(wǎng)絡(luò)空間存取[2]。云儲存通過利用I/O數(shù)據(jù)流的方式對分布式儲存系統(tǒng)進行數(shù)據(jù)操作[3],可將校園教務(wù)管理系統(tǒng)與辦公系統(tǒng)相互整合,從而有效地提高數(shù)據(jù)訪問速度,具有較高易擴展和傳輸率的特點,能夠滿足校園數(shù)據(jù)的高效存儲的要求[4]?,F(xiàn)有校園云存儲平臺主要利用調(diào)用Hadoop分布式文件系統(tǒng)(HDFS)對集群的狀態(tài)實現(xiàn)管理,校園云存儲平臺的搭建,可為學生、教師和管理者提供更為個性化的服務(wù),實現(xiàn)信息平臺管理的統(tǒng)籌與共享[5]。本研究在HDFS系統(tǒng)的基礎(chǔ)上,通過將數(shù)據(jù)庫與客戶端置于同一服務(wù)器設(shè)計了校園云儲存結(jié)構(gòu)框架和功能模塊,在邏輯層搭建數(shù)據(jù)訪問封裝層開源框架,實現(xiàn)了云儲存平臺數(shù)據(jù)庫的內(nèi)存和元數(shù)據(jù)空間的高效擴展性。
校園云存儲服務(wù)的系統(tǒng)架構(gòu)總共可劃分為3層,當用戶通過用戶終端打開網(wǎng)頁瀏覽器對,實現(xiàn)了對云端存儲設(shè)備的服務(wù)器訪問[6]。HDFS的用戶層的主要任務(wù)是對用戶端發(fā)送的請求加以處理和接受,同時根據(jù)應(yīng)用的要求的不同實現(xiàn)提供不同接口的服務(wù)[7]。HDFS用戶層主要負責四項步驟的功能:實現(xiàn)對用戶的有效管理、對用戶端發(fā)送的訪問請求進行管控、對校園云端存儲的業(yè)務(wù)進行邏輯控制、實現(xiàn)數(shù)據(jù)的篩選和處理,其中數(shù)據(jù)的篩選和處理和對校園云端存儲的業(yè)務(wù)進行邏輯控制是UI層同HDFS存儲層進行聯(lián)系和傳輸?shù)耐ㄐ偶~帶,同時也是本研究的研究重點。校園云端數(shù)據(jù)庫的主要功能是建立一個數(shù)據(jù)保護的備份屏障實現(xiàn)對系統(tǒng)內(nèi)用戶的私密信息、文件的屬性內(nèi)容以及權(quán)限進行保存,而本文基于HDFS的校園云儲存平臺中的數(shù)據(jù)庫將與HDFS用戶信息一同置于同一個服務(wù)器中,在同一區(qū)域的校園網(wǎng)將會將其網(wǎng)絡(luò)內(nèi)的所有用戶的應(yīng)用數(shù)據(jù) (如訪問者備份的文檔、音視頻文件等)加以保存并設(shè)定在HDFS集群中,系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)構(gòu)架
基于HDFS的校園云存儲系統(tǒng)同傳統(tǒng)電商網(wǎng)絡(luò)有所不同,其根據(jù)存儲的性質(zhì)不同可劃分為兩大類:第一類是包括含用戶的個人信息,用戶訪問角色,權(quán)限,用戶訪問日志等在內(nèi)的用戶數(shù)據(jù);第二類是用戶上傳的文檔和音視頻數(shù)據(jù)信息。而基于HDFS的校園云存儲系統(tǒng)中所存儲的的數(shù)據(jù)主要是同用戶訪問賬號無關(guān)聯(lián)性的數(shù)據(jù)上,一般包括訪問網(wǎng)點數(shù)量信息表、廣告投放數(shù)據(jù)表、學生成績數(shù)據(jù)表等,所有的數(shù)據(jù)表之間業(yè)務(wù)不存在交叉項,并且彼此之間關(guān)系相互獨立,正是這樣的天然屬性使得能夠?qū)@些數(shù)據(jù)表的業(yè)務(wù)進行垂直的劃分。一般來說,大多數(shù)的網(wǎng)絡(luò)類型的存儲數(shù)據(jù)設(shè)備彼此之間存儲的海量數(shù)據(jù)其關(guān)系表眾多且錯中復(fù)雜[8],因此在設(shè)計本文的校園云端存儲平臺的過程中最先需要解決的問題就是分庫。面對不同的水平分布表,可以根據(jù)實際情況設(shè)計不同的劃分方案,例如針對獨自存在的數(shù)據(jù)表,則可以存在不同的散列方式,例如單庫多表、單表多分區(qū)、多庫多表等。
在校園云存儲系統(tǒng)中HDFS用戶層主要包含對校園云端存儲的業(yè)務(wù)進行邏輯控制、實現(xiàn)數(shù)據(jù)的篩選和處理兩部分內(nèi)容[9],根據(jù)其處理的內(nèi)容可分為校園用戶訪問、校園用戶訪問管理、校園訪問部門權(quán)限管控和HDFS用戶集群資料信息管理4個模塊。校園用戶訪問的模塊主要負責校園訪問用戶的ID登錄,對個人信息的修改和變更,校園用戶日常文件的備份、下載、共享以及文檔歸檔和管理等功能。校園用戶訪問管理模塊的功能主要負責校園用戶的個人信息管理、登錄用戶在線狀態(tài)管理、校園用戶歸屬管理的分配等業(yè)務(wù)。校園訪問部門權(quán)限管控模塊的功能主要負責校園各個部門之間基礎(chǔ)信息設(shè)定和管理、校園網(wǎng)絡(luò)系統(tǒng)的用戶和部門權(quán)限管理以及各個部門之間協(xié)調(diào)權(quán)限分配管理。HDFS用戶集群資料信息管理模塊主要用于校園網(wǎng)絡(luò)維護人員信息設(shè)定和對集群內(nèi)的從節(jié)點、主從節(jié)點IP以及數(shù)量進行管理,并能夠隨時對集群內(nèi)用戶和人員的狀態(tài)和任務(wù)進行編輯,此外該模塊還有報警管理的功能[10]。校園云端存儲系統(tǒng)的后臺管理細致層次劃分和模塊功能如圖2所示。
圖2 校園云存儲服務(wù)平臺
與常見的分布式文件系統(tǒng)相類似,現(xiàn)有的文件系統(tǒng)建立于普通的硬件之上,它也是一個分布式文件的系統(tǒng)[11],但是它擁有較高的容錯性,同時可以以低成本的硬件為平臺進行部署,這樣的文件系統(tǒng)降低了對數(shù)據(jù)運算錯誤率的需求[12],因此文件系統(tǒng)能夠以數(shù)據(jù)流的形式實現(xiàn)對文件數(shù)據(jù)的訪問,從而能夠?qū)崿F(xiàn)高吞吐量的數(shù)據(jù)訪問,比較適合類似校園環(huán)境的大數(shù)據(jù)集處理應(yīng)用程序。HDSF文件系統(tǒng)的體系結(jié)構(gòu)圖具體內(nèi)容如圖3所示。
圖3 HDFS文件系統(tǒng)
根據(jù)圖3不難發(fā)現(xiàn)客戶端能夠?qū)崿F(xiàn)對數(shù)據(jù)源的操縱和管理,同時也可以直接的對名稱節(jié)點進行讀取和編輯的操作。文中將在下面對HDSF云端存儲的工作機制和體系架構(gòu)進行全方面的闡述和介紹。
根據(jù)文件系統(tǒng)的程序架構(gòu),HDFS邏輯在介于JDBC與DAO之間的數(shù)據(jù)訪問封裝層、JDBC、API層、DAO層HDFS以及介于應(yīng)用服務(wù)器與數(shù)據(jù)庫之間的HDFS代理服務(wù)器等層面上實現(xiàn)。通過在DAO層級實現(xiàn)HDFS體系存在以下優(yōu)勢,即在本文的HDFS體系中DAO不存在ORM的制約、操作較為靈活[13],可根據(jù)校園云端網(wǎng)絡(luò)的特點進行可變操作,最重要的是在沒有SQL的解析和其他的路由規(guī)則的分配的情況下,該層級的表現(xiàn)性能將會更加突出。除了上述的一些優(yōu)勢,DAO層級在HDFS系統(tǒng)中也存在一定的劣勢,即DAO只能夠在具有特定屬性的系統(tǒng)里操作運行[14],同時進行開發(fā)的人員還需要對邏輯進行較為明確的切分。
基于HDFS的校園云儲存平臺利用了Mybatis的框架,它主要是開源持久層框架。為了建立Mybatis框架與數(shù)據(jù)庫之間的聯(lián)系,我們需要參照JDBC的規(guī)范和原則[15],同時還需要以Annotaion/XML+JAVA的反射技術(shù)為工具,最終實現(xiàn)數(shù)據(jù)庫同Java對象之間的轉(zhuǎn)化。在模擬路由功能的環(huán)節(jié),我們通過修改少數(shù)的代碼,同時在DAO層動態(tài)的傳入表名即可,并根據(jù)數(shù)據(jù)表的功能的不同進行頻道表的劃分,通過使用配置表對頻道進行管理。
DAO層中主要包括兩個文件,同時它向Service層提供了持續(xù)化的方法,其中*.xml通過中SQL來實現(xiàn)持久化,而*_Mapper.java是定義持久化方法的接口。為了滿足路由的需要需要進行以下步驟:第一,對所有的持續(xù)化接口進行重新的定義,并對定義參數(shù)列表中字段值以傳入頻道命名[16]。第二,通過XML文件截獲各種參數(shù),并對表名進行動態(tài)替換。
為了對本文提出的校園云儲存方案進行優(yōu)化設(shè)計,測試實驗安排如下:試驗將在一臺物理機上運作HDFS系統(tǒng),并將物理機選取為校園操作用戶的數(shù)據(jù)空間服務(wù)器,這主要是因為本文的優(yōu)化實驗只針對NameNode,并不涉及DataNode。實驗過程中選取的物理機配置如下:名稱節(jié)點(NameNode)服務(wù)器采用六核AMD羿龍Ⅱ CPU 3.2GHz,金士頓Beast 16GB DDR3 2400內(nèi)存,同時,空間元數(shù)據(jù)(Metadate)服務(wù)器采用16核Intel酷睿i7 4770 CPU3.4 GHz,影馳HOF 16GB DDR4 4000內(nèi)存。實驗以用戶規(guī)模步長為50個,分別模擬100至500個九組實驗,其中,每個用戶均創(chuàng)建100個文件且創(chuàng)建后并不進行文件讀寫,即每組實驗的文件規(guī)模區(qū)間在10 000至50 000。
為了方便對優(yōu)化前后的系統(tǒng)進行對比我們做了幾組實驗,并分別對名稱節(jié)點(NameNode)中的節(jié)點和進程中的的內(nèi)存變化的大小進行記錄,具體的實驗結(jié)果如圖4所示。
圖4 優(yōu)化前后校園云存儲文件系統(tǒng)內(nèi)存對比
由圖4可見,本文將文件的規(guī)模區(qū)間定義為 0~5 W,元數(shù)據(jù)規(guī)模數(shù)同時也是數(shù)量級數(shù),隨著HDFS的文件規(guī)模的擴大,元數(shù)據(jù)的信息占有一定的內(nèi)存空間,因此NameNode在實驗中的內(nèi)存將會以線性增長的方式不斷被占有。在系統(tǒng)優(yōu)化之后,NameNode在實驗中的數(shù)據(jù)規(guī)模數(shù)與校園用戶的規(guī)模數(shù)對應(yīng),因此本實驗中的文件數(shù)量級下降了100倍。本實驗將擴大NameNode進程本身擁有的數(shù)據(jù)占有的內(nèi)存用戶數(shù),然而結(jié)果表明,這樣的擴容之后其內(nèi)存損耗并不顯著。本實驗的結(jié)果顯示,文中提出的HDFS的方案能夠有效地減少NameNode內(nèi)存的損耗同時還能夠擴展HDFS集群的命名空間。
我們對文件的讀取時間進行了測試,以實際文件流和元數(shù)據(jù)的信息為對象進行了試驗,并對HDFS體系和加入Mybatis優(yōu)化方案的HDFS創(chuàng)建文件進行試驗,其結(jié)果如圖5所示。
從圖5不難發(fā)現(xiàn),當經(jīng)過優(yōu)化的方案運用在讀寫NameNode中的元數(shù)據(jù)時,讀寫元數(shù)據(jù)信息的速度得到了很大的提升。從實際數(shù)據(jù)塊寫入的角度進行考察我們發(fā)現(xiàn),經(jīng)過優(yōu)化的方案在在讀寫NameNode中的元數(shù)據(jù)時,讀寫速度下降明顯,這可能是由于HDFS體系無法對文件操作提供足夠的支持。從讀取元數(shù)據(jù)信息的速度角度來看我們可以發(fā)現(xiàn),通過對Mybatis的框架引入實現(xiàn)了方案的優(yōu)化,并且能夠有效地提升HDFS讀取文件元數(shù)據(jù)信息的速度。
圖5 讀寫測試對比
本文主要針對目前校園信息系統(tǒng)中的面臨的海量數(shù)據(jù)的存儲問題。設(shè)計了一套基于HDFS文件系統(tǒng)的云存儲優(yōu)化問題。本研究根據(jù)校園網(wǎng)數(shù)據(jù)信息類型,劃分校園云端存儲系統(tǒng)的后臺管理細致層次劃分和模塊功能,充分應(yīng)用關(guān)系型數(shù)據(jù)庫建立HDFS存儲層,有效的解決了校園海量數(shù)據(jù)信息的存儲瓶頸。同時,利用Mybatis的框架構(gòu)建HDFS的校園云儲存平臺,并且DAO層實現(xiàn)數(shù)據(jù)的動態(tài)讀寫。該方案在使用過程中,內(nèi)存損耗低,文件元數(shù)據(jù)信息讀寫速度快。因此,本研究可為校園網(wǎng)絡(luò)的云存儲平臺的構(gòu)建具有參考意義。
[1]熊聰聰,馮龍,陳麗仙.云存儲在校園信息化中的應(yīng)用與優(yōu)化[J].天津科技大學學報,2012(5):69-73.
[2]陳俊.面向云儲存的高性能數(shù)據(jù)隱私保護方法[J].電子技術(shù)與軟件工程,2015(9):228-228.
[3]范貴生,虞慧群,陳麗瓊,等.分布式嵌入式系統(tǒng)的自適應(yīng)能耗管理和分析[J].軟件學報,2014,25(2):419-438.
[4]丘瑾.云存儲在校園信息管理系統(tǒng)中的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(6):9-10.
[5]侯青,徐家喜,吉力.基于Hadoop的校園教育資源管理系統(tǒng)[J].電腦知識與技術(shù),2014(1):67-71.
[6]余琦,凌捷.基于HDFS的云存儲安全技術(shù)研究[J].計算機工程與設(shè)計, 2013,34(8):2700-2705.
[7]陳吉榮,樂嘉錦.基于Hadoop生態(tài)系統(tǒng)的大數(shù)據(jù)解決方案綜述 [J].計算機工程與科學,2013,35(10):25-35.
[8]藍昊慧.云計算在Web結(jié)構(gòu)挖掘算法中的運用研究[J].計算機時代, 2012(10):30-33.
[9]李明明,李偉.基于HDFS的高可靠性存儲系統(tǒng)的研究[J].西安科技大學學報, 2016,36(3):428-433.
[10]王意潔,孫偉東,周松,等.云計算環(huán)境下的分布存儲關(guān)鍵技術(shù)[J].軟件學報, 2012,23(4):962-986.
[11]馬志強,楊雙濤,閆瑞,等.SQL-DFS:一種基于HDFS的海量小文件存儲系統(tǒng) [J].北京工業(yè)大學學報, 2016,42(1):134-141.
[12]湯羽,王英杰,范愛華,等.基于HDFS開源架構(gòu)與多級索引表的海量數(shù)據(jù)檢索mDHT算法 [J].計算機科學, 2013,40(2):195-199.
[13]周相兵,馬洪江,苗放.云計算環(huán)境下的一種基于Hbase的ORM設(shè)計實現(xiàn)[J].西南師范大學學報:自然科學版, 2013,38(8):130-135.
[14]陳吉榮,樂嘉錦.基于MapReduce的Hadoop大表導(dǎo)入編程模型[J].計算機應(yīng)用, 2013,33(9):2486-2489.
[15]李洪敏,盧敏,黃林,等.基于云計算技術(shù)的網(wǎng)絡(luò)告警融合分析系統(tǒng)的設(shè)計與實現(xiàn)[J].信息安全與技術(shù), 2014(9):58-63.
[16]張釗,張新峰,鄭楠,等.基于Hadoop平臺的LDA算法的并行化實現(xiàn) [J].計算機工程與科學,2016,38(2):231-239.
Optimization on cloud storage platform of campus based on HDFS
WANG Hui
(Guangdong Polytechnic of Science and Technology, Zhuhai519090,China)
TN919.23
A
1674-6236(2017)19-0006-04
2016-08-15稿件編號201608104
國家自然科學基金資助項目(91120308)
王 慧(1986—),女,山東菏澤人,實驗師。研究方向:數(shù)字化校園建設(shè),互聯(lián)網(wǎng)+,云數(shù)據(jù)平臺。