●張 艷,潘吳斌
(南京信息工程大學 a.圖書館;b.計算機與軟件學院,南京 210044)
數字圖書館在經歷了互聯網時代、Web時代、網格時代、Web2.O時代,己經開始進入云計算時代。云計算是提供海量數據存儲和大規模數據處理的分布式并行技術,它作為一種適合圖書館應用的架構模式,可以將分散的數字信息資源整合在一起,實現數字圖書館的集約化,為數字資源的共建共享提供了新的解決辦法。基于分布式計算的新型服務計算模式—云計算,完全可以滿足數字圖書館建設的需要,將會成為未來數字圖書館發展的新趨勢。
Library TechnologyGuide1 月期中 MarshallBreeding[1]做了2012年圖書館自動化產業的預測,2012將是接下來十年新一輪自動化平臺轉換的開始。尤其對大學圖書館,將是新一代圖書館自動化平臺的轉折年。國際上,圖書館界紛紛采用云計算技術來減少成本和提高效率,比如,DuraSpace,Fedora Commons,LOCKSS,Library of Congress等機構都相繼給出了數字圖書館的云存儲方案,而針對數字圖書館的云檢索系統是少之又少。
OCLC(聯機計算機圖書館中心)創建的“Web級協作型圖書館管理服務”被公認為是圖書館領域第一個云服務,該服務的目的是降低圖書館費用,促進共同發展和提升用戶體驗。[2]其中被視作OCLC核心的是書目數據庫WorldCat.org,匯集了全球多個國家各種類型文獻的書目記錄達240638724種,館藏數量達1755480247條,[3]支持對圖書資料、圖書館、列表和聯絡人等資源的檢索,提供多字段檢索,并可對年份、用戶類型、文獻格式等進行限定,提供多種檢索結果處理和分析功能,從而實現全世界不同圖書館和機構資源的一站式檢索,幫助用戶找到最需要的資源。
云檢索是從云計算延伸和發展起來的,以服務的形式向用戶提供信息檢索和訪問。云計算包括了互聯網上各種服務形式的應用以及數據中心提供這些服務的軟硬件設施,互聯網上的應用服務,即SaaS軟件即服務,而數據中心的軟硬件設施即所謂的云。從用戶的角度來說,云檢索就是利用云計算所提供的服務模式,設計一個基于云計算平臺的檢索系統,在豐富檢索資源、優化檢索模式和改善檢索效果的基礎上,獲得更優的檢索結果。從系統實現來看,云檢索是一種服務的交付,它將檢索對象分散在大量的對用戶透明的節點上,利用海量的計算能力,隱藏具體的實現細節,把檢索內容細化為一個個相互獨立的云標簽,并按相關度聚集在一起,將最終結果通過高速網絡呈現給用戶。一個典型的云檢索系統架構包括一個處理節點和大量的元數據存儲節點及文件系統的存儲節點。
與傳統的檢索系統不同的是,云檢索系統是經過云計算理念發展而來的,即實現每個細節的虛擬化和共享,把多個個體整合為一個具有強大檢索能力的檢索系統。比如,各個圖書館的檢索系統可以整合成一個巨大的信息檢索平臺,實現區域或行業整合的圖書館信息檢索平臺,為用戶提供全面、專業的檢索服務。
圖書館檢索系統是圖書館信息化建設的重要部分。傳統的圖書館檢索系統可以支撐一定的系統應用,但隨著圖書館書目總量的迅速增長和對檢索系統服務要求的提升,傳統的檢索系統一般只提供基本的檢索服務,用戶更高的檢索服務體驗得不到滿足,其中比較突出的問題有以下幾方面。(1)數據庫問題。圖書館書目信息的種類和數量繁多,由于不同數據庫之間往往具有不同的檢索系統和使用方式,用戶需要應用不同的檢索方式,使得圖書館檢索系統的使用較為繁瑣。(2)檢索系統孤立。每個圖書館的檢索系統相互獨立,使得大部分檢索系統中的圖書信息冗余和不全面,應盡快開發圖書館統一檢索系統。(3)缺乏智能型。用戶查找時需要輸入準確的檢索詞才能檢索到,容易產生遺漏,多數的檢索系統缺少必要的智能檢索。(4)安全可靠性差、IT成本高。由于圖書館信息技術部門畢竟不是專業的IT部門,病毒和黑客防護能力一般,數據容易被竊取和毀壞;而且軟硬件維護及維護人員的成本相對較高,對于一般圖書館也是一筆不小的開支。
圖書館的書目信息越來越大,導致檢索系統響應越來越慢,而且由于檢索系統缺乏智能型,檢索結果不能令人滿意。云檢索系統提供海量的存儲和計算能力,為巨大的書目信息存儲和檢索所需的計算提供了廣闊的空間,為圖書館日趨嚴峻的信息檢索問題找到了解決途徑。圖書館應用云檢索系統具有如下優勢。(1)一站式檢索。提供統一便捷的檢索方式,進行快速的跨庫和跨資源檢索,以統一的形式呈現相關度排序的結果;還整合其他服務,包括館際互借、文獻傳遞等。(2)個性化服務。為讀者建立個人賬戶,允許讀者創建自定義的檢索清單,為讀者提供一定的空間,供其保存檢索歷史等其他標簽信息。(3)網絡數據庫。引進網絡數據庫豐富圖書館文獻信息的內容和形式,緊密連接各數據庫與檢索系統,構成一個有機的整體,便捷地進行信息檢索。(4)智能檢索。使檢索系統具有強大的“智能性”,如通過統計借閱和查詢記錄、檢索詞的同義轉換等。
構建圖書館的云檢索系統,首先要建立一個適合圖書館信息檢索的分布式檢索架構,根據圖書館信息檢索的需求,我們借助技術較為成熟的開源云計算平臺 Hadoop,[4]構建一個基于 HDFS、MapReduce、Hive相結合的圖書館云檢索架構。Hadoop是開源組織A-pache的一個具有高可靠性和良好擴展性的分布式系統;分布式文件系統HDFS能夠高容錯、可靠地存儲海量數據;MapReduce[5]是一個分布式計算模型,根據檢索要求對書目信息進行分布式并行計算;Hive是一個分布式的倉庫,用于保存海量的書目信息。圖書館云檢索系統一般分為四層,分別為訪問層、應用接口層、基礎管理層和存儲層(如圖1所示)。

圖1 圖書館云檢索系統模型結構
(1)訪問層。圖書館用戶通過公用應用接口登錄圖書館云檢索系統,讀者享受各種信息檢索服務,而各個圖書館向檢索系統中加載書目信息。(2)應用接口層。應用接口層是云檢索系統最靈活的組件,圖書館的云服務提供商根據實際業務類型提供不同的應用服務,比如圖書館信息檢索平臺,各種web服務,還提供公共的API供開發者來擴展云檢索平臺。(3)基礎管理層。基礎管理層是云存儲最核心的組件,基礎管理層通過分布式文件系統HDFS、分布式計算模型MapReduce和分布式數據倉庫Hive等技術,實現云檢索系統中設備之間的協同工作,對外提供統一的服務,并提供強大的信息檢索能力。(4)存儲層。存儲層是系統最基礎的組件,可以是NAS和iSCSI等存儲設備,云檢索系統中的元數據存儲設備和文件系統存儲設備往往數量龐大且分布在不同地域。存儲設備由一個統一的設備管理系統管理,采用分布式文件系統Hadoop實現存儲設備的邏輯虛擬化管理,以及硬件設備的狀態監控和故障維護等。
通過在Hadoop平臺上搭建HDFS、MapReduce和Hive系統來實現圖書館的書目信息檢索。其中,Hive負責書目信息關鍵字的存儲和統計分析,MapReduce負責處理實際的統計分析計算,HDFS主要負責實際數據的存儲,而Hadoop負責設備的虛擬化與管理。基于Hadoop的圖書館云檢索系統如圖2所示。

圖2 基于Hadoop的圖書館云檢索系統示意圖
圖書館的云檢索系統中HDFS架構如圖3所示,并對其進行了具體的描述如下。(1)控制節點可以看成HDFS中的管理者,負責管理文件系統的命名空間、集群配置和存儲塊的復制等。控制節點將文件系統的元數據存儲在內存中,元數據主要包括文件信息、文件對應文件塊的信息和文件塊在數據節點的信息等。(2)數據節點是文件存儲的基本組成部分,它將以塊文件存儲到本地文件系統,保存塊文件的元數據,并周期性地將所有存在的塊信息發送給控制節點。(3)客戶的主要功能是獲取分布式文件系統HDFS中的文件。

圖3 HDFS架構
圖書館的云檢索系統中MapReduce架構[6]如圖4所示,作業節點全權負責調度作業的運行。任務節點負責具體任務的執行,作業被分成多個切片,任務節點負責對輸入切片數據進行映射和規約計算。客戶就是向MapReduce提交檢索查詢的計算作業。HDFS提供存儲功能,用于向所有的節點共享作業所需的資源。

圖4 MapReduce架構
圖書館的云檢索系統中Hive架構[7]如圖5所示,并對其功能進行了具體的描述如下。(1)解析器用于分析查詢,在不同的查詢塊和查詢表達式上進行語義分析,并最終通過從元數據存儲節點中查找表與分區的元數據生成執行計劃。(2)元數據存儲節點存儲數據倉庫里所有的各種表與分區的結構化信息,包括列與列類型信息,序列化器與反序列化器,從而能夠讀寫HDFS中的數據。(3)執行器執行由解析器創建的執行計劃。此計劃是一個關于階段的有向無環圖。執行引擎管理不同階段的依賴關系,并在合適的系統組件上執行這些階段。(4)處理節點是接受查詢的組件,處理和接受查詢命令。(5)客戶主要有命令行接口和基于Web的接口訪問Hive。

圖5 Hive架構
本實驗使用9臺計算機搭建云環境,實驗平臺中電腦 CPU為 Intel Core 2.66GHz,內存為 2G,硬盤120G,通過100Mbps交換機局域網連接。實驗采用操作系統為CentOS5.4(Red Hat Enterprise Linux 4.1.2)系統,相關軟件為Jdk-1.6.0,Hadoop-0.19.2和Hive-0.4.1版本。SQL server 2005安裝在Window xp professional,硬件實驗平臺中電腦CPU為Intel Core 2.66GHz,內存為2G,硬盤240G,虛擬內存設置為2G。數據集1~8分別對應1百萬條-8百萬條記錄。將這些數據集分別在SQL server和不同機器數的Hive平臺上執行檢索操作。
實驗結果表明在8臺機器組成的Hive平臺和SQL server平臺上對數據集8執行檢索任務時,Hive的執行時間略微少于SQL server,而且Hive增長趨勢明顯小于SQL server。選擇更大數據量或搭建計算機數更多的平臺時,Hive平臺的性能將具有更大的優勢(見圖6)。
通過開源云平臺Hadoop搭建圖書館的云檢索系統,借助Hadoop的高容錯、高可靠、高可擴展等特性,圖書館用戶可以放心地將海量的書目信息存儲到云平臺上,并提供可靠的信息檢索服務。Hive用來分析統計海量的書目信息,供用戶快速的檢索。我們采用HDFS、MapReduce和Hive相結合的方式提供強大的圖書信息檢索服務,實現圖書檢索一站式服務、用戶個性化服務和智能檢索等。

圖6
[1] What's In Store for the Library Automation Industry in 2012?[EB/OL].[2012-12-07].http://www.alatechsource.org/blog/2012/01/whats-in-store-for-the-library-automation-industry-in-2012.html.
[2]陸穎雋,等.美國圖書館的云服務[J].圖書與情報,2012(3):16-21.
[3]王文清,陳凌.CALIS數字圖書館云服務平臺模型[J].大學圖書館學報,2009(4):13-18.
[4] White T.Hadoop:TheDefinitiveGuide:TheDefinitiveGuide[M].O'ReillyMedia,2009.
[5] Jeffrey Dean,Sanjay Ghemawat.Map Reduce Simplified Data Processing on Large Clusters[C].Communications of the ACM, New York, USA, 2008:107-113.
[6] FangWei,PanWubin.Map ReduceProgrammingModel, Methods and Applications[J].IETE Technical Review,2012,29(5):380-387.
[7] Thusoo A,etal.Hive:AWarehousingSolution Over a Map-Reduce Framework [J].Proceedings of the VLDBEndowment,2009,2 (2) :1626-1629.