亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx

        面向矢量瓦片的海量空間數(shù)據(jù)并行處理技術(shù)

        2018-09-17 04:32:06胡明曉龔志紅樊竝君
        關(guān)鍵詞:瓦片數(shù)據(jù)庫(kù)

        李 瀚,胡明曉,龔志紅,樊竝君

        (1.中國(guó)電子科技集團(tuán)公司第十五研究所基礎(chǔ)三部,北京 100083; 2.溫州大學(xué)數(shù)理與電子信息工程學(xué)院,浙江 溫州 325035; 3.空軍駐華北地區(qū)軍事代表室,北京 100086)

        0 引 言

        本文的并行處理實(shí)驗(yàn)基于中國(guó)電子科技集團(tuán)公司第十五研究所基礎(chǔ)三部地理信息研發(fā)中心的地理信息系統(tǒng)二期平臺(tái)。地理信息系統(tǒng)(GIS)是一種為了獲取、存儲(chǔ)、檢索、分析和顯示空間定位數(shù)據(jù)而建立的計(jì)算機(jī)化的數(shù)據(jù)庫(kù)管理及數(shù)據(jù)處理系統(tǒng)[1]。

        本文實(shí)驗(yàn)的數(shù)據(jù)源為地圖原始矢量數(shù)據(jù),矢量數(shù)據(jù)經(jīng)過瓦片生成工具切圖以及瓦片服務(wù)上傳瓦片至數(shù)據(jù)存儲(chǔ)平臺(tái)(HBase等)進(jìn)行顯示[2]。采用傳統(tǒng)的基于GIS組件的切片工具,對(duì)海量矢量數(shù)據(jù)切圖往往需要數(shù)周甚至更多的時(shí)間,而且在硬件條件有限的情況下(內(nèi)存限制等),不能勝任切圖任務(wù)。針對(duì)矢量數(shù)據(jù)特性進(jìn)行合理的任務(wù)劃分,通過并行處理框架進(jìn)行多機(jī)多進(jìn)程切圖,并且在服務(wù)端進(jìn)行并行上傳,可以大幅度提升矢量數(shù)據(jù)整體處理效率。

        1 空間數(shù)據(jù)的處理流程

        1.1 空間數(shù)據(jù)裝載與存儲(chǔ)

        空間數(shù)據(jù)庫(kù)是GIS系統(tǒng)的核心所在,空間數(shù)據(jù)庫(kù)技術(shù)的發(fā)展帶動(dòng)了GIS系統(tǒng)的技術(shù)革新??臻g數(shù)據(jù)庫(kù)不僅擁有通用數(shù)據(jù)庫(kù)的基本特征,而且包含5個(gè)獨(dú)有的特征:空間特征、非結(jié)構(gòu)化特征、空間關(guān)系特征、分類編碼特征和海量數(shù)據(jù)特征[3]。作為大量具有相同特征的數(shù)據(jù)集的有序集合,需要數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行管理,并且通過GIS組件提供必要的查詢、檢索與可視化功能。

        空間數(shù)據(jù)庫(kù)從適用方面可劃分為基礎(chǔ)地理空間數(shù)據(jù)庫(kù)和專題數(shù)據(jù)庫(kù)?;A(chǔ)地理數(shù)據(jù)庫(kù)包括矢量要素?cái)?shù)據(jù)(DLG)、數(shù)字高程數(shù)據(jù)(DEM)、影像數(shù)據(jù)(DOM)和柵格地圖數(shù)據(jù)(DRG);專題數(shù)據(jù)庫(kù)包含地名數(shù)據(jù)、兵要數(shù)據(jù)、導(dǎo)航數(shù)據(jù)等[4]。本文所使用的數(shù)據(jù)源為矢量要素?cái)?shù)據(jù),通過GIS系統(tǒng)入庫(kù)工具進(jìn)行入庫(kù)。

        1.2 矢量數(shù)據(jù)切圖原理

        本文對(duì)矢量原始數(shù)據(jù)采用矢量瓦片切片技術(shù)。矢量瓦片地圖采用金字塔結(jié)構(gòu),這是一種基于多分辨率的層次數(shù)據(jù)模型[5]。在表示地理范圍不變的條件下,從瓦片金字塔的頂層到底層,比例尺數(shù)值越來越小,如圖1所示。

        圖1 瓦片金字塔結(jié)構(gòu)

        矢量瓦片地圖分為2種:1)瓦片客戶端技術(shù),即在本地客戶端上將目標(biāo)地圖原始數(shù)據(jù)分解為多次請(qǐng)求,通過客戶端多次請(qǐng)求將切圖生成的地圖瓦片組合渲染,生成一幅完整的地圖,此種技術(shù)對(duì)服務(wù)器及網(wǎng)絡(luò)負(fù)載提出了極高的需求;2)瓦片服務(wù)器技術(shù),即先在服務(wù)器上切圖生成金字塔結(jié)構(gòu)的地圖瓦片,通過客戶端發(fā)送請(qǐng)求進(jìn)行訪問,此技術(shù)本質(zhì)上是服務(wù)器端存儲(chǔ)的數(shù)據(jù)加載過程,因此其速度比瓦片客戶端技術(shù)及原始矢量地圖技術(shù)效率高得多。本文采用服務(wù)器端瓦片技術(shù),且在此基礎(chǔ)上通過并行處理技術(shù)可有效提高矢量原始數(shù)據(jù)的處理效率。

        1.3 矢量瓦片上傳流程

        經(jīng)過矢量原始數(shù)據(jù)切圖處理之后,產(chǎn)生vector格式的數(shù)據(jù),存放在服務(wù)器上,在GIS平臺(tái)中提供瓦片服務(wù)與HBase集群進(jìn)行上傳下載交互。

        上傳過程分為4個(gè)步驟:1)啟動(dòng)瓦片服務(wù);2)將已切圖完成的瓦片存儲(chǔ)在瓦片服務(wù)中以便于查看;3)發(fā)布瓦片地圖元數(shù)據(jù),即將瓦片服務(wù)中的地圖元數(shù)據(jù)文件(.tifo、.xml)等信息寫入數(shù)據(jù)庫(kù)(Oracle)當(dāng)中,起到索引的作用;4)地圖瓦片數(shù)據(jù)上傳。通過所需上傳瓦片的地圖級(jí)別以及識(shí)別出的地圖范圍,通過存儲(chǔ)平臺(tái)IP地址定位進(jìn)行數(shù)據(jù)上傳,上傳結(jié)束后,生成.map索引文件存儲(chǔ)至數(shù)據(jù)庫(kù)中,作為客戶端訪問矢量瓦片地圖的入口,流程如圖2所示。

        圖2 矢量瓦片上傳流程

        2 矢量數(shù)據(jù)兩級(jí)并行處理技術(shù)

        本文提出的并行處理技術(shù)針對(duì)的是單PC機(jī)、PC機(jī)搭建的集群、多核服務(wù)器這3種處理情況[6],通過合理的進(jìn)程處理設(shè)計(jì)安排切圖任務(wù)及上傳任務(wù)的兩級(jí)并行處理,有效提高數(shù)據(jù)處理效率。

        在矢量數(shù)據(jù)處理過程中,本文在邏輯及物理形式上采用2種策略:

        1)基于圖幅的并行處理(邏輯層)。

        從邏輯層面上來看,地圖顯示是由每一塊圖幅拼接生成。對(duì)于原始矢量數(shù)據(jù),在其處理后數(shù)據(jù)最終入庫(kù)之前,其組織形式為分幅組織。具體表現(xiàn)形式為單個(gè)文件夾表示某一范圍的地圖數(shù)據(jù)及編號(hào)。這種文件夾的組織形式,根據(jù)不同圖幅的不同序號(hào)進(jìn)行數(shù)據(jù)讀取,解決了I/O中讀沖突的問題。

        因大量圖幅的切片處理不可能采取串行處理操作,所以在數(shù)據(jù)處理邏輯上,以圖幅為處理單元的并行處理是有必要的。但圖幅數(shù)量巨大的情況下,按照?qǐng)D幅進(jìn)行的并行任務(wù)分割過于細(xì)化,對(duì)硬件資源提出了極高的需求,且原始圖幅數(shù)據(jù)表示范圍與矢量瓦片目的切片范圍并不一致。因此瓦片切分后的結(jié)果會(huì)產(chǎn)生地圖數(shù)據(jù)碎片。碎片不能夠直接顯示,會(huì)產(chǎn)生數(shù)據(jù)覆蓋,導(dǎo)致顯示雜亂的問題。所以需要在實(shí)際數(shù)據(jù)處理即物理層上對(duì)并行任務(wù)單元進(jìn)行包裝。

        2)基于桶的并行處理(物理層)。

        由上文可知,矢量數(shù)據(jù)切圖的指令集是相同的,皆為矢量圖幅。將圖幅按照合適范圍組織為集合,單個(gè)集合啟動(dòng)并占用一個(gè)進(jìn)程,最終此集合切圖產(chǎn)生的矢量瓦片都存放在一起,稱作桶[7]。

        桶是矢量瓦片的物理組織形式,其組織結(jié)構(gòu)是通過數(shù)據(jù)處理之前的范圍劃分形成。例如:在實(shí)驗(yàn)中設(shè)定一個(gè)桶中包含256×256塊瓦片,規(guī)定6級(jí)為全球范圍500萬(即1∶500萬,下文類同)比例尺等級(jí)。由于0~6級(jí)矢量瓦片數(shù)量少于256×256,那么0~6級(jí)的矢量瓦片作為1個(gè)桶。7級(jí)為250萬比例尺等級(jí),根據(jù)0~6級(jí)的瓦片數(shù)量可分為4個(gè)桶。8級(jí)及以上以此類推。桶的個(gè)數(shù)與實(shí)際原始數(shù)據(jù)表示的地理范圍有關(guān),全球、全國(guó)、地區(qū)的瓦片數(shù)量差別很大,導(dǎo)致具體任務(wù)桶的個(gè)數(shù)同樣差別很大。表1展示了地圖比例尺與瓦片層級(jí)的對(duì)應(yīng)關(guān)系。

        表1 瓦片層級(jí)與地圖比例尺對(duì)應(yīng)關(guān)系

        地圖比例尺分母/萬瓦片層級(jí)地圖比例尺分母/萬瓦片層級(jí)50000010071000015085000225925003101010004511700511250060.513

        2.1 并行處理技術(shù)的參考因素

        在數(shù)據(jù)處理流程中,通常會(huì)考慮3個(gè)方面的協(xié)調(diào)問題:數(shù)據(jù)讀取、網(wǎng)絡(luò)服務(wù)傳輸與數(shù)據(jù)應(yīng)用。在流程結(jié)構(gòu)上有2種處理方式:1)全部任務(wù)輸入,全部任務(wù)傳輸,全部數(shù)據(jù)應(yīng)用;2)部分任務(wù)輸入,部分任務(wù)應(yīng)用,部分任務(wù)傳輸,部分?jǐn)?shù)據(jù)應(yīng)用。

        第1種邏輯即為最常見的串行模式,其處理結(jié)構(gòu)單一,但在海量數(shù)據(jù)的輸入下,效率低下,計(jì)算資源在等待I/O完成時(shí)空閑,容易產(chǎn)生內(nèi)存耗盡、磁盤空間不足等問題。第2種方式即為并行模式[8],但并不是一味地針對(duì)所有任務(wù)并行,需要通過對(duì)整個(gè)流程涉及的子任務(wù)進(jìn)行并行性分析,針對(duì)復(fù)雜的實(shí)際情況進(jìn)行并行串行的復(fù)合解決,如I/O與顯示、處理并行,I/O負(fù)責(zé)讀取數(shù)據(jù),顯示線程負(fù)責(zé)矢量瓦片加載,處理線程負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)換、切圖。

        依據(jù)流程結(jié)構(gòu)思想,在本文中,面向矢量數(shù)據(jù)及矢量瓦片,已有的I/O與Orale、HBase的主要線程包括連接線程、接收線程、讀線程、發(fā)送線程、消息線程和寫線程。讀線程和寫線程,負(fù)責(zé)從Oracle讀取矢量數(shù)據(jù)和寫入矢量數(shù)據(jù)。連接線程響應(yīng)和處理瓦片服務(wù)器和加載用戶的連接請(qǐng)求。接收線程處理瓦片請(qǐng)求事務(wù),接收瓦片存儲(chǔ)位置HBase平臺(tái)IP地址并對(duì)應(yīng)建立讀取隊(duì)列和發(fā)送消息。消息線程響應(yīng)用戶加載服務(wù)請(qǐng)求,響應(yīng)后,接收瓦片數(shù)據(jù)并對(duì)應(yīng)分發(fā)到寫線程。讀線程通過瓦片服務(wù)從HBase讀取瓦片數(shù)據(jù),將瓦片數(shù)據(jù)加入引用緩存,再設(shè)置發(fā)送事件,實(shí)現(xiàn)地圖顯示等后續(xù)功能。

        在上文中的多種線程中,切圖過程的讀、寫線程根據(jù)桶的范圍劃分對(duì)矢量圖幅進(jìn)行并行處理;瓦片服務(wù)的消息線程、發(fā)送線程根據(jù)瓦片桶的劃分進(jìn)行并發(fā)操作。

        2.2 數(shù)據(jù)處理的并行性分析

        對(duì)于海量矢量原始數(shù)據(jù),順序執(zhí)行單個(gè)瓦片切圖生成操作效率低下,因此進(jìn)行并行程序設(shè)計(jì)是極有必要的。

        在海量空間數(shù)據(jù)處理的流程中,并不是所有的處理環(huán)節(jié)都需要并行解決,需要根據(jù)其內(nèi)在的并行性進(jìn)行評(píng)估。下面介紹分析待解決問題并行性的集中常用方法[9]:

        1)數(shù)據(jù)相關(guān)性。每個(gè)節(jié)點(diǎn)代表一個(gè)待完成的任務(wù),從一個(gè)節(jié)點(diǎn)u到另一個(gè)節(jié)點(diǎn)v的帶方向的邊e表示任務(wù)u必須在任務(wù)v之前完成,若沒有節(jié)點(diǎn)u到節(jié)點(diǎn)v的有向邊,表示任務(wù)u與任務(wù)v無相關(guān)性,即存在較大的并行性。

        2)數(shù)據(jù)并行性。若任務(wù)u與任務(wù)v無相關(guān)性,但是2個(gè)任務(wù)對(duì)數(shù)據(jù)集內(nèi)的不同要素進(jìn)行相同的處理操作,可視為相關(guān)節(jié)點(diǎn)展現(xiàn)了數(shù)據(jù)并行性。

        假設(shè)矢量切圖為任務(wù)u,瓦片上傳為任務(wù)v,則u必須在v之前完成,相關(guān)性極強(qiáng),所以切圖與上傳并不能夠并行處理;假設(shè)001圖幅與002圖幅分別為切圖任務(wù)i、j,對(duì)應(yīng)生成的瓦片上傳任務(wù)為s、t,那么可知i與j,s與t無相關(guān)性,且每對(duì)任務(wù)的處理要素相同,即i與j,s與t存在數(shù)據(jù)并行性,可并行處理。

        圖3 矢量瓦片調(diào)度策略對(duì)比

        在并行性分析基礎(chǔ)上,需將具有并行性的應(yīng)用程序分解為一系列小任務(wù)。并行小任務(wù)的調(diào)度方式分為靜態(tài)調(diào)度、動(dòng)態(tài)調(diào)度2種。如圖3所示,瓦片并行任務(wù)單元分為A桶、B桶、C桶3種。A桶的任務(wù)執(zhí)行時(shí)間為2個(gè)單位時(shí)間,B桶的任務(wù)執(zhí)行時(shí)間為1個(gè)單位時(shí)間,C桶的任務(wù)執(zhí)行時(shí)間為3個(gè)單位時(shí)間。靜態(tài)調(diào)度分為4個(gè)進(jìn)程,任務(wù)平均分配,所有桶完成的總時(shí)間為7個(gè)單位時(shí)間。動(dòng)態(tài)調(diào)度每當(dāng)有一個(gè)桶完成,下個(gè)桶馬上從任務(wù)隊(duì)列調(diào)出執(zhí)行,所有桶完成的總時(shí)間為5個(gè)單位時(shí)間。此種調(diào)度方式可以顯著提升矢量數(shù)據(jù)處理效率,并有效利用軟硬件資源。

        2.3 單圖幅的切圖算法

        在1.2節(jié)提到的金字塔模型完整地定義了切圖生成的瓦片層級(jí)結(jié)構(gòu)。在本文中,瓦片尺寸為256×256像素,瓦片行號(hào)從0開始按照經(jīng)度-180°到180°遞增,瓦片列號(hào)按照緯度90°到-90°遞增,以此類推所有層級(jí)的瓦片[10]。圖4展示了實(shí)際矢量瓦片地圖的行列號(hào)及顯示范圍等信息。

        圖4 矢量瓦片地圖的格網(wǎng)信息

        在矢量數(shù)據(jù)切圖之前需要對(duì)地理顯示范圍的原始值進(jìn)行校準(zhǔn),使其長(zhǎng)高比為某一便于切圖的比例。從西北角開始對(duì)此固定范圍進(jìn)行切圖,后續(xù)的多層級(jí)地圖之間采用四叉樹數(shù)據(jù)結(jié)構(gòu)。如圖4所示,第level級(jí)上的一張瓦片到第level+1級(jí)將裂變成4張,此結(jié)構(gòu)有助于切圖和顯示。

        根據(jù)所述的基本原則及圖4所示,可得到單個(gè)瓦片的切圖生成算法[11]流程如圖5所示。

        矢量瓦片對(duì)應(yīng)地理顯示范圍如下:

        TileRange=360°/TileLvl2

        (1)

        其中,TileRange為當(dāng)前層級(jí)下一瓦片對(duì)應(yīng)的地理顯示范圍,其單位為度,TileLvl為當(dāng)前瓦片所在金字塔層級(jí)。那么據(jù)此可以得到瓦片行列號(hào)TileRows、TileCols與地理坐標(biāo)MX、MY的換算關(guān)系,其中Floor為向下取整操作,(orgX,orgY)為金字塔坐標(biāo)原點(diǎn)(-180°,90°),TileRows、TileCols計(jì)算分別如式(2)和式(3)所示。

        TileRows=Floor((MX-orgX)/TileRange)

        (2)

        TileCols=Floor((orgY-MY)/TileRange)

        (3)

        圖5 單瓦片的切圖生成流程

        按照以上規(guī)則配置的矢量原始數(shù)據(jù)進(jìn)行矢量瓦片切圖[12]。首先加載矢量數(shù)據(jù)中的切片限定范圍Bound,對(duì)此Bound進(jìn)行道格拉斯抽稀得到矢量數(shù)據(jù)切片的實(shí)際范圍,同時(shí)計(jì)算出目標(biāo)地圖的初始化切片范圍,即為按照所選圖幅選定的默認(rèn)切片范圍BBOX。為了得到實(shí)際切片范圍RealBound,需要對(duì)上文中的Bound及BBOX進(jìn)行疊置分析,其具體算法如下:

        通過獲得的實(shí)際切片范圍RealBound上的特征點(diǎn)坐標(biāo)及當(dāng)前的切片層級(jí)TileLvl,完成式(2)和式(3)的計(jì)算得到實(shí)際切片范圍對(duì)應(yīng)的瓦片行列號(hào)范圍(minTileRow,minTileCol)到(maxTileRow,maxTileCol)。那么切片工作可以概括為對(duì)(maxTileRow-minTileRow+1)×(maxTileCol-minTileCol+1)二維矩陣內(nèi)由當(dāng)前切片層級(jí)TileLvl、行號(hào)Line、列號(hào)Row唯一確定的圖幅范圍進(jìn)行切圖處理。

        根據(jù)單塊瓦片的實(shí)驗(yàn)結(jié)果顯示,無組織順序處理矢量數(shù)據(jù)會(huì)耗費(fèi)巨大的時(shí)間資源,且硬件空間資源利用效率較差。

        2.4 并行切圖技術(shù)的任務(wù)分割實(shí)現(xiàn)

        對(duì)矢量瓦片整體處理流程運(yùn)用2.2節(jié)的思想進(jìn)行分析[13],如圖6所示。

        圖6 矢量瓦片整體處理流程

        矢量數(shù)據(jù)入庫(kù)環(huán)節(jié)不支持并行處理,原因在于相同的圖層不能同時(shí)入庫(kù),比如2個(gè)水域陸地圖層不能同時(shí)入庫(kù),因?yàn)槠鋵?duì)應(yīng)的目標(biāo)ID相同。矢量數(shù)據(jù)切圖及上傳瓦片流程為串行模式,其原因在于2節(jié)點(diǎn)處理對(duì)象的不同,數(shù)據(jù)形式發(fā)生了改變,但是在2關(guān)鍵節(jié)點(diǎn)的子流程內(nèi),矢量數(shù)據(jù)切圖的子任務(wù)處理的對(duì)象相同,且互不干擾,因此其可并行性較強(qiáng),瓦片并行上傳亦是如此。

        劃分是將計(jì)算任務(wù)和數(shù)據(jù)進(jìn)行分塊的過程[14],劃分的過程一般采用以計(jì)算任務(wù)為中心的劃分策略。本文中任務(wù)分解的結(jié)果為切圖中桶的概念,那么并行切圖的過程如下:將所有待切片的任務(wù)放入任務(wù)隊(duì)列q中,每個(gè)任務(wù)包含切片層級(jí)、切片地理范圍2類信息,通過并行處理參數(shù)設(shè)定,如主線程數(shù)、子線程數(shù)等,啟動(dòng)切片任務(wù)主線程mainThread,并開啟子線程Thread1、Thread2、…、Threadn,當(dāng)隊(duì)列q中無任務(wù)時(shí),切圖完成,返還系統(tǒng)資源,具體過程如圖7所示。

        2.5 并行上傳技術(shù)的實(shí)現(xiàn)

        矢量數(shù)據(jù)進(jìn)行并行切圖處理后,需要將生成好的瓦片上傳[15]至相應(yīng)的存儲(chǔ)平臺(tái),快速將海量數(shù)據(jù)生成的瓦片數(shù)據(jù)上傳是并行處理技術(shù)的最后一個(gè)環(huán)節(jié)。在1.3節(jié)中提到了矢量瓦片上傳流程中需要在服務(wù)器端部署瓦片服務(wù),在本文中采用多線程并發(fā)進(jìn)行上傳任務(wù)規(guī)劃,利用HBase提供的接口進(jìn)行矢量瓦片上傳。

        HBase中矢量數(shù)據(jù)以表的形式存在,每張表存儲(chǔ)每張瓦片的行列號(hào)信息,用于確定該瓦片的基本信息,表的列存儲(chǔ)該行列號(hào),代表瓦片的具體顯示信息。針對(duì)HBase中存儲(chǔ)節(jié)點(diǎn)的分布情況,在多核處理器端,進(jìn)行并行瓦片上傳。針對(duì)服務(wù)器端存在大量用戶并發(fā)訪問的情況,瓦片服務(wù)采用Java線程池設(shè)計(jì),其具體設(shè)計(jì)類似于2.2節(jié)中的切片任務(wù)并行設(shè)計(jì):在啟動(dòng)瓦片服務(wù)時(shí),創(chuàng)建線程池,對(duì)提出的上傳請(qǐng)求進(jìn)行分解,分別對(duì)應(yīng)線程池中的若干個(gè)線程,實(shí)現(xiàn)并行處理的效果,各子線程任務(wù)結(jié)束后自動(dòng)結(jié)束并釋放系統(tǒng)資源。編程接口亦采用多線程設(shè)計(jì),并應(yīng)用散列(Hash)技術(shù)提高瓦片緩存查找效率。

        瓦片服務(wù)不需要專門硬件支持,可最大限度利用硬件性能,支持多網(wǎng)卡配置并共同提供網(wǎng)絡(luò)I/O。應(yīng)用編程接口支持多個(gè)獨(dú)立的瓦片服務(wù),共同為單個(gè)或多個(gè)應(yīng)用系統(tǒng)提供瓦片服務(wù)。

        3 實(shí)驗(yàn)結(jié)果對(duì)比與分析

        本文的硬件實(shí)驗(yàn)環(huán)境如表2所示。

        表2 實(shí)驗(yàn)硬件環(huán)境

        硬件類型CPU操作系統(tǒng)內(nèi)存/GB硬盤/TBPCInter Core i72.67 GHzWin7 64位81服務(wù)器(物理)Inter Xeon E74830 2.1 GHzWindows Server R2 20082565服務(wù)器(虛擬)Inter Xeon E74830 2.1 GHzWindows Server R2 20082565

        HBase集群部署如表3所示。

        表3 HBase集群部署

        節(jié)點(diǎn)名稱節(jié)點(diǎn)IPMaster7.5.9.1Master17.5.9.2Slave17.5.9.3Slave27.5.9.4Slave37.5.9.5

        矢量數(shù)據(jù)處理服務(wù)器部署如表4所示。

        表4 數(shù)據(jù)處理服務(wù)器部署情況

        服務(wù)器名稱服務(wù)器地址地理信息數(shù)據(jù)庫(kù)服務(wù)器7.5.9.36瓦片服務(wù)器(主)7.5.9.180瓦片服務(wù)器(備)7.5.9.181切圖服務(wù)器(主)7.5.9.183切圖服務(wù)器(備)7.5.9.182

        依據(jù)第2章提出的并行處理思想,對(duì)其進(jìn)行綜合實(shí)現(xiàn)得到如圖8所示的效果圖,圖中每個(gè)圓圈代表一塊瓦片,圓圈內(nèi)的數(shù)字代表此瓦片的層級(jí)及地理范圍信息,按照從上至下,從左至右序號(hào)遞增。切圖結(jié)束后通過服務(wù)自動(dòng)上傳到HBase集群。

        圖8 集成測(cè)試界面

        實(shí)驗(yàn)所用矢量數(shù)據(jù)分布情況:500萬比例尺全球圖,100萬比例尺全球圖,50萬比例尺全國(guó)圖,25萬比例尺全國(guó)圖,5萬比例尺含廣東廣西等6省地區(qū)圖,實(shí)驗(yàn)所用數(shù)據(jù)約400 GB,其源數(shù)據(jù)格式如圖9所示,每個(gè)文件夾代表某一范圍(圖幅)的原始矢量數(shù)據(jù)。

        圖9 原始矢量數(shù)據(jù)組織形式

        針對(duì)矢量數(shù)據(jù)并行切圖處理這一環(huán)節(jié),桶設(shè)定為256×256塊圖幅,通過進(jìn)程數(shù)量設(shè)定,對(duì)500萬、100萬、50萬、25萬、5萬比例尺地圖數(shù)據(jù)分別在服務(wù)器端及PC進(jìn)行實(shí)驗(yàn),結(jié)果如表5所示。

        表5 矢量切圖耗時(shí)結(jié)果

        進(jìn)程數(shù)量地圖比例尺分母/萬50010050255163.8 min4.8 h 35.2 h2.9 d12 d417.2 min74.3 min 8.95 h19 h 3 d810.4 min39.4 min4.6 h8.9 h 33 h 167.1 min25.6 min2.2 h4.2 h17 h326.4 min20.8 min1 h1.9 h8 h

        從表5可以看出,在輸入數(shù)據(jù)量較小的500萬、100萬比例尺情況下,在8進(jìn)程之后,增加并行任務(wù)數(shù)量并不能顯著提高處理效率。原因在于此時(shí)并行任務(wù)小于進(jìn)程數(shù)量,過大的進(jìn)程數(shù)量設(shè)定反而浪費(fèi)計(jì)算資源[16]。但在數(shù)據(jù)量較大的50萬、25萬、5萬比例尺情況下,增加并行處理的進(jìn)程數(shù)可大幅度提高切圖效率。在32進(jìn)程、256 GB內(nèi)存的服務(wù)器上尤為明顯,將單進(jìn)程處理的近半個(gè)月時(shí)間縮短為8 h,大大提高了海量矢量數(shù)據(jù)的處理效率。

        針對(duì)矢量瓦片上傳并行這一環(huán)節(jié),對(duì)500萬、100萬、50萬、25萬、5萬比例尺瓦片地圖進(jìn)行并行上傳的時(shí)間測(cè)試,如表6所示。

        表6 瓦片上傳時(shí)間對(duì)比

        由表6數(shù)據(jù)可得到單任務(wù)即單線程執(zhí)行上傳任務(wù)所需平均速率如圖10所示。

        圖10 單線程執(zhí)行上傳任務(wù)平均速率

        如圖10所示,上傳帶寬約為百兆光纖的傳輸平均速率12.5 MB/s[17]。本文實(shí)驗(yàn)的上傳速率計(jì)算中,單線程任務(wù)的寫入時(shí)間可以忽略不計(jì),其主要時(shí)間消耗在于讀取時(shí)間以及網(wǎng)絡(luò)時(shí)延。隨著數(shù)據(jù)量的大幅增加,單線程的任務(wù)負(fù)載由不充分到滿負(fù)荷,所以總體趨勢(shì)上看,單線程執(zhí)行上傳任務(wù)平均速度是遞增的,到達(dá)峰值時(shí)保持平穩(wěn)的波動(dòng)。

        4 結(jié)束語(yǔ)

        綜上所述,本文所提出的并行處理技術(shù)包含矢量數(shù)據(jù)并行處理以及矢量瓦片并行上傳2部分,通過合理的2步并行及其他環(huán)節(jié)的串行處理可以使服務(wù)端瓦片地圖的整體處理效率得到有效提升。

        從海量空間數(shù)據(jù)處理的整體架構(gòu)方面考慮,本文的空間數(shù)據(jù)庫(kù)可整體遷移至HBsae集群,利用分布式數(shù)據(jù)庫(kù)高并發(fā)的特點(diǎn),在矢量數(shù)據(jù)讀寫等方面可繼續(xù)進(jìn)行優(yōu)化,為瓦片地圖的生成提供更簡(jiǎn)潔更有效的生成方式。

        猜你喜歡
        瓦片數(shù)據(jù)庫(kù)
        一種基于主題時(shí)空價(jià)值的服務(wù)器端瓦片緩存算法
        慣性
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        基于NoSQL數(shù)據(jù)庫(kù)的瓦片地圖服務(wù)
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        成年女人色毛片| 少妇性l交大片免费1一少| 日韩中文字幕不卡在线| 国产成人av在线免播放观看新| 国产成年女人特黄特色毛片免 | 一二三四日本中文在线| 成年女人永久免费看片 | 中文字幕一区二区三区亚洲| 在线观看一级黄片天堂| 99精品国产一区二区三区a片| 亚洲区在线播放| 国产一区二区三区涩涩| 国产亚洲精品一区二区无| 国产在视频线精品视频| 高清无码精品一区二区三区| 日本加勒比一道本东京热| 国产人成视频在线视频| 国产女人高潮视频在线观看 | 久久精品日本美女视频 | 黄网站a毛片免费观看久久| 黄色av亚洲在线观看| 精品久久久无码中字| 国产欧美久久久另类精品| 中文字幕一区二区在线| 婷婷精品国产亚洲av麻豆不片| 麻豆精品传媒一二三区| 久久久久久99精品| 自拍偷区亚洲综合激情| 亚洲综合av永久无码精品一区二区| 无遮高潮国产免费观看| 精品久久久无码不卡| 国产精品国产三级野外国产| 亚洲国产成人影院在线播放| 一本无码人妻在中文字幕| 亚洲女同性恋激情网站| 久久久久88色偷偷| 久久综合给合久久狠狠狠97色69| 久久久亚洲精品一区二区| 精品国产亚洲av麻豆| 国产丝袜无码一区二区三区视频| 国产成人cao在线|