邱芬 朱宜炳
【摘 要】隨著移動互聯網的發展,高校數字圖書館建設開始進入“云”時代。傳統的數字圖書館采用關系數據庫和普通文件系統存儲電子書籍,存在著諸多不便。如何將其平滑過渡到云圖書館是一個值得研究的課題。本文分析了傳統數字圖書館面臨的問題,提出了一種基于HBase技術的升級方案,該方案屏蔽了NoSQL與SQL數據庫之間的差異,無需對原有數字圖書館系統做二次開發,即可訪問Hadoop系統中存儲的數字資源。
【關鍵詞】HBase;云圖書館;應用研究
1 高校數字圖書館建設現狀
隨著移動互聯網和智能設備的蓬勃發展,隨時隨地進行無紙化學習變得越來越重要,各大高校開始著手于數字圖書館建設以順應這一趨勢[1]。由于師生對數字圖書需求的日益多樣化,以及數字圖書的數據量和數據種類呈指數增長,圖書存儲對服務器空間的需求也急劇膨脹,非結構化數據的存儲需求突出[2]。同時師生對數字圖書服務的及時性要求越來越高,使得高效存儲和管理豐富的數字圖書對資源和資金的消耗成為高校圖書館沉重的負擔[4]。
由于歷史原因,很多高校的數字圖書館系統缺乏頂層設計和統一規劃,主要采用Sybase、DB2和Oracle等關系數據庫存儲數字圖書。隨著數字圖書數量快速增加,全部采用關系數據庫存儲其成本較高,易用性和時效性也得不到保障。而且相當數量的數字圖書體積較大,并不適合存進關系數據庫,如果采用文件式存儲,數據的安全性、靈活性和擴展性都會受到極大的限制,也又不利于數字圖書的備份、檢索和統計[3]。而且,有些數字圖書業務獨占一個數據庫,數據冗余度高、共享性差。因此,傳統的數字圖書存儲方案日益滿足不了高校對數字圖書服務的需求,因此進行海量數字圖書存儲方案的研究是十分有必要的[5]。
2 云圖書館技術研究
基于Hadoop或Spark的云計算方案對海量數據進行云存儲是當前計算機領域的研究熱點。云計算是一種按需交付和使用信息服務的模式,它是服務器的橫向擴展。而云存儲則是云計算的基礎,云存儲通過計算機網格和分布式協同處理系統將網絡中大量不同類型的存儲設備集接,作為一個服務體系對外提供接口供各種客戶端訪問,這種存儲對用戶是透明的。對于高校的數字圖書館而言,不僅要能夠存儲海量圖書數據,還要能對數據進行高速I/O, 由于Hadoop在云計算和云存儲領域具有很高的人氣,很多商業公司采用Hadoop軟件構建自己的私有云,因此本文選擇Hadoop開源框架解決種需求[6]。
首先,Hadoop以一種可伸縮且高效的方式處理圖書文檔。由于HDFS具有心跳算法、數據塊冗余、數據流式訪問等機制,自動維護著數字圖書的多個副本,因此具有較高的容錯性,可以保障數字圖書的安全性和完整性,非常適合圖書館信息化建設對文檔的分布式存儲需求。其次,Map/Reduce框架將對數字圖書的CRUD訪問分解為并行的Map任務和Reduce任務。兩類任務都可以運行在多臺服務器上,從而可以輕易處理PB級圖書數據。
HBase是Apache基金會Hadoop項目的子項目,是一個適合存儲非結構化數據的云數據庫,與一般的關系數據庫不同,HBase以表的形式存儲數據,但是其基于列而不是基于行的模式。盡管每個HBase表由行和列組成,但每列只屬于一個特定的用戶。每個元素在底層HDFS系統中保存了多個版本,由時間戳來標識。行并作為檢索記錄的主鍵,也是數據在表中的唯一標識。HBase在HDFS之上提供了與Google公司BigTable類似的能力,和BigTable提供的分布式數據存儲一樣,HBase也實現了基于云存儲的具有高性能、高可靠、列存儲、可伸縮的分布式數據庫系統,可用于存儲用戶的非結構化數據[3]。
3 本方案技術路線
本文采用研究學習與應用開發相結合的方式,首先深入研究了Hadoop的系統架構和HDFS的運行原理,接著對Hadoop數據文件的讀寫機制和Hadoop性能調優進行了研究和分析,基本研究思想是:首先使用Hadoop架構中的HDFS實現數字圖書云存儲系統,然后在HDFS基礎上使用HBase技術構建一個分布式的、面向列的云數據庫,最后使用開源的Phoenix引擎將針對圖書數據的SQL訪問轉化為針對HBase的NoSQL調用,從而避免大規模修改原有的數字圖書館系統。本方案的實現步驟如下:
(1)在圖書館服務器集群上構建HDFS云存儲系統。傳統關系型數據庫在數字圖書館建設中一直扮演著圖書存儲的重要角色。由于數字圖書數據一旦寫入很少再修改,也較少有事務要求,Hadoop的設計建立在更多地響應“一次寫入、多次讀取”的基礎上,數據集一旦生成就較少修改,然后自動復制到不同的存儲節點中,不僅提高了可靠性,也提高了系統帶寬,故使用Hadoop來處理數字圖書尤為合適[3]。
(2)使用HBase技術在HDFS云存儲系統之上構建分布式云數據庫。HDFS存儲系統不適合處理低延遲的用戶請求,也難以高效管理海量小文件。HBase可以彌補這兩條不足。HBase通過使用緩存和多Master設計來降低來自Client的數據訪問壓力,以減少延時;同時利用MapFile、SequenceFile等方式對小文件進行壓縮打包,讓HDFS存儲系統能高效地處理好小體積的數字圖書。
(3)使用開源的Phoenix引擎將針對云數據庫的SQL訪問轉化為NoSQL訪問。Phoenix引擎出自Salesforce公司,是一個實現SQL到NoSQL轉換的項目,其可以高效地通過SQL語句操縱HBase或者MangoDB數據庫,用戶通過JDBC接口與其進行交互,就像訪問傳統的關系數據庫一樣。
(4)將原有數字圖書館系統的關系數據庫訪問地址映射為新的云數據庫訪問地址。很多高校的數字圖書館建設在軟硬件上已經投入了大量的資金,在不影響原系統運行的前提下可以平滑實現關系數據庫到云數據庫的過渡。
4 總結
本方案如果能夠順利實施,將有利于提高圖書館對信息資產的管理水平,從而為廣大師生提供更加便利的在線學習服務。通過對HBase和HDFS等技術的研究,結合圖書館對海量數字圖書存儲的實際需求,設計的方案具有以下優點:(1)存儲容量動態可擴展。系統中大量服務器協同工作,可以在不影響系統運行的前提下動態擴展,滿足數字圖書存儲規模日益增長的需要。(2)信息資源虛擬化。基于HBase的云數據庫對于使用者是透明的,用戶無需關心數據如何存儲,原有MIS系統也只需要做少量修改。(3)高可靠高。Hadoop的多副本和快速恢復等機制可以充分保障數據的可靠性。而且HBase和Phoenix引擎可以部署在普通服務器上,從而為圖書館部門節省成本的同時提高設備使用效率。因此本方案對數字化校園建設中的數據存儲和服務器使用規劃都具有一定的參考價值。
【參考文獻】
[1]朱錦益.大數據時代數字化圖書館建設[J].圖書檔案,2016,2.
[2]林志生.云計算技術在高校圖書館管理中的應用[J].產業與經濟論壇,2016,15(6).
[3]王慶波,金涬,何樂等.虛擬化與云計算[M].電子工業出版社,2012:110-180.
[4]劉安定.云環境下圖書館信息資源建設的機遇[J].赤峰學院學報,2016,3.
[5]張興旺.云圖書館基礎理論研究與進展[J].圖書館論壇,2012,9.
[6]高新成.基于Hadoop的校園云存儲系統的研究[J].陜西理工學院學報,2012,8.
[責任編輯:朱麗娜]