張廣弟 汪秀兵 胡亞磊
(江西理工大學(xué)建筑與測(cè)繪工程學(xué)院 江西 贛州 341000)
數(shù)字高程模型(DEM)是一定范圍內(nèi)規(guī)則格網(wǎng)點(diǎn)的平面坐標(biāo)(X,Y)及其高程(Z)的數(shù)據(jù)集,由于采集的數(shù)據(jù)都是海量的離散化隨即分布的,無法利用直接生成地面模型,所以一般需要將離散的高程數(shù)據(jù)網(wǎng)格化[1]。其中規(guī)則格網(wǎng)是建立DEM表面的主要方法。根據(jù)地形的復(fù)雜性和非線性,一個(gè)數(shù)學(xué)模型很難模擬大范圍的地形,因此目前構(gòu)建規(guī)則網(wǎng)格的基本方法:對(duì)某一區(qū)域進(jìn)行格網(wǎng)劃分,利用已獲得的離散高程數(shù)據(jù)進(jìn)行局部?jī)?nèi)插計(jì)算,求的網(wǎng)格的高程值[2]。
通過采集的海量數(shù)據(jù)模擬出大范圍地形,需要進(jìn)行大量計(jì)算,而傳統(tǒng)串行模式的DEM內(nèi)插計(jì)算的處理速度已經(jīng)成為DEM快速建立的瓶頸,不能滿足實(shí)際需要,且單純通過算法上面的改進(jìn)也很難大幅度提高對(duì)海量離散點(diǎn)建立格網(wǎng)的效率。所以為了提高計(jì)算和處理效率,多機(jī)集群方式逐步在DEM分析中得到較多應(yīng)用[5]。開放式云平臺(tái)Hadoop的出現(xiàn),提供了一個(gè)能夠?qū)A繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,且具有高效、可擴(kuò)展、經(jīng)濟(jì)、可靠等特點(diǎn)。
Hadoop是Apach下的一個(gè)開源軟件,它最早是作為一個(gè)開源搜索引擎項(xiàng)目Nutch的基礎(chǔ)平臺(tái)而開發(fā)的[3]。其最底部是Hadoop Distributed File System (HDFS),它存儲(chǔ)Hadoop集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。HDFS(對(duì)于本文)的上一層是MapReduce引擎,該引擎由JobTrackers和TaskTrackers組成。
HDFS是Hadoop應(yīng)用中必不可少的一個(gè)分布式文件系統(tǒng),它將海量數(shù)據(jù)分布存儲(chǔ)在一個(gè)大集群的多臺(tái)計(jì)算機(jī)上并且采用Master/Slave架構(gòu),一個(gè)HDFS集群由一個(gè)管理節(jié)點(diǎn)(Namenode)和一定數(shù)目數(shù)據(jù)節(jié)點(diǎn) (Datanode)組成。Namenode是中心服務(wù)器,管理文件系統(tǒng)的Namespace和客戶端對(duì)文件的訪問。Datanode在集群中一般是一個(gè)節(jié)點(diǎn)一個(gè),負(fù)責(zé)管理節(jié)點(diǎn)上附帶的存儲(chǔ)[7]。HDFS將文件劃分為許多塊序列,每個(gè)文件劃分除了最后一個(gè)分塊外其他所有分塊都具有相同的大小。文件所分的塊大小及復(fù)制比例可以依據(jù)每個(gè)文件進(jìn)行設(shè)置[4]。
MapReduce是一種可用于數(shù)據(jù)處理的編程模型,其分為Map和Reduce兩個(gè)處理階段,Map就是把一個(gè)任務(wù)分解成多個(gè)任務(wù),reduce就是將分解后的多個(gè)任務(wù)處理的結(jié)果匯總起來,得出最后的結(jié)果。對(duì)于擁有海量處理信息的任務(wù)來說,分布式系統(tǒng)中機(jī)器群看做硬件資源池,它將任務(wù)拆分成多個(gè)相同的任務(wù),然后交給集群上的機(jī)器去處理,這樣做能夠極大地提高計(jì)算效率。
本實(shí)驗(yàn)構(gòu)建的hadoop環(huán)境(如圖1)是由一臺(tái)內(nèi)存為4G處理器為Intel Core I3 M 390@2.67HZ的普通機(jī)通過虛擬機(jī)技術(shù)構(gòu)建出1個(gè)Namenode和3個(gè)datanode的集群環(huán)境,其中其服務(wù)器環(huán)境為L(zhǎng)inux Ubuntu 11.04,開發(fā)環(huán)境為 window 7 ,云端軟件采用 hadoop 0.20.1 進(jìn)行環(huán)境架構(gòu)。
通過測(cè)繪原始的DEM數(shù)據(jù)就是基礎(chǔ)txt文本數(shù)據(jù),數(shù)據(jù)為每個(gè)采樣點(diǎn)一行,依次下去符合hadoop數(shù)據(jù)的逐行讀取形式。本實(shí)驗(yàn)的數(shù)據(jù)來自某地的3000mx3000m范圍的數(shù)據(jù)。
分別取出離散點(diǎn)的最大或最小X和Y值,建立單個(gè)格網(wǎng)大小為10mx10m,則每個(gè)分割的區(qū)域的格網(wǎng)數(shù)為10000個(gè),總共的格網(wǎng)數(shù)大約為10000*n(n為HDFS的塊的數(shù)目,在本實(shí)驗(yàn)中其值為3)。
圖1 hadoop集群框架圖
本實(shí)驗(yàn)根據(jù)離散的高程,通過IDW(距離加權(quán)內(nèi)插)求任意一格網(wǎng)點(diǎn)P(x,y)的高程值Z(x,y)。因離散點(diǎn)與P點(diǎn)因分布位置的差異,對(duì)P影響不同,以Wi來代表這種影響。
因此本實(shí)驗(yàn)根據(jù)IDW公式結(jié)合MapReduce設(shè)計(jì)了DEM建立的核心算法代碼如下:
圖2 DEM建模測(cè)試
圖3 10mx10m的部分DEM結(jié)果圖
實(shí)驗(yàn)中設(shè)計(jì)了在同樣的IDW算法下,測(cè)試上述hadoop(擁有3個(gè)datanode)完全分布模式下和基于單機(jī)下DEM格網(wǎng)的建模時(shí)間隨數(shù)據(jù)量的變化圖,結(jié)果如圖2。
從圖2中可以看出對(duì)于在一定數(shù)據(jù)量下單機(jī)模式下DEM建模的所需的時(shí)間要小于3個(gè)datanode的hadoop集群所需的時(shí)間,隨著DEM數(shù)據(jù)量的增大(并保證每個(gè)塊的大小于64M),集群處理的所需的時(shí)間漸漸高于單機(jī)模式所需時(shí)間。
在進(jìn)行Mapduce運(yùn)算時(shí)對(duì)于小量DEM數(shù)據(jù)的計(jì)算能力默認(rèn)是按塊來分配Map任務(wù)的,且在數(shù)據(jù)在處理后在不同的datanode上需要一定的網(wǎng)絡(luò)傳輸將結(jié)果顯示到開發(fā)端的window上。所以DEM建模的時(shí)間在DEM數(shù)據(jù)達(dá)到一定量的時(shí)候才顯現(xiàn)出單機(jī)上處理的大數(shù)據(jù)集的無法達(dá)到的優(yōu)勢(shì)。
[1]葉海建 .DEM生成效率的分析[J].中國(guó)農(nóng)業(yè)大學(xué)學(xué)報(bào),北京:1999,4(6):81-84.
[2]張治木,蔡寅峰.基于TIN和格網(wǎng)的DEM表面建模的比較[J].銅業(yè)工程,2005(2):8-10.
[3]向小軍,高陽(yáng),商琳,等.基于Hadoop平臺(tái)的海量文本分類的并行化[J].計(jì)算機(jī)科學(xué),2011,38(10):184-188.
[4]多雪松,張晶,高強(qiáng).基于Hadoop的海量數(shù)據(jù)管理系統(tǒng)[J].微計(jì)算機(jī)信息,2010,26(5-1):202-204.
[5]黃先鋒,孫巖標(biāo),張帆.多核計(jì)算環(huán)境下的LiDAR數(shù)據(jù)DEM內(nèi)插方法研究.山東科技大學(xué)學(xué)報(bào):自然科學(xué)版,青島:2011,30(1):1-6.
[6]呂建峰,劉定生,焦偉利,等.DEM生成算法并行化研究[J].中國(guó)圖象圖形學(xué)報(bào),2002,7(5):506-512.
[7]楊代慶,張智雄.基于Hadoop的海量共現(xiàn)矩陣生成方法[J].現(xiàn)代圖書情報(bào)技術(shù),北京:2009(4):23-26.