趙嘉凌
摘 要:為了提升圖書館在大數(shù)據(jù)下的特色數(shù)字資源服務(wù)質(zhì)量,探討了一種更科學(xué)有效的云服務(wù)模式。采用Hadoop平臺(tái),通過對(duì)HDFS涉及的技術(shù)細(xì)節(jié),包括體系結(jié)構(gòu)、并行數(shù)據(jù)處理框架Map-reduce以及分布式數(shù)據(jù)庫(kù)、HBase展開具體分析,結(jié)合廣東省特色文獻(xiàn)資源的實(shí)際情況,探討了HDFS構(gòu)建需求與可行性。提出HDFS關(guān)鍵技術(shù)應(yīng)用于廣東省特色數(shù)字資源云服務(wù)的具體方案,但實(shí)踐效果還有待進(jìn)一步驗(yàn)證。
關(guān)鍵詞:HDFS;云存儲(chǔ);數(shù)字資源;云服務(wù)
DOI:10.11907/rjdk.172718
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)005-0173-03
Abstract:To improve the quality of library digital resource service in the trend of big data development, this paper discusses a more scientific and effective cloud service mode.The Hadoop platform is adopted to analyze the technical details of HDFS, including architecture, parallel data processing framework Map-reduce and distributed database H Base. Then based on the actual situation of the characteristic literature resources in Guangdong province, the requirement and feasibility of HDFS construction are discussed.The key technologies of HDFS are applied to the specific scheme of digital resource cloud services in Guangdong province. The practical effects need to be further verified.
Key Words:HDFS; cloud storage; digital resources; cloud service
0 引言
隨著大數(shù)據(jù)環(huán)境的日益成熟,圖書館特色文獻(xiàn)資源將向海量圖書館數(shù)字資源方向發(fā)展。如廣東省特色文獻(xiàn)資源包括所有反映廣東省特色文化的研究資料,與廣東省有關(guān)人士的著述、日記、信函、傳記、字畫、回憶錄、著作手稿、聲像資料等,以及廣東省地方出版物。其中,廣東省內(nèi)區(qū)域的特色資源數(shù)據(jù)庫(kù)已經(jīng)達(dá)到了近千個(gè),涵蓋了高校、社會(huì)科學(xué)研究文獻(xiàn)機(jī)構(gòu)、公共圖書館等重要文獻(xiàn)與服務(wù)單位近百家,未來將會(huì)有具有區(qū)域特色資源的單位涌現(xiàn)出來。在當(dāng)前大數(shù)據(jù)社會(huì)環(huán)境日益成熟的背景下,這些海量的特色文獻(xiàn)資源對(duì)現(xiàn)有存儲(chǔ)與管理系統(tǒng)提出了嚴(yán)峻挑戰(zhàn)。如何解決文獻(xiàn)資源海量劇增與獨(dú)立文獻(xiàn)機(jī)構(gòu)存儲(chǔ)能力不足的矛盾,成為業(yè)界探討的一個(gè)新方向[1]。
近年來,針對(duì)大數(shù)據(jù)的處理應(yīng)用比較廣泛的是Hadoop平臺(tái),該平臺(tái)的重要模塊HDFS,Hadoop的分布式文件存儲(chǔ)系統(tǒng),通過把傳統(tǒng)的單一存儲(chǔ)服務(wù)器按比例增加到成百上千數(shù)量級(jí),形成存儲(chǔ)服務(wù)器集群,而在集群里每一臺(tái)存儲(chǔ)服務(wù)器都能提供本地資源的上傳與存儲(chǔ)服務(wù)。Map-reduce作為Hadoop的一個(gè)重要構(gòu)件,其可為HDFS分布式文件系統(tǒng)提供一個(gè)可擴(kuò)展的平行數(shù)據(jù)處理框架。綜合而言,Hadoop的特性決定其能夠滿足用戶對(duì)海量數(shù)字資源的存儲(chǔ)需求[2]。
1 HDFS及其關(guān)鍵技術(shù)分析
1.1 HDFS的特點(diǎn)
HDFS整體架構(gòu)的優(yōu)越性能體現(xiàn)在功能設(shè)計(jì)上,具體包括:
(1)高度容錯(cuò)性。HDFS集群擁有成千上萬的服務(wù)器,隨時(shí)都會(huì)產(chǎn)生系統(tǒng)故障,即使是常態(tài)化的系統(tǒng)故障也不會(huì)影響系統(tǒng)的可靠性,系統(tǒng)會(huì)在任一服務(wù)器出現(xiàn)故障時(shí),以最快的速度自動(dòng)恢復(fù)所有數(shù)據(jù)。HDFS架構(gòu)的核心目標(biāo)是周期性地自動(dòng)檢查該文件系統(tǒng)的所有設(shè)備,并對(duì)因出現(xiàn)故障而失效的設(shè)備進(jìn)行及時(shí)的數(shù)據(jù)恢復(fù)處理[3]。
(2)流式數(shù)據(jù)訪問。HDFS的設(shè)計(jì)本來就是建立在高吞吐量數(shù)據(jù)流式訪問的基礎(chǔ)上,并非交互式的數(shù)據(jù)訪問,因而可以大批量地訪問海量數(shù)據(jù)集。
(3)適合大規(guī)模數(shù)據(jù)。對(duì)于HDFS而言,其文件大小的數(shù)量級(jí)在GB字節(jié)到TB字節(jié)之間,并且運(yùn)行這些文件的應(yīng)用程序同時(shí)也擁有了海量數(shù)據(jù)集。HDFS支持海量規(guī)模的文件存儲(chǔ),HDFS文件系統(tǒng)建構(gòu)在成千上萬的計(jì)算機(jī)集群系統(tǒng)之上,而每臺(tái)計(jì)算機(jī)作為一個(gè)節(jié)點(diǎn)存在。
(4)簡(jiǎn)單文件讀寫模型。文件從創(chuàng)建到寫入數(shù)據(jù),到關(guān)閉,完成“寫”操作之后便不再對(duì)該文件進(jìn)行修改。HDFS對(duì)文件的讀寫過程采用“一次寫入、多次讀取”的方式,實(shí)現(xiàn)了最大限度的“讀寫”簡(jiǎn)化,也解決了數(shù)據(jù)不一致問題。
(5)移動(dòng)計(jì)算比移動(dòng)數(shù)據(jù)經(jīng)濟(jì)得多。對(duì)于海量的特色資源數(shù)據(jù)集而言,其存儲(chǔ)位置距離數(shù)據(jù)處理程序越近,數(shù)據(jù)處理的效率就越高,該方法能有效避免海量數(shù)據(jù)集大規(guī)模已處理造成的網(wǎng)絡(luò)阻塞,最大限度地提升Hadoop系統(tǒng)數(shù)據(jù)吞吐量。HDFS將數(shù)據(jù)處理程序遷移到待處理數(shù)據(jù)最近的地方,提供相應(yīng)的規(guī)范化API(接口)。
(6)異構(gòu)軟硬件平臺(tái)兼容性。HDFS源程序采用的編程語言是Java,其決定了該系統(tǒng)本身就具有高可擴(kuò)展性,在實(shí)際應(yīng)用中,可部署在不同類型的同構(gòu)或異構(gòu)系統(tǒng)上,具有跨平臺(tái)特性,方便大規(guī)模HDFS文件數(shù)據(jù)集在不同平臺(tái)上遷移[4]。
1.2 HDFS體系架構(gòu)
HDFS是一種分布式、具有可擴(kuò)展性的文件存儲(chǔ)系統(tǒng),可實(shí)現(xiàn)海量文件資源、跨實(shí)體數(shù)據(jù)庫(kù)存儲(chǔ)。存儲(chǔ)于HDFS的文件以“數(shù)據(jù)塊”形式存在,默認(rèn)數(shù)據(jù)塊的大小為64MB。即存儲(chǔ)于HDFS的文件,會(huì)按照一塊64MB大小平均切割為若干塊,若最末一塊小于64MB,則其存儲(chǔ)空間未滿。HDFS體系架構(gòu)如圖1所示,其是HDFS集群典型的體系結(jié)構(gòu),包含一個(gè)名稱節(jié)點(diǎn)、一個(gè)輔助名稱節(jié)點(diǎn)和多個(gè)數(shù)據(jù)節(jié)點(diǎn)。
HDFS將所存文件的元數(shù)據(jù)存儲(chǔ)于名稱節(jié)點(diǎn)上。該元數(shù)據(jù)包括所存文件的文件名、存儲(chǔ)目錄、用戶訪問權(quán)限等相關(guān)信息。HDFS分布式文件系統(tǒng)是基于“主/從”體系的,即單一的主節(jié)點(diǎn)(名稱節(jié)點(diǎn))負(fù)責(zé)維護(hù)整個(gè)文件系統(tǒng)的所有文件。該名稱節(jié)點(diǎn)的具體職責(zé)包括負(fù)責(zé)管理HDFS的命名空間,以及系統(tǒng)性管理用戶對(duì)文件資源的訪問權(quán)限。名稱節(jié)點(diǎn)將數(shù)據(jù)塊分配給數(shù)據(jù)節(jié)點(diǎn),并存儲(chǔ)“數(shù)據(jù)塊—數(shù)據(jù)節(jié)點(diǎn)”的映射信息。名稱節(jié)點(diǎn)會(huì)跟蹤監(jiān)控哪些數(shù)據(jù)塊需要被復(fù)制,并在必要情況下啟動(dòng)復(fù)制程序。同一文件多個(gè)復(fù)本將有效提升該文件系統(tǒng)對(duì)于數(shù)據(jù)保護(hù)以及數(shù)據(jù)處理的整體性能。
數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)應(yīng)用程序的數(shù)據(jù),以及在用戶提出對(duì)文件資源的讀寫請(qǐng)求時(shí),作出響應(yīng)并提供相應(yīng)服務(wù)。與此同時(shí),數(shù)據(jù)節(jié)點(diǎn)也在名稱節(jié)點(diǎn)的指令下執(zhí)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制操作[5]。
數(shù)據(jù)節(jié)點(diǎn)周期性地對(duì)名稱節(jié)點(diǎn)發(fā)送心跳信息以及數(shù)據(jù)塊的狀態(tài)報(bào)告。收到數(shù)據(jù)塊的心跳信息意味著數(shù)據(jù)塊所在數(shù)據(jù)節(jié)點(diǎn)運(yùn)行情況正常。以最近一段時(shí)間周期為準(zhǔn),名稱節(jié)點(diǎn)把未接收到心跳信息的所在數(shù)據(jù)節(jié)點(diǎn)標(biāo)記為“無效”,并且不會(huì)分配“輸入/輸出”任務(wù)給該數(shù)據(jù)節(jié)點(diǎn)。數(shù)據(jù)塊狀態(tài)報(bào)告是數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點(diǎn)中所有數(shù)據(jù)塊的列表,主要功能是提供給名稱節(jié)點(diǎn)。關(guān)于數(shù)據(jù)塊最新位置信息參考,即某一數(shù)據(jù)塊具體位于整個(gè)集群系統(tǒng)的哪個(gè)位置。名稱節(jié)點(diǎn)根據(jù)最新數(shù)據(jù)塊狀態(tài)報(bào)告,構(gòu)建并維護(hù)最新元數(shù)據(jù)[6]。
1.3 并行數(shù)據(jù)處理框架——Map-reduce
Map-reduce是用于跨Hadoop集群平行處理大數(shù)據(jù)集的一種框架。與HDFS近似,該Map-reduce框架也基于“主—從”模式:①M(fèi)ap階段,主節(jié)點(diǎn)用于接收待處理的輸入數(shù)據(jù),輸入數(shù)據(jù)被切割成更小的數(shù)據(jù)塊;②分配給大量的從節(jié)點(diǎn)對(duì)其進(jìn)行平行處理;③進(jìn)入Reduce階段,從節(jié)點(diǎn)把運(yùn)算結(jié)果返回給主節(jié)點(diǎn),由主節(jié)點(diǎn)進(jìn)行結(jié)果匯總,并輸出最終結(jié)果。其最大的優(yōu)點(diǎn)在于對(duì)用戶和編程人員而言,后臺(tái)所有復(fù)雜的數(shù)據(jù)并行處理都是透明的,用戶即使沒有任何關(guān)于分布式與并行系統(tǒng)的操作經(jīng)驗(yàn),也可以從HDFS分布式系統(tǒng)獲取所需的特定資源。
1.4 分布式數(shù)據(jù)庫(kù)——HBase
HBase數(shù)據(jù)庫(kù)與以往的傳統(tǒng)數(shù)據(jù)庫(kù)基于表結(jié)構(gòu)與行模式的存儲(chǔ)方式不同,HBase數(shù)據(jù)庫(kù)是基于列模式的非關(guān)系型數(shù)據(jù)庫(kù)。傳統(tǒng)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)不會(huì)因?yàn)閿?shù)據(jù)量的增大而被分為多個(gè)文件存儲(chǔ),但是HBase數(shù)據(jù)庫(kù)列存儲(chǔ)模式使其每個(gè)列族隨著數(shù)據(jù)量的增大被分為幾個(gè)文件保存,不同列族的文件也被存儲(chǔ)到不同的文件中。HBase數(shù)據(jù)庫(kù)這種特殊的存儲(chǔ)模式,非常適合應(yīng)用于分布式文件存儲(chǔ)系統(tǒng),HDFS[7]的操作流程如圖2所示。
2 HDFS構(gòu)建需求與可行性
2.1 HDFS構(gòu)建需求
廣東省圖書館特色數(shù)字資源的HDFS系統(tǒng)構(gòu)建目標(biāo)是為廣東省內(nèi)各高校圖書館、省市級(jí)圖書館提供海量數(shù)據(jù)存儲(chǔ)服務(wù),通過將海量數(shù)據(jù)存儲(chǔ)于分布式文件系統(tǒng),減輕對(duì)存儲(chǔ)硬件的依賴。
HDFS系統(tǒng)構(gòu)建的范疇與基本技術(shù)如下:
(1)HDFS功能是為多個(gè)“租戶”提供資源存儲(chǔ)服務(wù)。通過遠(yuǎn)程連接,任何個(gè)人都可以將特色文獻(xiàn)資源上傳到數(shù)據(jù)中心,即HDFS分布式文件系統(tǒng)。
(2)實(shí)現(xiàn)多實(shí)例訪問。將廣東省范圍內(nèi)的海量特色文獻(xiàn)資源部署在多臺(tái)虛擬機(jī)上,實(shí)現(xiàn)集群存儲(chǔ)。
(3)可實(shí)現(xiàn)數(shù)據(jù)拆分。通過將HDFS集群中每臺(tái)虛擬機(jī)掛載一個(gè)數(shù)據(jù)庫(kù)實(shí)例,實(shí)現(xiàn)數(shù)據(jù)的有效拆分[8]。
2.2 HDFS存儲(chǔ)可行性分析
廣東省內(nèi)特色文獻(xiàn)資源分別有高校圖書館、情報(bào)機(jī)構(gòu)的特色館藏資源、各級(jí)圖書館自建的特色文獻(xiàn)資源、各級(jí)社科類的數(shù)據(jù)庫(kù)資源,還有以萬方、維普、知網(wǎng)、CALIS為主的專業(yè)外購(gòu)文獻(xiàn)資源。針對(duì)資源種類多、資源數(shù)量龐大及資源增長(zhǎng)速度快等特點(diǎn),在廣東省范圍內(nèi),對(duì)特色文獻(xiàn)資源,每時(shí)每刻都有龐大的反復(fù)性讀取與數(shù)據(jù)分析需求。數(shù)據(jù)讀取頻率大于數(shù)據(jù)更新頻率,用戶隨時(shí)需要通過不同的終端設(shè)備,比如筆記本電腦、PDA、手機(jī)等,獲取所需的特色文獻(xiàn),這種讀取頻次是傳統(tǒng)數(shù)據(jù)庫(kù)無法承受的,而HDFS在存儲(chǔ)海量數(shù)據(jù)方面的優(yōu)越性十分明顯。
3 HDFS關(guān)鍵技術(shù)應(yīng)用
3.1 HBase應(yīng)用
應(yīng)用在Hadoop平臺(tái)上的廣東省海量特色資源文件,其存儲(chǔ)采用多復(fù)本方式,即每個(gè)原始文件復(fù)制了若干復(fù)本,該復(fù)本分散于若干主機(jī)及網(wǎng)絡(luò)中,以防止單一機(jī)器失效或者網(wǎng)絡(luò)故障造成數(shù)據(jù)無法讀寫。
如2.1提到的HDFS的特征是采用流式數(shù)據(jù)訪問,以及“一次寫入、多次讀取”的讀寫方式,在保證系統(tǒng)高容錯(cuò)性的同時(shí),也最大限度保證了數(shù)據(jù)的一致性。面對(duì)HDFS分布式文件存儲(chǔ)系統(tǒng)的數(shù)據(jù)延時(shí)訪問問題,通過應(yīng)用HBase數(shù)據(jù)庫(kù)可以有效解決,實(shí)踐證明HBase能夠有效提升數(shù)據(jù)存取訪問速度。
HBase通過DFSClient與負(fù)責(zé)實(shí)際數(shù)據(jù)存儲(chǔ)的HDFS分布式存儲(chǔ)系統(tǒng)進(jìn)行“對(duì)話”,它充當(dāng)著HDFS客戶端的角色。因此HBase更方便地集中管理非結(jié)構(gòu)化與結(jié)構(gòu)化數(shù)據(jù)及對(duì)該數(shù)據(jù)的訪問。如2.3所述,HDFS與并行數(shù)據(jù)處理框架——Map-reduce聯(lián)系緊密,進(jìn)一步方便用戶通過Map-reduce技術(shù),對(duì)HBase數(shù)據(jù)進(jìn)行并行運(yùn)算并對(duì)結(jié)果進(jìn)行處理[9]。
3.2 MapReduce的應(yīng)用
基于Hadoop的海量特色文獻(xiàn)資源云服務(wù),充分利用海量數(shù)據(jù)的處理與分析優(yōu)勢(shì),可以通過采用Map-reduce技術(shù),對(duì)用戶點(diǎn)擊資源歷史、瀏覽資源歷史、信息反饋等真實(shí)地展現(xiàn)出使用特色資源的用戶偏好、需求意愿等相關(guān)信息,通過分析,可以準(zhǔn)確知道相關(guān)服務(wù)的用戶需求,以及未來發(fā)展趨勢(shì),以便對(duì)特色文獻(xiàn)資源云服務(wù)能力與水平作出更科學(xué)合理的決策,包括目標(biāo)用戶的服務(wù)細(xì)分、精準(zhǔn)服務(wù)等。基于Hadoop的海量特色文獻(xiàn)資源云服務(wù)主要為有特色文獻(xiàn)研究需求的圖書館用戶以及相關(guān)研究機(jī)構(gòu)提供文獻(xiàn)查詢、數(shù)據(jù)分析與決策服務(wù),同時(shí)處理海量特色文獻(xiàn)資源結(jié)構(gòu)化、半結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù),使資源在用戶、資源持有者、資源開發(fā)者之間都發(fā)揮最好的效益[10]。
4 結(jié)語
基于Hadoop的圖書館特色資源云服務(wù)對(duì)象主要是廣東省高校用戶及對(duì)特色資源有研究需要的用戶。隨著大數(shù)據(jù)環(huán)境的日漸成熟,傳統(tǒng)服務(wù)系統(tǒng)的支撐技術(shù)已經(jīng)不能滿足大數(shù)據(jù)環(huán)境需求,為了盡早適應(yīng)云服務(wù),本文在對(duì)云平臺(tái)關(guān)鍵技術(shù)進(jìn)行研究的基礎(chǔ)上,提出了將HDFS關(guān)鍵技術(shù)應(yīng)用于廣東省圖書館特色數(shù)字資源服務(wù)Hadoop平臺(tái)的具體方案,但實(shí)踐效果還有待進(jìn)一步驗(yàn)證。
參考文獻(xiàn):
[1] 鄭瑋.托卡馬克裝置控制系統(tǒng)設(shè)計(jì)與技術(shù)研究[D].武漢:華中科技大學(xué),2014.
[2] 翟永東.Hadoop分布式文件系統(tǒng)(HDFS)可靠性的研究與優(yōu)化[D].武漢:華中科技大學(xué),2011.
[3] 李彬.基于MapReduce編程模型的航空日志分析研究[D].成都:成都理工大學(xué),2012.
[4] 劉曉.大數(shù)據(jù)環(huán)境下分布式鍵值系統(tǒng)的架構(gòu)研究[J].中國(guó)金融電腦,2015(6):72-79.
[5] 高薊超.Hadoop平臺(tái)存儲(chǔ)策略的研究與優(yōu)化[D].北京:北京交通大學(xué),2012.
[6] 趙婧.一種適用于P2P-VoD業(yè)務(wù)的分布式存儲(chǔ)系統(tǒng)[D].北京:北京郵電大學(xué),2012.
[7] 洪沙,楊深遠(yuǎn).云計(jì)算關(guān)鍵技術(shù)及基于Hadoop的云計(jì)算模型研究[J].軟件導(dǎo)刊,2010(9):9-11.
[8] 彭國(guó)慶,周冠宇.云計(jì)算分層體系結(jié)構(gòu)研究[J].移動(dòng)通信,2010(16):54-58.
[9] 許春玲,張廣泉.分布式文件系統(tǒng)Hadoop HDFS與傳統(tǒng)文件系統(tǒng)Linux FS的比較與分析[J].蘇州大學(xué)學(xué)報(bào):工科版,2010(4):5-9+19.
[10] 林清瀅.基于Hadoop的云計(jì)算模型[J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2010(7):114-116+121.
(責(zé)任編輯:劉亭亭)