【摘 要】隨著高校視頻監(jiān)控、無紙化辦公、圖書館資料電子化的推廣,高校中海量的數字資源呈現爆炸性增長,校園中數據存儲逐漸成為高校亟需解決的一大難題。高?,F行傳統(tǒng)方法是購買更多存儲硬件來解決,其存在成本高、效率低、共享性能差等缺點。通過Hadoop這個云開源項目,它由分布式文件系統(tǒng)HDFS與分布式處理框架MapReduce組成,能夠有效解決校園教學、辦公等過程中遇到的海量數據存儲問題,具有成本低、速度快、易于編程擴展等特點。
【關鍵詞】云存儲;MapReduce;海量數據存儲;HDFS
海量的高校信息資源需要整合,這是當前無可爭議的事實,因為高校信息資源存在著資源分布不均衡、更新維護成本高、共享程度低和安全性差等一系列問題。整合資源首先要解決信息的合理存儲這一問題,以便實現高效、安全的訪問。與傳統(tǒng)的存儲方式相比,云存儲很好地解決了這個問題。將基于Hadoop的云存儲應用于整合高校信息資源,旨在通過構建基于Hadoop的云存儲服務系統(tǒng),解決海量數據存儲問題,構建了一個低成本、高效率、高安全性的分布式信息資源整合解決方案,并給出了系統(tǒng)功能模塊劃分圖。
一、云存儲架構的技術基礎
1.云存儲
云存儲是通過Web服務API經由(內部或外部)網絡訪問的存儲。嚴格來講,云存儲是服務,不是存儲,是使用一個由多個存儲設備和服務器所組建而成的集合體。云存儲訪問API一般天生就是RESTful的。表述式狀態(tài)轉移(REST)是一種分布式超媒體系統(tǒng)的軟件架構風格。RESTful意味著服務REST模式的一種架構,它由客戶端和服務器組成,其中客戶端向服務器發(fā)起請求,服務器處理請求并返回適當的響應。
2.分布式文件系統(tǒng)HDFS的體系結構
分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。具有高容錯性,可以部署在低成本的硬件上。而且它可以提供高傳輸率來訪問API的數據,特別適合那些有著超大規(guī)模數據集的API。HDFS放寬了對可移植操作系統(tǒng)接口的要求,使其可以流的形式訪問文件系統(tǒng)中的數據。
HDFS系統(tǒng)采用主/從架構,是Hadoop集群的工作機制的中心,每個Hadoop集群都有以下四個守護進程:
①NameNode:管理命名空間、文件系統(tǒng)元數據和訪問控制。
②JobTracker:將子任務委派給從節(jié)點(TaskTracker)。
③DataNode:通過本地連接的存儲實現文件系統(tǒng)。每個節(jié)點都會在文件系統(tǒng)中存儲這些塊的一個部分(或完整)副本。
④TaskTracker:執(zhí)行map和reduce子任務。
在每個集群中都只有一個NameNode和JobTracker。但是,可以有多個DataNode和TaskTracker。事實上,復制式文件系統(tǒng)就意味著你要有一個以上的DataNode節(jié)點。出于簡單和性能方面的原因,大多數集群都在專用系統(tǒng)上運行NameNode和JobTracker。另外,為了實現數據的臨近度,最有效的方式是讓另外一臺機器(稱為“從節(jié)點”)來同時運行DataNode和TaskTracker這兩個守護進程。除了上述四個組件外,還需要一個Secondary NameNode來輔助NameNode,可以防治永久丟失狀態(tài)。
3.彈性MapReduce
MapReduce實現是一種可靠、復雜的并行處理框架,用一種高分布式風格進行,它們允許分布式處理的map函數和reduce函數。
①map:最初攝取數據的步驟,它會并行地對原始數據進行處理。主節(jié)點讀取輸入,將其分成小塊,然后將這些小塊分配給各處理節(jié)點。
②reduce:是一個聚合的步驟,它會將所有map函數的輸出手機起來,將其組合在一起從而得出原而難題的結果。
彈性MapReduce是一個Web服務,你可以將MapReduce應用于巨大的數據集上,它比任何廉價服務器可以處理的數據規(guī)模要大得多,數小時內完成PB(100萬GB)級的數據排序,工作人員可以使用它來處理海量的數據。它基于一個托管的Hadoop框架, Hadoop在開始時會將數據集分成一些可并行處理的較小的塊(這就是map功能),然后再將這些中間數據合并到一個最終的解決方案中(即reduce功能)。彈性MapReduce支持一些類似SQL的工具,如Hive和Pig都是依靠Hadoop進行負載分布和橫向伸縮的,以及許多編程語言,其中包括C++、Cascading、Java、Perl、PHP、Python、R和Ruby。
二、基于Hadoop的海量數據存儲模型
Hadoop就是開源的MapReduce,MapReduce也是Hadoop所包括的核心功能,Hadoop這一MapReduce框架要求使用一個共享文件系統(tǒng),Hadoop通常會運行在HDFS之上。
高校相對于云存儲系統(tǒng)是一個用戶,而高校內部有多個部門,相對于云存儲系統(tǒng)的用戶高校來說是一個子用戶。云存儲系統(tǒng)能夠創(chuàng)建、管理、維護高校云存儲用戶;高校云用戶能夠創(chuàng)建、管理、維護各部門子用戶。而子用戶才是真正的終端信息存儲用戶,他們上傳、下載、刪除數據信息。由于我們的這個系統(tǒng)是基于HDFS的,而一個基本的HDFS由一個NameNode和n個DataNode組成,云存儲系統(tǒng)是由多個地方的HDFS存儲設備通過應用軟件集合起來協(xié)同工作,完成外部訪問請求。HDFS存儲業(yè)務以云狀分布在網絡的各個部分,它具有容量大、性能高、可靠性好、協(xié)同優(yōu)良的特點,正是這些特點,完成了高校信息資源高效訪問與存儲。
圖一 基于Hadoop的海量數據存儲模型
在模型設計上,從圖一可以看出: “主”包括NameNode和JobTracker,每個“從”中包括DataNode和TaskTracker。HDFS的工作主要由NameNode和DataNode共同完成,MapReduce的工作主要由JobTracker和TaskTracker共同完成。
模型工作流程:服務控制集群SCC(service Controller Cluster)主要負責對用戶應用請求進行接受,并根據用戶的請求完成應答工作。存儲節(jié)點集群SNC(Storage Node Cluster)主要負責處理數據資源的存取工作。JobTracker可以運行在集群系統(tǒng)中的每一臺計算機上,主要完成管理和調度其它計算機上的TaskTracker。不同的是TaskTracker必須運行在數據存儲節(jié)點的DataNode上,主要完成執(zhí)行任務工作。JobTracker負責將每一個Map和Reduce任務分配給空閑的TaskTracker處理,完成對每個數據文件并行計算處理任務,同時對每個任務運行完成的情況進行監(jiān)控。當其中一個TaskTracker重新執(zhí)行完成這個任務。用戶本身不直接通過Hadoop架構進行讀寫數據,這樣可以避免大量的讀寫操作造成系統(tǒng)擁塞。當用戶通過Hadoop架構把信息傳給SCC后,將直接與存儲節(jié)點進行交互,同時完成數據讀取操作。
三、校園海量數據存儲系統(tǒng)的設計
1.云存儲系統(tǒng)架構設計
系統(tǒng)由四個部分組成,分別是用戶層、系統(tǒng)管理層、數據存儲層和基礎設施層。
①用戶層:即客戶端瀏覽器。用戶通過客戶端向系統(tǒng)發(fā)出請求,系統(tǒng)把信息反饋給客戶端。
②系統(tǒng)管理層:負責應用程序與底層數據操作連接,把用戶需要的數據結果傳回客戶端。主要提供用戶管理、目錄管理、資源管理等服務。
③數據存儲層:Hadoop集群工作在這一層,由MapReduce和HDFS構成,負責數據管理與分配任務,為系統(tǒng)提供分布式計算和存儲。
④基礎設施層:即硬件基礎設施,主要包括磁盤、服務器等。
2.云存儲系統(tǒng)功能設計
本系統(tǒng)目的是為學校提供一個解決高校中海量數據存儲問題的管理平臺考慮到高校中有多個部門,并且不同部門使用的數據內容一般不同,為了更好地對數據進行分類管理,按照不同部門的職能進行了相應子用戶的劃分系統(tǒng)
設計包括子用戶管理、普通用戶管理、管理員管理和平臺管理四個功能模塊。
子用戶模塊:包括創(chuàng)建目錄、查看目錄、文件上傳、文件下載和文件刪除、修改密碼等
普通用戶模塊: 包括創(chuàng)建目錄、查看目錄、文件上傳、文件下載和文件刪除、修改密碼外,還有子用戶管理等功能,只有普通用戶關聯和激活了子用戶,子用戶才能可用
管理員模塊:包括查看目錄、對普通用戶和子用戶的管理等功能,只有關聯和激活用戶后,用戶才可以使用。
平臺管理功能:包括服務器信息管理、故障監(jiān)控和報警管理,為服務器管理提供友好的用戶界面接口,監(jiān)控系統(tǒng)運行中出現的故障,通過設定好的方式報警,以便管理人員及時發(fā)現故障和排除故障,最后記錄下故障以便日后查詢。
3.云存儲系統(tǒng)與傳統(tǒng)存儲比較
本系統(tǒng)是基于Hadoop構建起來的,能夠迅速地、高效地處理海量數據存儲這一難題,滿足當今高校在辦公、教學、科研等各方面的應用需求,具有以下優(yōu)勢。
(1)高可靠性。實現了對信息的分布式存儲分布式處理,信息被切分為多個數據塊分散地存儲在云中的節(jié)點里,實現了多個副本的備份機制,因此可靠性要遠高于傳統(tǒng)的單機甚至是帶有鏡像服務的服務器的存儲方式。
(2)訪問的高效性。通過“心跳檢測”,云中的控制節(jié)點能夠不斷地監(jiān)視節(jié)點的狀態(tài),當發(fā)現存儲節(jié)點失效時,控制節(jié)點能夠將要完成的工作交給那些運行正常的節(jié)點來完成。同時,由于數據在云中是分布式的存儲,能夠有效地分擔存儲和訪問的壓力,這些都使得云存儲具有訪問高效性。
(3)存儲成本低。原先的信息存儲一般使用單一的硬件存儲設備,信息量增加導致購買成本不斷增加,使得資源存儲的成本不斷提高。而云中的存儲設備都是廉價的商業(yè)機,并且可以多次重復利用,跟單一的大容量硬件存儲設備相比較,容量更大,成本更低。
(4)便捷的管理。云存儲能夠在軟件層做到自動容錯而不依賴硬件本身的容錯,而且將信息資源存儲在云中,有利于對資源進行統(tǒng)一的管理,提高資源的管理效率。
四、結束語
基于Hadoop的云存儲是一種動態(tài)可調整、基于互聯網的存儲解決方案,高校用戶可以使用通用的協(xié)議和應用程序接口,經由網絡訪問存儲目標,這種新技術對終端客戶來說很有好處。云存儲可以方便高校用戶增加存儲容量,并且不需要重新購買、安裝和管理任何存儲方面的基礎設施,卻能提供一個完善的備份、容錯數據中心。云存儲的成本低廉和簡易操作性等優(yōu)勢對高校來說具有很強的吸引力,發(fā)展和應用前景。
參考文獻:
[1]Jothy Rosenberg,Arthur Mateos.The Cloud at Your Service. Manning Publications Company, 2010
[2]John Rhoton,Risto Haukioja.Cloud Computing Architected:Solution Design Handbook. Recursive, Limited, 2011
[3]黃曉云.基于HDFS的云存儲服務系統(tǒng)研究[D].大連:大連海事大學,2010:11-14
作者簡介:
陳雅(1986~),女,廣西南寧人,助教,廣西交通職業(yè)技術學院,專職教師。