朱蘭英
摘要:隨著計算機技術的高速發展,大數據、物聯網等領域在不斷地生長。大數據的興起,為海量的數據處理與存儲提供了平臺。而依靠傳統的數據庫已經無法適應大數據的應用,分布式數據庫在大數據背景下得到了快速發展。大數據技術在實際的應用中容易存在一些現實難題,因此設計一款基于分布式大數據管理系統非常有必要,能夠為大數據的采集與存儲提供無限可能,同時還可以提高數據處理的能力。
關鍵詞:分布式;大數據;管理系統
中圖分類號:TP315 文獻標識碼:A 文章編號:1009-3044(2019)05-0025-02
大數據在檢索信息時,效率仍然是一個需要解決的重點問題,設計一種新型的分布式大數據管理系統,提高大數據檢索的效率,將其應用到海量日志的檢索中,對海量數據進行分析,實現大數據的實時處理功能。
1 分布式大數據管理系統結構組成
大數據對數據處理的要求非常高,在數據采集、數據存儲以及數據檢索方面的效率都有非常高的要求。一般情況下數據采集的效率要達到MB/s以上[1],數據存儲要達到PB級。傳統的關系型數據庫無法滿足這一高難度的要求,一些容量大的關系型數據庫應運而生,這些數據庫的特點都是在Key-Value的基礎上進行讀寫,缺少對多列數據的檢索,無法完成復雜的操作,同時還容易受到緩存條件的限制,無法快速地進行數據的采集和檢索,處理效率低下。為了更好地解決這種問題,提出了一種基于Hadoop和NoSQL兩種技術聯合的分布式大數據管理系統[2],能夠有效地解決其他關系型數據庫存在的效率低下以及存儲條件限制的問題。
中央控制集群在整個系統運行過程中起到一定的控制功能,比如獲取用戶的檢索請求,并對用戶提出的請求進行檢索;對系統各個部分的狀態進行實時監控,并及時處理系統異常;取消特定的集群任務;對整個網絡連接資源進行優化,保證系統的安全穩定運行;
大數據采集集群是整個系統的入口,大數據采集集群中的進程作為執行單元,能夠在多臺機器上同時開啟數據采集功能,提高系統的采集效率;還能夠對多臺機器進行操作,開啟緩存,并在中央控制集群的幫助下實現周期性緩存寫入[3],讓存儲集群能夠永久的保存;
大數據檢索集群是用戶與系統之間的交互接口,通過自定義的命令向中央控制集群提出請求,中央控制集群會根據大數據檢索集群提出的要求對系統的運行狀態進行快速檢索,讓永久存儲集群進行查詢,并將結果進行匯總后反饋給數據檢索集群,通過視圖的方式為用戶呈現最終的信息;
大數據永久存儲集群是分布式大數據管理系統的倉庫,能夠對數據進行永久性的保存,通過數據采集集群的周期性特點對數據進行定時更新,利用數據采集的方式進行存儲,有利于提高工作效率;
其他功能集群是為分布式大數據管理系統提供的一些可編程的拓展窗口,是為了方便日后根據用戶的需求增加新的集群功能。
2分布式文件系統
2.1 分布式文件系統的架構組成
Master/NameNade節點的任務主要是進行數據存儲,對文件系統的目錄以及日志進行管理,同時還要與ChunkServer進行通信,完成發送指令、搜集狀態的功能,保證數據塊的完整性,對狀態進行維護;創建數據塊并實現負載均衡;對DataNode的空間使用進行負載均衡;對訪問請求的數據進行負載均衡;對數據塊進行處理,并將其分布到ChunkServer中。如果數據庫的冗余量較小,需要進行復制;對冗余的日志記錄進行刪除;對隱藏的文件進行回收;同時對陳舊的數據塊進行檢測并刪除。
Master/NameNade的性能優化,對單點故障進行解決時,需要利用多個Master節點進行熱備,如果主節點出現損壞,需要即進行處理;支持多個映像文件,對映像文件進行操作后可以將其同步到副本中;Master不進行文件的傳輸,只保存原始的數據;采用客戶端緩存的方式進行存儲;DateNode使用本地文件系統的方式進行數據塊的存儲;采用機架感知的方式可以進行數據冗余,這樣可以有效地提高系統的可靠性。
2.2設計思路
將文件進行劃分,將其分成若干塊進行存儲,每一個文件塊都有固定的大小,可以進行隨意配置;利用冗余的方式提高系統的可靠性,每一個數據塊上至少需要有三臺以上的服務器進行冗余,才能夠保證系統的可靠性;利用Master server對數據訪問進行協調和處理,保證數據的統一性;不對Cache進行集中設置,文件操作大部分是流式讀寫的方式,不能進行大量的重復讀寫;在Data Node上進行數據存儲,需要使用本地文件進行存儲。
3分布式大數據管理系統的算法分析
3.1 分布式大數據管理系統的數據結構
分布式大數據管理系統作為數據結構的主要組織數據,數據存儲單元中的每一條記錄中都包含了多個字段,且每一張表中都包含了一個特殊的描述文件,這個特殊的描述文件是用來管理整張表的數據信息,比如表的結構或者表的結構類型等,這類文件主要存儲在中央控制集群中,當用戶對系統提交查詢請求時,中央控制集群會根據數據表進行查詢。系統會根據沒一張表都對語言進行統一改進,從而實現一種專用的數據查詢分析語言,保留標準的SQL格式,其語法格式為:
create table T1
drop table T1
select*from T1 where name=”DBDMS”
上述表示為創建新表;刪除新表;查詢符合特定條件的記錄。
在分布式大數據管理系統中的永久存儲急群眾,數據是通過列的方式進行組織的,所有的字段都需要按照一定的順序進行排列,通過還要根據不同的類型進行保存,當容量過大時會以文件為存儲單元進行保存,此時這個文件就稱之為數據塊,數據塊就是作為數據采集和檢索的一個最基本的單元,用來存儲數據中的信息。分布式大數據管理系統中以分塊的方式進行分類整理,同時需要將數據塊都存儲到中央控制集群中,以提高數據查詢的效率。
3.2分布式大數據管理系統的核心算法
3.2.1系統數據查詢算法
系統數據查詢算法流程如圖1所示,主要分為5個步驟進行:1)用戶需要提交檢索的請求,將檢索的請求發送給數據檢索集群中;2)將數據檢索集群中的信息反饋給中央控制集群,中央控制集群會對用戶提出的信息進行迅速定位;3)中央控制集群需要先在塊索引中進行目標查找,如果有索引信息直接發送查詢命令;如果沒有信息需要封裝查詢命令,通過廣播的方式將信息存儲到永久的存儲集群中;4)數據永久存儲集群根據查詢的條件進行查詢,如果找到需要將結構進行反饋,如果沒有找到則繼續進行廣播查找,直到找到結果為止;5)中央控制集群需要將查詢的結果進行反饋。
3.2.2塊索引查詢算法
中央控制集群接收到用戶的請求后會進行數據的解析,然后對查詢的條件進行優化,將優化后的數據進行目標檢索,查詢算法流程如圖2所示:
在圖2中,查詢條件解析與重新組合模塊有兩種查詢條件,一種是分類查詢條件,另一種是組合查詢條件,如果包含塊索引分類信息,可以直接找出緩存中相應的塊索引,對數據永久存儲集群發送查詢信息,等待目標數據的返回;如果不包含塊索引的信息,在常規的條件下需要進行條件查詢、分組查詢以及模糊查詢,根據某種特定的元素進行查詢,同時可編程的接口能夠為數據提供更多的查詢條件。使用塊索引查詢算法能夠大大地提高查詢的效率。
4實驗分析
為了對分布式大數據管理系統的性能進行測試,利用某一個網站作為被檢測的對象,對不同的時間段的日志記錄進行檢測。對分布式大數據管理系統中不同的集群系統進行環境的配置。配置完成后系統會持續運行兩個月,通過數據采集集群進行數據存儲的記錄多達上億條,在數據永久存儲集群中占據內存為20TB。分析數據檢索的效率,在一天之內,該系統存儲的日志記錄多達5億條,檢索的效率與時間段在不斷增長,可見分布式大數據管理系統的檢索效率比傳統的關系型數據庫效率高出很多。
5 結束語
通過實驗結果進行分析,分布式數據管理系統對大數據進行檢索時優勢明顯,在不同的時間段以及檢索條件的組合下,檢索的效率比傳統關系型數據庫,適用于海量數據的處理。
參考文獻:
[1]付華崢, 陳翀, 向勇,等. 分布式大數據采集關鍵技術研究與實現[J]. 廣東通信技術, 2015, 35(10):7-10.
[2]基于大數據的日志管理系統的設計與實現[D].沈陽: 東北大學, 2014.
[3]王偉, 廖正宇, 張輝,等. 基于大數據的鐵路信號系統數據存儲與分析系統設計與實現[J]. 信息網絡安全, 2017(1):29-37.
【通聯編輯:謝媛媛】