辛躍華
摘 要 當(dāng)前數(shù)字信息和互聯(lián)網(wǎng)技術(shù)快速發(fā)展,基于互聯(lián)網(wǎng)的應(yīng)用和服務(wù)層出不窮,隨之而來的是,網(wǎng)絡(luò)之間需要處理的數(shù)據(jù)也是呈現(xiàn)出幾何倍數(shù)增長。對大量數(shù)字信息和服務(wù)數(shù)據(jù)給予及時處理,并且向用戶提供安全有效的網(wǎng)絡(luò)服務(wù),變得極為關(guān)鍵。隨著云計算的出現(xiàn),為數(shù)據(jù)的處理方式提供了有效的方案,利用虛擬機、網(wǎng)絡(luò)資源池、共享存儲存儲器等技術(shù),用戶可以便捷的進(jìn)行應(yīng)用的遷移和擴展,進(jìn)而使得傳統(tǒng)的PC機作為處理模式的方式逐漸被淘汰。不過伴隨著云計算的逐漸使用,如何獲得高效率、低成本的存儲空間與管理云端大數(shù)據(jù)逐漸成為很多研究人員關(guān)注的熱點問題,這需要具有良好的云端平臺以及優(yōu)化的數(shù)據(jù)庫結(jié)構(gòu)、處理模式設(shè)計。
關(guān)鍵詞 數(shù)字信息 云計算 數(shù)據(jù)庫
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A DOI:10.16400/j.cnki.kjdks.2016.10.024
Abstract The digital information technology and the Internet have rapid development, the use of the Internet to is used to provide service to all kinds. At the same time, the network between the need to deal with the data is also showing a geometric ratio growth. For a large number of service information and data to give treatment, and to provide users with safe and effective network services, has become extremely critical. With the advent of cloud computing, making for processing of these data for the effective solution to provide its proposed use of fast and convenient Internet technology and has a high security data storage technology, which makes the traditional PC as a way of processing mode is gradually phased out. But with the growing use of cloud computing, to obtain high efficiency and low cost of storage and management of a cloud of data gradually become a lot of enterprises and researchers have paid attention to the problem, which need to have good cloud platform and database structure, and the process model of the design.
Keywords digital information; cloud computing; database
0 引言
在信息化快速發(fā)展的今天,互聯(lián)網(wǎng)內(nèi)部的數(shù)據(jù)越來越多,其服務(wù)的種類也是越來越多,伴隨著數(shù)字技術(shù)和智能終端技術(shù)的進(jìn)步,以及網(wǎng)絡(luò)帶寬的擴展,網(wǎng)絡(luò)通訊量爆炸式增長,給互聯(lián)網(wǎng)系統(tǒng)帶來嚴(yán)重負(fù)擔(dān)。目前存在一個問題,即在互聯(lián)網(wǎng)內(nèi)部系統(tǒng)資源利用效率不高,一些應(yīng)用需要大量的計算與儲存資源,而另外一些系統(tǒng)的資源大部分處于空閑狀態(tài)。對這些問題,解決的要點是實現(xiàn)資源與計算能力的虛擬化,解決海量數(shù)據(jù)的管理和存儲,通過分布式共享機制提升服務(wù)質(zhì)量。云計算自提出以來,受到了業(yè)界的普遍關(guān)注,很大程度上改變了整個IT技術(shù)發(fā)展的方向。
云計算是一種全新的計算方式,基于網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的虛擬化,使之具有安全可靠的數(shù)據(jù)存儲與處理能力,進(jìn)而使得傳統(tǒng)的PC作為基礎(chǔ)的信息處理模式發(fā)生了很大變化。因為云計算技術(shù)具有分布式、可擴展、高性能、高可靠等優(yōu)勢,較以往以數(shù)據(jù)庫為中心的計算模式,具有很好的發(fā)展?jié)摿εc優(yōu)越的性能。伴隨著企業(yè)信息化的不斷發(fā)展,大部分?jǐn)?shù)據(jù)開始在網(wǎng)絡(luò)上多個節(jié)點中分散存儲,網(wǎng)絡(luò)間對這些數(shù)據(jù)的快速傳播逐漸成為人們越來越關(guān)注的問題。由于云計算逐步廣泛應(yīng)用,對這些數(shù)據(jù)的管理以及存儲如何實現(xiàn)快速和較低成本,也是人們關(guān)注與研究的熱點問題。特別是針對那些對云計算有著專門研究的相關(guān)機構(gòu),其首先要解決的問題就是要擺脫傳統(tǒng)的存儲模式,其原因就是大量的新增數(shù)據(jù)出現(xiàn),那些舊的存儲方式以及信息處理模式已經(jīng)無法為新的業(yè)務(wù)和計算流程提供服務(wù)。針對上述問題,本文設(shè)計一種新的數(shù)據(jù)存儲解決方案,能夠利用云計算技術(shù),以及文件虛擬化管理模式,為面向爆炸式增長的數(shù)據(jù)提供快速訪問和讀寫服務(wù)。
1云計算平臺中數(shù)據(jù)存儲方式
1.1數(shù)據(jù)模型
存在于云計算平臺的大部分?jǐn)?shù)據(jù)都屬于半結(jié)構(gòu)化數(shù)據(jù)或是結(jié)構(gòu)化數(shù)據(jù),利用分布式數(shù)據(jù)庫管理保存這些數(shù)據(jù)。分布式數(shù)據(jù)庫必須為每個數(shù)據(jù)集建立一個稀疏的、長期儲存的、多維度的映射表格。用戶將數(shù)據(jù)存儲在表格內(nèi)部,在每一行里面都含有一個排序的主鍵以及任意多個數(shù)列。不過因為稀疏程度不同,在一張表格的內(nèi)部每行數(shù)據(jù)都是不同列進(jìn)行排列。例如對名字的格式定義為<族>和<標(biāo)簽>,利用的都是字符串的基本結(jié)構(gòu)模式,每一張數(shù)據(jù)表格都是具有一個合集,這樣合集模式不會改變,等同于關(guān)系表基本關(guān)系結(jié)構(gòu)模型。但是label數(shù)值對所有行都能夠進(jìn)行有效變更,通過改變表面結(jié)構(gòu)來實現(xiàn)有關(guān)變化。
針對分布式數(shù)據(jù)庫來說,每一個關(guān)系表都擁有一個目錄,其對應(yīng)的表數(shù)據(jù)文件都存儲在該目錄下,對文件的操作都屬于數(shù)據(jù)庫內(nèi)部封閉操作,即我們能夠?qū)⒚恳恍挟?dāng)作是一個原子元素,對所有元素都能夠?qū)嵤┘渔i。在更新每一個關(guān)系表的時候要標(biāo)記好更新時間。在更新數(shù)據(jù)后會進(jìn)行新版本的獲取,同時在數(shù)據(jù)內(nèi)部還會留有原來版本,這樣的數(shù)值就是能夠以時間為依據(jù)來開始有關(guān)設(shè)置,比如說針對兩個最新的版本,或者就是要對近四天的版本進(jìn)行保存。在客戶端能夠?qū)嚯x某時間最近的版本進(jìn)行選擇利用,或是對所有版本進(jìn)行一次獲取。
如圖1所示,每一行的主鍵名是一個反向URL,例如cn.com.wanfangdata.g,在基本陣列族存放網(wǎng)頁內(nèi)容,錨點列族存放網(wǎng)頁鏈接文本,例如wanfangdata的主頁被企業(yè)信息網(wǎng)(http://www.ei86.net)的主頁所利用,因為該行含有名叫做“錨點:www.ei86.net”的列。對于每一個錨鏈只具有一個版本,利用的標(biāo)記裝置為時間戳,比如具有t9以及t8等,但是對于內(nèi)容表項,具有的版本可以多項化,例如圖1中劃分了三個時間戳,標(biāo)記為t3、t5以及t6。
1.2分布式數(shù)據(jù)庫體系結(jié)構(gòu)
在服務(wù)器所具備的體系結(jié)構(gòu)中,需要以主從服務(wù)器具備的基本結(jié)構(gòu)為依據(jù),借助于服務(wù)器節(jié)點集群的資源,并通過Master來管理操作分布式數(shù)據(jù)庫。節(jié)點服務(wù)器所具備的主要功能是節(jié)點訪問模式,對于內(nèi)部slave服務(wù)器節(jié)點,在主master服務(wù)器內(nèi)會將這些節(jié)點進(jìn)行同時注冊。此時若是主服務(wù)器出現(xiàn)故障,則會導(dǎo)致整個系統(tǒng)癱瘓,我們采用雙備份冗余機制來避免此類問題的發(fā)生。由主master服務(wù)器切換到從master服務(wù)器,并獲取slave服務(wù)器列表。節(jié)點同主服務(wù)器的關(guān)系保存在節(jié)點內(nèi)部,其他類型節(jié)點被分配到不同服務(wù)器中。同時依據(jù)數(shù)據(jù)列表含有的特征函數(shù),主服務(wù)器需要時刻感知節(jié)點所在位置,用戶可以在自己的客戶端上獲得相關(guān)節(jié)點的元數(shù)據(jù)信息和具體位置信息。云計算的數(shù)據(jù)表格與傳統(tǒng)關(guān)系數(shù)據(jù)庫存在非常大的不同,云計算屬于稀疏分布類型,其中存在的映射和排序非常多,而傳統(tǒng)關(guān)系數(shù)據(jù)庫則相反。所有以模式為基礎(chǔ)的映射數(shù)據(jù)庫僅能夠進(jìn)行鍵-數(shù)據(jù)的映射模式的表示,這對數(shù)據(jù)庫的結(jié)構(gòu)進(jìn)行了極大簡化。
2數(shù)據(jù)的處理結(jié)構(gòu)
在文件分布式存儲問題上面,利用并行數(shù)據(jù)處理引擎MapReduce軟件可以很好的解決這類問題,其可以對海量數(shù)據(jù)給予非常好的處理,并且根據(jù)編程模式,能夠有效處理大規(guī)模數(shù)據(jù)的并行運算過程。這種處理模式有著非常多的優(yōu)點:
首先就是對容錯、并行處理模式的封裝,并且針對計算進(jìn)行本地化的處理,使得那些比較小的節(jié)點也是可以獲得均衡的負(fù)載,同時在外部還具有強大功能的數(shù)據(jù)接口。然后就是擁有良好的通用性。最終使其能夠?qū)芏嗖煌瑔栴}給予有效解決。MapReduce實現(xiàn)的機制如圖2所示。
MapReduce的主要處理流程包括以下操作。其一是分割,首先把輸入文件切分成若干小份,數(shù)據(jù)塊大小為16M-4MB不等,其可以通過用戶設(shè)定的參數(shù)來獲得,集群能夠?qū)τ嘘P(guān)操作進(jìn)行實現(xiàn),啟動集群內(nèi)部大部分任務(wù)。第二就是能夠借助于Map/Reduce來對有關(guān)任務(wù)進(jìn)行初始化并執(zhí)行,在大部分執(zhí)行程序中來進(jìn)行管理主控程序的主機,其他部分中存在的工作機都是通過制定的模式完成的。對于主控程序來說,主要任務(wù)就是指派空閑的工作機來完成相關(guān)任務(wù)。其三為對程序的讀取,對于指派的Map任務(wù)來說讀取相關(guān)數(shù)據(jù),在輸入數(shù)據(jù)內(nèi)部獲得相關(guān)的數(shù)值,這些數(shù)值被用戶定義的Map函數(shù)處理之后被轉(zhuǎn)存到緩存區(qū)域。其四為本地寫入,針對向內(nèi)存進(jìn)行緩存的中間鍵值會以函數(shù)存在的周期特點為依據(jù),分別放入R個不同區(qū)域,并且在本地磁盤之中進(jìn)行寫入。第五為在遠(yuǎn)端讀取,對于執(zhí)行規(guī)約任務(wù)的工作機被通知這些鍵數(shù)值具體的位置之后,可以利用遠(yuǎn)程控制的模式來獲得Map任務(wù)工作機里面具有的本地緩存的數(shù)據(jù)。第六位對文件數(shù)據(jù)給予傳輸,對Reduce工作的判別是通過其所有的中間數(shù)據(jù)來實現(xiàn)的,該中間數(shù)據(jù)借助于唯一一個中間關(guān)鍵字來同其所發(fā)送的關(guān)鍵字進(jìn)行對應(yīng),并通過中間數(shù)值為Reduce函數(shù)進(jìn)行定義。在完成Reduce任務(wù)以及Map任務(wù)后,在管理機構(gòu)會執(zhí)行有關(guān)程序,并向程序使用起點進(jìn)行返回,接著開展前面的程序操作。
3.云存儲平臺的數(shù)據(jù)庫設(shè)計
3.1系統(tǒng)基本結(jié)構(gòu)
依據(jù)云計算系統(tǒng)具有的基本結(jié)構(gòu),本文設(shè)計的云存儲平臺主要功能模塊以及基本結(jié)構(gòu)如圖3所示。在這個結(jié)構(gòu)里面,管理節(jié)點對所有子節(jié)點和用戶端關(guān)鍵信息進(jìn)行存儲,主要包括文件塊信息、文件目標(biāo)還有系統(tǒng)的元數(shù)據(jù)??蛻舳税l(fā)出對文件元數(shù)據(jù)的讀寫請求,管理節(jié)點接收到該指令后,會以請求的信息為依據(jù)讀取客戶端的數(shù)據(jù)信息并返回。在客戶端獲取到源文件數(shù)據(jù)后,便能夠在子節(jié)點連接所需數(shù)據(jù),來實現(xiàn)數(shù)據(jù)的輸入和輸出,同時其還能對子節(jié)點以及節(jié)點間的聯(lián)系進(jìn)行管理,保持暢通,在對數(shù)據(jù)進(jìn)行輸入時,管理節(jié)點能夠借助于操作指令來降低子節(jié)點的資源占用率,子節(jié)點會向管理節(jié)點進(jìn)行變更信息的返回。
對于文件的存儲組織模塊,利用的基本單元是數(shù)據(jù)塊。一個文件可以具有很多的塊,在每一個塊里面僅可對一個文件內(nèi)容給予有效存儲,文件大小是64M。該種選擇存在很多優(yōu)勢:首先可以減少訪問量,進(jìn)而使得客戶端與管理節(jié)點之間的交互大大減少,同時如果用戶需要對同一個文件塊進(jìn)行讀寫操作的時候只需要向客戶端管理節(jié)點提出請求,就可以完成相關(guān)的操作。其次,能夠有效降低網(wǎng)絡(luò)內(nèi)部消化,能夠在對大文件持續(xù)訪問時,借助于保持節(jié)點數(shù)據(jù)TCP長連接來對網(wǎng)絡(luò)開銷給以有效降低,最終使得管理節(jié)點的管理得以減少。
3.2云計算中文件分布式存儲流程
在實現(xiàn)命令數(shù)據(jù)以及信息數(shù)據(jù)的傳輸?shù)臅r候是要借助不同計算機進(jìn)行的。命令數(shù)據(jù)的CMD作用主要就是有效管理節(jié)點以及子節(jié)點,借助于命令數(shù)據(jù)對其需要實現(xiàn)的任務(wù)進(jìn)行判斷。信息數(shù)據(jù)系統(tǒng)可對每一個任務(wù)實現(xiàn)數(shù)據(jù)的拷貝,比如對文件信息部分以及具有的信息功能進(jìn)行相關(guān)的描述,不過這些數(shù)據(jù)一般具有比較大的數(shù)據(jù)量。我們通過將計算遷移到存儲的方式,降低傳輸壓力,在系統(tǒng)中用戶文件數(shù)據(jù)的傳出是非常少的,這極大的提高了系統(tǒng)的運行效率。在進(jìn)行文件的存儲的時候,系統(tǒng)應(yīng)該先借助于客戶端同管理節(jié)點的連接對其含有的root.dat文件來說通過數(shù)據(jù)模式來讀取,提供給用戶的是有效節(jié)點位置的IP地址信息。在利用node.dat文件來獲得相關(guān)的位置信息,由于管理節(jié)點對子節(jié)點的IP地址列表來獲得相關(guān)的信息,利用上面具有的信息對多線程的數(shù)據(jù)進(jìn)行啟動與連接等活動,同時還可以對這些數(shù)據(jù)進(jìn)行分別存儲,最后最終對username表進(jìn)行更新以此來在訪問過程中進(jìn)行文件分布狀況的重新獲取。在某個節(jié)點上進(jìn)行username文件的存儲,管理節(jié)點便以現(xiàn)存username文件的分布狀況為依據(jù),將節(jié)點的IP地址分配給用戶來進(jìn)行username文件的存放,文件名便成為用戶的用戶名,因為系統(tǒng)中用戶名具備唯一特性,因此所有的username都是唯一的,具體見圖4。
在圖4中,主要借助消息傳遞機制,利用基礎(chǔ)函數(shù)接口對MPI程序進(jìn)行描述來完成為文件的并行寫入和分割,MPI程序能夠快速獲取機器名和進(jìn)程標(biāo)志,并對比較阻塞的信息進(jìn)行傳遞,實現(xiàn)復(fù)雜數(shù)據(jù)結(jié)構(gòu)的傳遞,以此來有效實現(xiàn)Map/Reduce并行計算功能。
4 結(jié)束語
本文針對在云計算環(huán)境下存在的文件管理以及數(shù)據(jù)存儲的安全模式進(jìn)行深入研究,在對云計算服務(wù)進(jìn)行有效利用的基礎(chǔ)上,對其優(yōu)勢:高性能和低成本以及彈性計算和存儲能力給予充分發(fā)揮,使得云計算平臺中存在的成本較低和高速的數(shù)據(jù)存儲問題進(jìn)行有效解決,針對存在的云儲存問題提出了一種靈活的解決方案。
參考文獻(xiàn)
[1] 王德文. 基于云計算的電力數(shù)據(jù)中心基礎(chǔ)架構(gòu)及其關(guān)鍵技術(shù)[J]. 電力系統(tǒng)自動化,2012,v.36;No.48911:67-71,107.
[2] 曲朝陽,朱莉,張士林. 基于Hadoop的廣域測量系統(tǒng)數(shù)據(jù)處理[J]. 電力系統(tǒng)自動化,2013,v.37;No.50604:92-97.
[3] 王德政,申山宏,周寧寧. 云計算環(huán)境下的數(shù)據(jù)存儲[J]. 計算機技術(shù)與發(fā)展,2011,v.21;No.16804:81-84,89.
[4] 董浩浩,韓德志. 一種基于大數(shù)據(jù)處理的異構(gòu)私有云系統(tǒng)[J]. 數(shù)學(xué)的實踐與認(rèn)識,2014,v.4405:157-165.
[5] 費賢舉,王樹鋒. 基于云環(huán)境下的海量大數(shù)據(jù)存儲系統(tǒng)設(shè)計[J]. 計算機測量與控制,2014,v.22;No.19007:2259-2261,2273.