陳 曦
(撫順職業(yè)技術(shù)學(xué)院,遼寧 撫順113122)
關(guān)鍵字:云計(jì)算;建筑信息模型;MRU算法;數(shù)據(jù)分類(lèi)與處理
近年來(lái),云計(jì)算的發(fā)展十分迅速,運(yùn)用的范圍也非常廣泛,從原先的科研環(huán)境逐漸走向了各種行業(yè),比如生物學(xué)、天文學(xué)、交通管理、BIM管理等.如何針對(duì)各種異構(gòu)的分布式存儲(chǔ)環(huán)境來(lái)保持其穩(wěn)定性、快速響應(yīng),并且發(fā)揮硬件資源的高可用性,是目前研究的一個(gè)熱點(diǎn).
傳統(tǒng)的云計(jì)算模式是利用HBase傳送海量的數(shù)據(jù)給HDFS,分析后發(fā)送給服務(wù)器進(jìn)行處理.但是每次運(yùn)行都進(jìn)行海量的數(shù)據(jù)傳輸,不僅造成BIM云平臺(tái)的高負(fù)荷,也不利于提高資源的利用率.為減少數(shù)據(jù)的傳輸量,利用Most Recently Used算法[1]將數(shù)據(jù)分類(lèi)為常用與不常用數(shù)據(jù),并利用常用數(shù)據(jù)來(lái)預(yù)測(cè)用戶(hù)下次使用的數(shù)據(jù)并提前進(jìn)行處理,從而提升整體運(yùn)算的效率.
建筑信息模型 (Building Information Modeling,縮寫(xiě)為BIM)是利用信息技術(shù)對(duì)建筑生命周期各個(gè)階段進(jìn)行管理的工具,包括規(guī)劃設(shè)計(jì)、建筑審查、工程施工、項(xiàng)目管理等,提供了最佳的應(yīng)用載體和信息管理模式,對(duì)傳統(tǒng)的建筑設(shè)計(jì)方法進(jìn)行了創(chuàng)新[1].
現(xiàn)有的商業(yè)BIM系統(tǒng),如Autodesk Revit、Bentley Architecture和Tekla Structures,都是專(zhuān)門(mén)用于建筑項(xiàng)目的集成和可視化開(kāi)發(fā)的.但是這些商業(yè)BIM系統(tǒng)是在各自相對(duì)獨(dú)立的平臺(tái)上運(yùn)行的,數(shù)據(jù)無(wú)法共享,給用戶(hù)造成了一定的限制,建模實(shí)驗(yàn)對(duì)于硬件的要求較高,不利于推廣普及.
基于云計(jì)算的BIM,以BIM建筑信息模型作為基礎(chǔ),利用云計(jì)算進(jìn)行建筑效能分析 (Building Performance Analysis,BPA),從而得到符合環(huán)境效益的最佳設(shè)計(jì)方案.基于云計(jì)算的BIM具有以下優(yōu)點(diǎn):(1)與環(huán)境效益相匹配;(2)具有科學(xué)有效的評(píng)估建模過(guò)程;(3)BIM系統(tǒng)下的信息系統(tǒng)與可視化分析技術(shù).基于云計(jì)算的BIM,在大數(shù)據(jù)計(jì)算、可視化設(shè)計(jì)、建模分析、硬件投資、操作界面風(fēng)格等方面有著強(qiáng)大的優(yōu)勢(shì),可以很好地節(jié)約項(xiàng)目實(shí)施時(shí)間和成本[2].
Hadoop集群作為系統(tǒng)的基礎(chǔ)設(shè)施,它可以利用大量廉價(jià)的硬件設(shè)備搭建服務(wù)器集群,在底層可以實(shí)現(xiàn)對(duì)集群的管理,在上層可以很方便地構(gòu)建企業(yè)級(jí)的應(yīng)用.Hadoop系統(tǒng)的核心是HDFS、MapReduce和HBase,前者允許在多臺(tái)普通機(jī)器上存儲(chǔ)和復(fù)制文件,后兩者分別用于執(zhí)行并行程序任務(wù)和儲(chǔ)存數(shù)據(jù)[3].
HDFS(Hadoop Distributed File System)具有高度容錯(cuò)性,可以在低價(jià)的硬件設(shè)備上部署.HDFS很適合對(duì)大量資料重復(fù)的數(shù)據(jù)進(jìn)行讀寫(xiě).HDFS是一個(gè)Haster/Slave的結(jié)構(gòu),通常而言,只具有一個(gè)Master,上面運(yùn)行一個(gè)Name node,可能具有多個(gè)Slave,在上面各自運(yùn)行一個(gè)Data node.
MapReduce是來(lái)自Google的一項(xiàng)重要技術(shù),它是用以進(jìn)行大數(shù)據(jù)量計(jì)算的模型.MapReduc就是一種簡(jiǎn)化并行計(jì)算的模型,可以較為簡(jiǎn)單地對(duì)并行計(jì)算進(jìn)行開(kāi)發(fā)并且應(yīng)用.它包括了兩項(xiàng)核心操作:Map和Reduce.在Map操作中,主要是對(duì)一些獨(dú)立元素組成的列表上的每個(gè)元素進(jìn)行操作.Reduce操作中是對(duì)列表上的元素進(jìn)行適當(dāng)合并[4].
HBase是一個(gè)開(kāi)源的非關(guān)系型分布式數(shù)據(jù)庫(kù),采用與Google的BigTable相似設(shè)計(jì)的分布式結(jié)構(gòu)化數(shù)據(jù)儲(chǔ)存系統(tǒng),其運(yùn)行于HDFS之上,提供Hadoop類(lèi)似BigTable規(guī)模的服務(wù),有別于一般數(shù)據(jù)庫(kù)系統(tǒng)使用規(guī)模的服務(wù).利用HBase技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化儲(chǔ)存群集[5、6].
Most Recently Used(MRU)算法原本是為高速緩存而設(shè)計(jì)的算法,目的是為提升高速緩存中的Hit Rate,MRU算法的原理是依據(jù)數(shù)據(jù)被存取的頻率高低來(lái)區(qū)分?jǐn)?shù)據(jù)在高速緩存的存放順序.
在BIM云系統(tǒng)的HBase中,以數(shù)據(jù)的使用次數(shù)及時(shí)間為篩選條件,并利用MRU算法將數(shù)據(jù)分成常用與不常用,并利用數(shù)據(jù)庫(kù)進(jìn)行分類(lèi)及管理,之后將常用數(shù)據(jù)傳輸給分布式文件系統(tǒng)進(jìn)行處理,以減少系統(tǒng)的處理量來(lái)達(dá)到效能的提升.其實(shí)現(xiàn)策略如圖1所示.
運(yùn)用MRU算法的原理,依據(jù)數(shù)據(jù)的存取次數(shù)及訪(fǎng)問(wèn)時(shí)間,判斷出常用與不常用數(shù)據(jù),并在下一次循環(huán)中將常用數(shù)據(jù)進(jìn)行優(yōu)先處理.在BIM云系統(tǒng)中主要是在HBase和HDFS中間加上一個(gè)判斷模塊來(lái)進(jìn)行數(shù)據(jù)的分類(lèi)處理.其架構(gòu)如圖2所示.
為了減少數(shù)據(jù)庫(kù)中的數(shù)據(jù)一次性大量地傳輸給HDFS處理,我們利用MRU算法來(lái)解決這個(gè)問(wèn)題.通過(guò)MRU算法來(lái)區(qū)分常用與不常用的數(shù)據(jù),以數(shù)據(jù)的使用時(shí)間及次數(shù)來(lái)當(dāng)作MRU算法的篩選條件.同時(shí)利用兩個(gè)條件的原因在于:如果只設(shè)單一條件的話(huà),對(duì)于判斷數(shù)據(jù)是常用數(shù)據(jù)會(huì)有非常大的問(wèn)題,例如,如果只采用次數(shù)來(lái)判斷,可能會(huì)發(fā)生用戶(hù)因?yàn)閿?shù)據(jù)傳輸失敗而重復(fù)請(qǐng)求的情況;同樣,如果只采用時(shí)間的話(huà),則會(huì)發(fā)生使用者只有這次要求傳輸?shù)褂脮r(shí)間比平時(shí)長(zhǎng)的情況.所以,設(shè)定一個(gè)循環(huán)時(shí)間內(nèi)該數(shù)據(jù)的訪(fǎng)問(wèn)次數(shù),并且使用時(shí)間設(shè)置在一定時(shí)間以上為篩選條件來(lái)判斷該數(shù)據(jù)是否為常用數(shù)據(jù).以30min為循環(huán)時(shí)間單位,存取次數(shù)N~M次,訪(fǎng)問(wèn)時(shí)間達(dá)到Tmin以上的數(shù)據(jù)會(huì)被標(biāo)以常用數(shù)據(jù),與其他數(shù)據(jù)進(jìn)行區(qū)分,然后在下一個(gè)循環(huán)時(shí)間時(shí)會(huì)將常用數(shù)據(jù)優(yōu)先傳輸給HDFS進(jìn)行處理.其過(guò)程如圖3(見(jiàn) 34頁(yè))所示.
利用這個(gè)方法不僅可以減少數(shù)據(jù)處理的數(shù)量,也可以達(dá)到利用預(yù)判方式來(lái)加快數(shù)據(jù)在HDFS中的處理過(guò)程.其過(guò)程如圖4所示.
(1)用戶(hù)常用數(shù)據(jù)次數(shù)分布.根據(jù)用戶(hù)的使用情況,對(duì)于程序的使用次數(shù)會(huì)有很多種不同的情況,必須經(jīng)過(guò)大量的樣本統(tǒng)計(jì)后取得相關(guān)信息.本實(shí)驗(yàn)所采用的樣本為撫順職業(yè)技術(shù)學(xué)院建筑工程系的80位學(xué)生于實(shí)驗(yàn)室使用BIM云系統(tǒng)的情況,因?yàn)楸仨毰懦龕阂饣驘o(wú)效的情形,所以將最低與最高的10%設(shè)為無(wú)效樣本,并在統(tǒng)計(jì)數(shù)據(jù)中舍棄.如圖5所示,可得存取次數(shù)的閾值N=3,M=5,以此當(dāng)作常用數(shù)據(jù)分類(lèi)的標(biāo)準(zhǔn).
(2)用戶(hù)常用數(shù)據(jù)時(shí)間分布.僅以一個(gè)條件作為分類(lèi)標(biāo)準(zhǔn)并不嚴(yán)謹(jǐn),所以需要另外一個(gè)判斷條件.因?yàn)楸仨毰懦龕阂饣驘o(wú)效的情形,所以將最低與最高的10%設(shè)為無(wú)效樣本.如圖6所示,可得超過(guò)15min為判斷條件,然后以30min的時(shí)間當(dāng)成一次循環(huán).
(3)實(shí)驗(yàn)環(huán)境.平臺(tái)主機(jī)2臺(tái),配置為E5-2687W八核處理器3.1GHz(兩顆),內(nèi)存容量為64GB 1600MH,硬盤(pán)容量為2TB,1個(gè)Quardo K5000圖形卡,系統(tǒng)為Ubuntu-9.10-Server-Amd64,Hadoop版本為 Hadoop-2.2.0.
本實(shí)驗(yàn)每次傳送1 000個(gè)數(shù)據(jù)當(dāng)作測(cè)試樣本,以30min為一次循環(huán),一次實(shí)驗(yàn)為12h.如圖7所示 (見(jiàn) 36頁(yè)),基于MRU算法的方法比起傳統(tǒng)Hadoop所需的時(shí)間明顯下降,利用減少硬盤(pán)I/O的存取量與時(shí)間,達(dá)到整體硬件負(fù)荷量下降,可以有效地節(jié)省資源.
從表1中可以看到,本實(shí)驗(yàn)依照?qǐng)D7得到下列信息,分別可以得到兩者完成時(shí)間的最小值、最大值和平均值,最大值減少了19.86%,最小值減少12.82%,整體平均時(shí)間減少了19.99%.
表1 效率提升表
云計(jì)算技術(shù)在圖形圖像加速、建筑信息建模、大數(shù)據(jù)分析等領(lǐng)域具有廣泛的應(yīng)用.本文設(shè)計(jì)了在BIM云系統(tǒng)上的MRU算法,詳細(xì)論述了MRU算法的框架和實(shí)現(xiàn)過(guò)程.通過(guò)實(shí)驗(yàn)表明,該系統(tǒng)是提升數(shù)據(jù)處理效率的實(shí)用工具.