?

基于Hadoop技術的智慧圖書館海量數據儲存系統研究*

2022-11-28 09:28李煥
自動化技術與應用 2022年10期
關鍵詞:海量儲存客戶端

李煥

(咸陽職業技術學院,陜西 咸陽 712000)

1 引言

在云計算技術、傳感器網絡技術、終端設備制造技術等多元化技術更新發展趨勢下,圖書館服務模式與讀者閱讀方式發生了巨大轉變,即基于讀者個性化需求的服務定制與內容智能推送。在服務模式與閱讀方式逐步走向多樣化發展時,用戶服務數據與讀者閱讀關聯性數據以海量模式極速增長。智慧圖書館大數據類型繁雜,決策系統對于數據的儲存與讀取明確要求高效、精確、即時,而傳統數據儲存系統早已無法滿足圖書館海量數據與準確儲存讀取等需求[1],所以構建新型大數據儲存系統,滿足智慧圖書館數據管理與決策需求已成為必然趨勢。

2 系統框架

通過GFS 與HDFS 特性,基于Master/Slave 結構設計智慧圖書館海量儲存系統,其框架[2]具體如圖1所示。

由圖1可見,系統整體框架劃分為四部分,即客戶端、主節點、第二主節點、數據節點??蛻舳斯δ芗刺幱谟脩魝?,為用戶進入系統的入口,同時也是系統與用戶實時交互的載體,關鍵作用是對外提供操作接口,監控用戶操作行為,在用戶發出指令之后,客戶端與遠程接口相對接;主節點功能即其為系統框架核心,作為Master 端不僅可管控多數據節點,還可實現信息與地址映射,就結構層面而言,其功能結構[3]具體如圖2所示。就功能層面來講,可管控日志、數據塊、安全。所以,主節點為系統核心環節,是管理與驅動儲存系統的神經中樞。

第二主節點功能即主節點宕機狀態下的臨時備用節點,監控主節點工作狀態,且在主節點內穩定運行,落實檢查點相關機制,實時準備代替主節點管理系統,但是只具備讀取功能。

數據節點功能即用戶儲存數據,基于數據塊方式在節點中儲存數據。在工作中,管理環節占據比例較大,監聽主節點指令,并匯報實時運行狀況。在結構層面,其功能結構[4]具體如圖3所示。由圖可知,邏輯層面包含數據操作與生命周期管控,且與上層接口銜接。在接口層,包含兩種模式,即IPC與TCP,以應對在不同節點傳輸數據。

3 系統功能模塊

3.1 讀取功能

以輸入流對象提供接口,就具體需求設計多元讀取方式,以讀取數據,且不同方式間存在特定關聯。數據讀取過程相對復雜,即構建輸入流與勘誤處理分析。其中構建輸入流應基于調取遠程接口getBlockLoc 方法獲取具體位置信息??蛻舳藙t通過BlockReader 接口根據字符讀取數據。

3.2 寫入功能

通過系統對于數據儲存的明確指令,寫入功能主要包含數據增補與寫入,因此,系統提供了針對性接口加以支持,表征著構建新文件,就初始環節寫入數據;通過append接口開啟輸出流以追加數據,表征著基于既有文件,就末端環節寫入數據[5]。

3.3 主節點功能

3.3.1 元數據

元數據信息為主節點高效管理系統的依據,以及命名空間數據與參數數據。就數據塊參數而言,文件與數據塊映射信息主要通過三個字段表征,即blockid、size、blockSeq。在設計類圖時,構成BlockMap 類圖結構,具體如圖4所示。

3.3.2 日志數據

日志數據切實反映了系統重要元數據操作歷史記錄,基于特定字段表示相應操作,即創建文件、重命名、刪除、關閉文件、設置版本號、設置訪問時間等等。在日志數據管理中,需周期性與元數據融合,構成檢查點機制,其中檢查點構成會造成主節點狀態實時變化。

3.3.3 數據節點

數據節點管理需以特定字段加以表示,其具體管理類圖如圖5所示。

其中DatanodeID 與DataNodeInfo 保存表示信息,DatanodeDescriptor類成員變量即運行狀態信息,而bandwidth代表負載均衡寬帶設置相關命令,invalidateBlocks代表數據塊刪除命令。數據節點添加進集群前,需加以注冊,注冊過程由主節點管控,注冊成功之后,相關信息則會被保存,同時會把數據節點IP 編入網絡拓撲。在系統運行時,主節點則會發揮作用,對數據節點進行管理,以確保集群工作可靠性與穩定性。

3.3.4 數據塊

系統中,主節點不僅需管理數據節點,還需管理數據塊,即處理數據塊與數據接收報告。數據塊在主節點中,存在相應不同狀態,還可詳細劃分相關狀態。在類圖設計時,基于BlockManager管理數據塊,而內部結構層面,則選用新方法儲存數據塊狀態[6]。

3.4 數據節點模塊

數據節點中,主要通過DatanodeStorage全程管理數據塊,基于Storage Directory管理相關目錄,此兩類共同構成數據儲存類圖,具體如圖6所示。

就數據節點層面而言,以FSDataset類為輔助實現數據塊管理,即構建數據文檔、審核數據塊信息。就功能不同,基于此類圖,抽象出子類,即FSDir、FSVolumn、FSVolumnSet。

4 系統儲存性能優化

基于計算機技術的智慧圖書館海量數據儲存系統應支持多用戶端并發高速讀取操作,儲存效率高,成本低,且支持系統根據海量數據冗余備份的需要,實時數據備份策略。系統可擴展性儲存流程[7]具體如圖7所示。

其中,NameNode作用是管理文件系統命名空間,即維護文件系統數與相關目錄結構、元數據,所有信息以不同文件形式永遠儲存于本地磁盤,其中詳細記錄了文件塊所處數據節點信息,存儲節點數據塊位置信息在啟動系統的時候,數據節點發揮作用重新構建。DataNode是海量數據儲存單元,在智慧圖書館決策需要讀取數據時,需先訪問NameNode,獲取文件信息與數據分布特性,并基于所獲信息通過儲存節點進行數據讀取。在用戶獲取數據信息后,后續重復讀取數據時,便不再需要重復訪問,客戶端會根據記錄從儲存節點讀取數據。另外,圖書館還可就海量數據儲存需要,以增加DataNode節點數量的方式,橫向增大儲存能力,只需把增加的DataNode 添加到NameNode優化管理即可。

5 系統測試與實現

5.1 系統測試

智慧圖書館海量數據儲存系統著重點在于節點磁盤速度,整合不同框架的集群節點,讀寫速度分別為47MB/s與23MB/s。同時在個體差異性層面,與節點硬件配置也密切相關。系統在功能性測試時,分別面向主節點與數據節點做了針對性測試,測試內容與結果[8]具體如表1所示。

表1 功能測試結果

系統基于Linux 環境部署,為實時監控系統運行狀態,利用Nmon工具全程監控,其可監視CPU使用率、內存利用、磁盤讀寫比率、網絡I/O 速度等等,監控結果可通過屏幕展示全部關鍵性能優化信息,動態更新,利于系統性能數據分析,且系統運行穩定,與預期明確相符。

5.2 系統實現

5.2.1 數據讀取實現

數據儲存系統分布式存儲結構在很大程度為數據迅速讀取提供了基礎性服務,本文信息讀取主要是基于客戶端對外提供接口得以實現的,由整體架構而言,數據讀取涉及客戶端,具體流程即用戶調用客戶端數據讀取接口,此接口便會基于主節點獲取數據塊位置信息,以此由遠程過程調取方式與系統數據節點構建數據讀取通道,從而讀取數據。數據讀取過程主要包括讀取接口調用、系統內部交互、多數據塊副本基礎上怎樣選取最佳數據節點等。本文以讀取接口調用為例進行了實現分析。

操作接口為用戶或者應用程序獲得數據讀取的基礎入口,于大數據環境中,數據讀取可采取各式各樣的方式,常見的是Shell 接口、Java API、網頁下載,這主要是由應用不同層面,為方便用戶層面加以設計的,不同方法所呈現的特征與優勢大不相同。Shell接口用戶以命令方式執行操作,通知系統讀取數據,系統所提供的Shell 命令包含get、getMerge、cat、copyToLocal 等等。下面就copyToLocal指令,詳細闡述Shell文件復制實現過程:在客戶端傳輸copyToLocal 指令之后,主節點會就節點選擇策略,進行讀取代價計算,以此根據讀取代價面向數據節點進行排序處理,排名靠前則代表讀取效率越高,客戶端便會選取相對靠前的數據節點以連接構建通道,從而實現數據讀取,但是在此過程中很有可能會由于數據塊損壞,導致報錯。具體實現效果如圖8所示。

5.2.2 數據寫入實現

針對智慧圖書館海量數據存儲系統,作為最為復雜的操作,數據寫入主要包含數據寫入與數據追加兩項操作?;谡w結構而言,數據寫入即客戶端、主節點、數據節點,依舊以操作接口實現進行分析。

不同于數據讀取,數據寫入操作接口不包含網頁版,由Shell 接口與Java API 接口構成。Shell 接口是面向Java API 的封裝,內部基于Java API 得以實現。Shell接口使用類似于Linux 系統的Shell 命令,基于命令實現文件寫入。在寫入過程中,文件劃分為多個數據塊,其會并發寫入不同數據節點內,在寫入時,會和主節點之間形成關聯性,并匯報數據塊存儲位置等相關信息。具體實現效果如圖9所示。

6 結束語

綜上所述,為適應全新發展環境,強化服務能力,降低管理成本,智慧圖書館基于云計算、大數據等新型信息技術,有機連接了硬件設備、數字資源、用戶、管理人員等相關對象,全面聯通,智慧化提供了知識資源服務,實現了人與科學理論知識的有機融合,為用戶提供了更多新型知識,構建了智能化、智慧化圖書服務模式。本文基于計算機設計了智慧圖書館海量數據儲存系統,并進行了系統測試,結果表明,系統可有效實現海量數據存儲管理功能,且各節點運行過程中,對于不同數據類型,可根據節點選擇科學可行策略,以供高效數據儲存服務與讀寫功能,以此保障存儲性能的實效性,從而實現系統良好負載均衡性,在海量數據高效精確搜索的基礎上,系統I/O效率得以顯著提升。

猜你喜歡
海量儲存客戶端
你的手機安裝了多少個客戶端
“人民網+客戶端”推出數據新聞
——穩就業、惠民生,“數”讀十年成績單
一種傅里葉域海量數據高速譜聚類方法
海量GNSS數據產品的一站式快速獲取方法
冬季養羊這樣儲存草料
海量快遞垃圾正在“圍城”——“綠色快遞”勢在必行
危險物品儲存和運輸安全
松鼠怎樣儲存食物
一個圖形所蘊含的“海量”巧題
媒體客戶端的發展策略與推廣模式
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合