李勝友,楊秋蓮,孫忠芳
(天津市測繪院,天津 300381)
基于云平臺Hadoop的三維虛擬地球數(shù)據(jù)組織形式
李勝友?,楊秋蓮,孫忠芳
(天津市測繪院,天津 300381)
云計算的發(fā)展推動了整個行業(yè)的進步,同時也給GIS的發(fā)展提供了非常大的機會。本文針對開源云平臺Hadoop搭建了一個小型的私有云,利用Hadoop HBase存儲鍵值對數(shù)據(jù)的優(yōu)勢,將三維虛擬地球GeoGlobe格式數(shù)據(jù)存儲于HBase之上,實現(xiàn)了三維GIS的金字塔狀瓦片數(shù)據(jù)存儲到HBase中,最后給出了具體的實現(xiàn)方案。
云計算;Hadoop;HBase;3D GIS;金字塔數(shù)據(jù)組織;GIS服務器
隨著2006年Google首席執(zhí)行官埃里克.施密特首次提出“云計算”概念以來,“云計算”的推廣和使用就得到了前所未有的繁榮,亞馬遜的Amazon的彈性計算云(EC2)、Google的云計算系統(tǒng)、微軟公司的Windows Azure以及IBM的“藍云”等都在此舞臺上競相爭艷。
云計算的各項功能和便利同樣刺激和壯大了GIS的技術力量,云計算的各種特征可以用于支撐地理空間信息的各要素,包括建模、存儲、處理等等,從而改變用戶傳統(tǒng)的GIS應用方法和建設模式,以一種更加友好的方式,高效率、低成本地使用地理信息資源。
國外GIS大公司如Esri已經(jīng)涉及云GIS領域。Esri目前發(fā)展比較成熟的云GIS產(chǎn)品都是使用了公有云GIS[1],包括ArcGIS.COM、ArcGIS Apps/APIs以及ArcGIS Amazon,基于ArcGIS的公共云平臺,用戶能夠免費使用大量的高質(zhì)量地圖服務和任務服務,基于這些GIS資源用戶可以創(chuàng)建自己的應用工具,并共享自己的GIS成果;而云計算先驅(qū)Google公司推出的Google Maps及Google Earth則將云計算的使用完全推廣到行業(yè)外。利用后臺強勁的GFS及BigTable服務器,Google Maps可以提供含有政區(qū)和交通以及商業(yè)信息的矢量地圖、不同分辨率的衛(wèi)星照片和可以用來顯示地形和等高線地形視圖,Google Earth則把衛(wèi)星圖片、航空照相和GIS數(shù)據(jù)存儲在云端服務器,利用云端服務器強大的分布式搜索能力,快速準確地為全球幾十億用戶提供3D GIS服務。
2.1 開源云計算平臺Hadoop
Hadoop采用分布式系統(tǒng)基礎架構(gòu),由Apache基金會所開發(fā),Hadoop為應用程序透明的提供了一組穩(wěn)定/可靠的接口和數(shù)據(jù)處理。Hadoop生態(tài)系統(tǒng)圖,如圖1所示:
圖1 Hadoop生態(tài)系統(tǒng)圖
Hadoop三個核心模塊分別為HDFS、MapReduce和HBase。
HDFS是一個分布式文件系統(tǒng),是Hadoop的基礎,設計思想源于Google的GFS,其架構(gòu)如圖2所示:
圖2 HDFS架構(gòu)圖
HDFS采用了數(shù)據(jù)元數(shù)據(jù)和數(shù)據(jù)本身分散存儲的形式,主節(jié)點存儲數(shù)據(jù)的元信息,數(shù)據(jù)節(jié)點存儲了數(shù)據(jù)本身,這種集中調(diào)控、分散任務的形式大大提高了海量數(shù)據(jù)的存取效率,另外使用數(shù)據(jù)塊多副本存儲的設計思想保證了數(shù)據(jù)的安全性和高效性。
MapReduce是Hadoop的靈魂,如圖3所示:
圖3 MapReduce流程圖
MapReduce是一種分布式計算模式,將任務進行兩步分解,中間還有一個shuffle過程,不僅可以達到分布式計算的效果,還可以在任務中期進行動態(tài)的任務調(diào)配。MapReduce的出現(xiàn)解決了海量數(shù)據(jù)計算的難題,使得對大數(shù)據(jù)的分析和處理不再成為數(shù)據(jù)庫的瓶頸。
HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,在Hadoop之上提供了類似于BigTable的能力,HBase適于存儲非結(jié)構(gòu)化的數(shù)據(jù),它的架構(gòu)如圖4所示:
圖4 HBase系統(tǒng)架構(gòu)
HBase的服務器體系結(jié)構(gòu)遵從簡單的主從服務器架構(gòu),它由HRegion服務器(HRegion Server)群和HBase Master服務器構(gòu)成。HBase Master服務器負責管理所有的HRegion服務器,而HBase中所有的服務器都是通過Zookeeper來協(xié)調(diào),并處理HBase服務器運行期間可能遇到的錯誤的。
HBase運行于HDFS分布式文件系統(tǒng)之上,使用Hadoop的MapReduce計算模型來并行處理大規(guī)模數(shù)據(jù),這正是別的數(shù)據(jù)庫系統(tǒng)性能與它無法相比的原因。
2.2 三維數(shù)字地球瓦片金字塔結(jié)構(gòu)
金字塔狀數(shù)據(jù)組織在GIS中非常常見,它充分利用了人體視覺和計算機數(shù)據(jù)結(jié)構(gòu)技術,將不同層次的地理信息數(shù)據(jù)以分級的形式進行存取。如圖5所示:
圖5 金字塔狀數(shù)據(jù)組織形式
在建立面向全球多尺度層次四叉樹空間索引過程時,首先分別對東、西半球建立兩個層次四叉樹結(jié)構(gòu),然后再分別以這兩個四叉樹范圍空間為基準往下逐層進行空間范圍四叉樹的劃分。通常情況下,最上層的Level0只是一張圖,往下一層,Level1就有4張圖,依次往下進行劃分。劃分完后要對每張圖片進行層及行列編碼(Level,col,row),行列編碼值不僅是一個瓦片數(shù)據(jù)的索引,同時還是瓦片數(shù)據(jù)的地理位置標志,通過數(shù)學公式,行列編碼和經(jīng)緯度可以實現(xiàn)相互轉(zhuǎn)換。
HBase是Apache借鑒BigTable架構(gòu)而推出的非結(jié)構(gòu)化數(shù)據(jù)庫系統(tǒng),它所采取的分布式存取架構(gòu)和分布式計算模式非常適于存儲類似于非結(jié)構(gòu)化的數(shù)據(jù),同時分布式的架構(gòu)確保HBase可以存儲類似于GIS瓦片形式的海量的非結(jié)構(gòu)化行數(shù)據(jù)。虛擬地球客戶端向服務端發(fā)送瓦片唯一的標志碼,服務端利用MapReduce分布式計算方式搜索存儲于HBase數(shù)據(jù)庫中的海量鍵值對數(shù)據(jù),由于巨大的行記錄數(shù)據(jù)沒有采取表分割策略,在搜索時大大減少了多表之間的鏈接查詢;非結(jié)構(gòu)化的結(jié)構(gòu)形式同時減少了數(shù)據(jù)的冗余性,保障了服務器的高效;同時云計算服務器將歷史及現(xiàn)勢GIS瓦片一并存儲于一個表,為瓦片數(shù)據(jù)階段性對比分析提供了極大便利。因此,本文所有三維虛擬地球瓦片數(shù)據(jù)全部使用HBase存儲。
3.1 數(shù)據(jù)存取架構(gòu)
基于Hadoop的三維虛擬地球后臺數(shù)據(jù)庫采用了HBase技術架構(gòu),如圖6所示:
圖6 實驗系統(tǒng)架構(gòu)
客戶端使用了GeoGlobe三維虛擬地球,能夠用于展示三維狀態(tài)下的影像、地形及模型數(shù)據(jù)。數(shù)據(jù)存儲于HBase之中,它利用的是HDFS分布式文件系統(tǒng),客戶端通過向服務器發(fā)送相應瓦片數(shù)據(jù)請求,由HBase利用MapReduce分布式計算方法搜索并處理相應的數(shù)據(jù),經(jīng)由網(wǎng)絡發(fā)送到GeoGlobe客戶端進行顯示。
在存儲過程中,HBase數(shù)據(jù)存儲采用一個稀疏的長期存儲的、多維度的、排序的映射表,這張表的索引是行關鍵字、列關鍵字和時間戳。如圖7所示:
圖7 HBase行數(shù)據(jù)存儲方式
這是這種特殊的設計結(jié)構(gòu),使得HBase不僅可以存儲當前數(shù)據(jù),還可以存儲過去的數(shù)據(jù),各個數(shù)據(jù)之間由時間戳區(qū)分,標志一樣的同一個瓦片數(shù)據(jù)可以存于一個表中,先存的時間戳值比較小,后存的數(shù)據(jù)的時間戳值比較大,充當了數(shù)據(jù)的版本信息,在搜索時可以指定時間段及版本個數(shù),從而檢索到對應的一個或者多個數(shù)據(jù)。
3.2 瓦片數(shù)據(jù)組織形式
GeoGlobe采用了不同地區(qū)的瓦片數(shù)據(jù)形成一個數(shù)據(jù)集的方式,從遠視點向近視點行進時,全球范圍內(nèi)分辨率較低的幾層數(shù)據(jù)構(gòu)成一個數(shù)據(jù)集,再往下時,亞洲、歐洲等地區(qū)的較高分辨率瓦片分別形成一個數(shù)據(jù)集,再往下,到達每個省市時都有一個特定的數(shù)據(jù)集,如圖8所示:
圖8 GeoGlobe數(shù)據(jù)集組織方式
傳統(tǒng)數(shù)據(jù)庫中,不同的數(shù)據(jù)集存儲于不同的數(shù)據(jù)庫中,然而由于HBase表特征的結(jié)構(gòu)形式,使得HBase表能夠輕松調(diào)度多達10億行的數(shù)據(jù),因此,可以將一個數(shù)據(jù)集的數(shù)據(jù)存儲到一個HBase表中,表的名字則是地區(qū)名字標識。如圖9所示:
圖9 試驗系統(tǒng)表組織方式
表總共只包含了3個列屬性,第一個是通用的行關鍵字屬性字段,可以將它對應為數(shù)據(jù)集名字、瓦片所在層數(shù)及瓦片行列號所形成的字符串,在瓦片數(shù)據(jù)檢索時,只通過第一個字段就可以定位到瓦片數(shù)據(jù)所在行;行的第二個字段名字取為length,用于表示瓦片二進制數(shù)據(jù)的字節(jié)長度;行的第三個字段是存儲實際的瓦片的二進制數(shù)據(jù),是瓦片的主體部分。
3.3 HBase操作瓦片函數(shù)
為了方便用戶操作HBase中數(shù)據(jù),HBase提供了表數(shù)據(jù)更新API接口,主要分為以下幾類接口函數(shù):
(1)建立數(shù)據(jù)表函數(shù)
HTableDescriptor是具體表屬性管理類,admin是HBaseAdmin類,此類用于管理所有的HBase中所有表。HColumnDescriptor用于標識表字段,每個字段都是HTableDescriptor類表的一個內(nèi)部字段類。
(2)添加行數(shù)據(jù)函數(shù)
HTablePool用于異步對所有的表進行管理,Put用于存儲行內(nèi)所有的字段值,通過HTable的put方法將存儲在Put類對象中數(shù)據(jù)存儲到HTable表中。
(3)查詢行字段數(shù)據(jù)函數(shù)
查詢字段值是HBase中十分重要的功能,這個是通過Get類對象達到效果的。通過向Get類對象提供關鍵字值,再從HTable中獲取到Result類對象,此時返回的可能是多個結(jié)果行數(shù)據(jù),還需要提供過濾條件獲取目的KeyValue類對象,最后返回Value字段。
(4)刪除行數(shù)據(jù)函數(shù)
在HBase中刪除一條記錄使用Delete對象,和Get對象一樣,給予Delete對象行數(shù)據(jù)關鍵值,調(diào)用HTable的delete方法就能將行數(shù)據(jù)刪掉。
(5)刪除表函數(shù)
使用HBaseAdmin首先將相應表設置為不可用,然后再刪除表。
3.4 實驗結(jié)果
本論文實驗采用LoadRunner虛擬用戶訪問,服務器使用分布式集群,除服務器之外,采用相同的資源配置,實驗結(jié)果采集到服務器吞吐量及用戶并發(fā)數(shù),最后分析服務器性能。
(1)服務器吞吐量對比分析,如圖10、圖11所示。
圖10 非HBase服務器吞吐量效果圖
圖11 HBase服務器吞吐量效果圖
在同種情況下,非HBase服務器平均吞吐量487 522.308字節(jié)每秒,最高吞吐量是750 000字節(jié)每秒,而在采用HBase服務器之后,平均吞吐量達到了809 101.70字節(jié)每秒,最高吞吐量也上升到了1 064 511.75字節(jié)每秒,效率平均提高了65.96%。
(2)服務器用戶數(shù)對比分析,如圖12、圖13所示。
圖12 非HBase服務器用戶數(shù)效果圖
圖13 HBase服務器用戶數(shù)效果圖
在同種情況下,非HBase服務器多用戶并發(fā)的數(shù)量達到68個時,已經(jīng)是上限,而平均只有35.292個,而在采用HBase服務器之后,多用戶并發(fā)量平均值是81.452,平均數(shù)提高了130.79%,而在用戶并發(fā)達到100個以上時,系統(tǒng)的運行仍然非常穩(wěn)定。
云計算的發(fā)展能夠極大推動GIS行業(yè)的前進,同時云計算的各項特點非常適用于GIS數(shù)據(jù)的存儲與分析。利用開源云平臺Hadoop可以快速的部署本單位私有云,根據(jù)三維虛擬地球數(shù)據(jù)組織特點,能成功地從云平臺獲取到相應的服務。
[1] 黃志洪.大數(shù)據(jù)分析的案例、方法與挑戰(zhàn)[R].中山大學海量數(shù)據(jù)與云計算研究中心,2012.
[2] 陳靜,龔健雅,向隆剛.全球多尺度空間數(shù)據(jù)模型研究[J].地理信息世界,2011,36(4):24~27.
[3] 李少丹.“云GIS”的發(fā)展趨勢分析[J].電腦知識與技術,2011,16,3824~3826.
[4] Esri中國(北京)有限公司.ArcGIS云計算解決方案-觸手可及的云[R].
[5] 郝樹魁.分布式存儲系統(tǒng)HBase原理解析[OL/DB].中國科技論文在線.
[6] 宋關福.云計算時代的GIS技術發(fā)展漫談[J].測繪與空間地理信息,2011,34(S),1~4.
Study on Virtual Globe’s Data Structure Based on Cloud Computing Platform Hadoop
Li Shengyou,Yang Qiulian,Sun Zhongfang
(Tianjin Institute of Surveying and Mapping,Tianjin 300381,China)
Cloud computing’developing has enforced IT develop.On the same,this is a change for GIS.This paper setup a tiny private Cloud Computing Platform based on Open Source framework Hadoop,use the advantage of HBase in storaging the key/value data,this paper store the Virtual Globe GeoGlobe tile data on the HBase,implementing the storing of 3D GIS Pyramid tile data,giving the implementing of the resolution.
cloud computing;hadoop;HBase;3D GIS;pyramid tile data structure;GIS server
2014—02—20
李勝友(1973—),男,高級工程師,主要從事測繪及GIS開發(fā)等技術工作。