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