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