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