王燕楓+陳高+王冬
[摘 要]文章闡述了在環(huán)保大數(shù)據(jù)環(huán)境下利用Hadoop和HTML5技術(shù)解決WebGIS系統(tǒng)建設(shè)中的可視化效率問題,針對海量數(shù)據(jù)的圖像化渲染中容易出現(xiàn)的加載延時長、系統(tǒng)響應(yīng)慢的問題,構(gòu)建基于Hadoop的大數(shù)據(jù)處理模型和WebGIS系統(tǒng)架構(gòu),通過數(shù)據(jù)庫、空間數(shù)據(jù)服務(wù)、WebGIS客戶端實現(xiàn)等多個環(huán)節(jié),提高WebGIS系統(tǒng)的效率。
[關(guān)鍵詞]環(huán)保;大數(shù)據(jù);Hadoop;WebGIS
[DOI]10.13939/j.cnki.zgsc.2017.09.029
隨著環(huán)保工作的不斷展開和深化以及環(huán)保大數(shù)據(jù)工程的建設(shè)實施,對基于WebGIS的數(shù)據(jù)可視化查詢和綜合分析等要求也越來越高,目前江蘇省環(huán)境信息系統(tǒng)的設(shè)計架構(gòu),受到傳統(tǒng)數(shù)據(jù)庫對大數(shù)據(jù)處理性能和瀏覽器加載能力的制約,在WebGIS中加載大量的幾何圖形(如在頁面中加載上萬個污染源點位)時,容易發(fā)生加載延時過長,甚至瀏覽器崩潰的問題,極大地影響了工作效率。
隨著大數(shù)據(jù)技術(shù)的快速發(fā)展,Hadoop等大數(shù)據(jù)計算平臺能夠?qū)⒑A康臄?shù)據(jù)進行分布并進行處理,為海量環(huán)保地理數(shù)據(jù)的有效存儲和高效運算提供了可能。同時,隨著WebGIS技術(shù)的發(fā)展,如HTML 5等技術(shù)的不斷成熟,也為大數(shù)據(jù)在瀏覽器客戶端的加載繪制提供了優(yōu)化的方案。
江蘇省生態(tài)環(huán)境大數(shù)據(jù)圖形化展示平臺的建設(shè),就是在面對大數(shù)據(jù)環(huán)境下,利用Hadoop技術(shù)和HTML 5技術(shù),提出一種GIS數(shù)據(jù)可視化系統(tǒng)的優(yōu)化方案。
1 Hadoop和HTML 5技術(shù)綜述
1.1 Hadoop技術(shù)
Hadoop是一個由Apache基金開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。Hadoop由HDFS、 MapReduce、HBase、Hive等部分組成,其設(shè)計核心是HDFS和MapReduce,HDFS為海量的數(shù)據(jù)提供了存儲,而 MapReduce為海量的數(shù)據(jù)提供了計算,Hbase則為處理后的數(shù)據(jù)提供存儲。
1.2 HTML 5技術(shù)
HTML 5是標(biāo)準通用標(biāo)記語言下的一個應(yīng)用超文本標(biāo)記語言(HTML)的第五次重大修改,HTML 5提供了高度的兼容性和標(biāo)準性,能夠?qū)⒁曨l、音頻、圖像、動畫以及同電腦的交互都標(biāo)準化,同時,HTML 5提供了豐富的標(biāo)簽對微數(shù)據(jù)和微格式等方面的支持,為用戶構(gòu)建數(shù)據(jù)驅(qū)動的Web應(yīng)用提供支撐。其中的HTML Canvas,作為一個HTML 5支持的圖像標(biāo)簽,可以用腳本進行高性能的圖像繪制、渲染功能。
2 基于Hadoop的數(shù)據(jù)架構(gòu)設(shè)計
在環(huán)保大數(shù)據(jù)可視化系統(tǒng)中,Hadoop作為一個大數(shù)據(jù)分布式處理架構(gòu),主要利用其中HDFS、 MapReduce、HBase等技術(shù)實現(xiàn)數(shù)據(jù)層面的數(shù)據(jù)庫設(shè)計,為環(huán)??臻g大數(shù)據(jù)提供分布式的計算架構(gòu)。
2.1 構(gòu)建GeoJson的地理數(shù)據(jù)格式
GeoJson是一種對各種地理數(shù)據(jù)結(jié)構(gòu)進行編碼的格式,基于Javascript對象表示法的地理空間信息數(shù)據(jù)交換格式。
由于Hadoop不支持傳統(tǒng)的空間數(shù)據(jù)格式,因此對于矢量空間數(shù)據(jù)而言,可以采用基于GeoJson格式來實現(xiàn)空間幾何實體的描述。它支持OGC定義的以下幾種幾何類型:Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon和GeometryCollection。又因為其具有表達數(shù)據(jù)的簡潔性、JavaScript原生支持等特點。
GeoJson格式的地理數(shù)據(jù)中包含對一條空間數(shù)據(jù)對象的空間坐標(biāo)、id、type等內(nèi)容描述。格式如下:
以GeoJson格式存儲的數(shù)據(jù),通過數(shù)據(jù)轉(zhuǎn)換軟件,將空間數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的JSON文本,就能滿足Hadoop管理和運算的需求。
2.2 基于Hadoop的系統(tǒng)存儲結(jié)構(gòu)
基于Hadoop的環(huán)保大數(shù)據(jù)可視化系統(tǒng)存儲結(jié)構(gòu)設(shè)計如圖1所示,利用Hadoop分布式技術(shù)為系統(tǒng)設(shè)計數(shù)據(jù)存儲和數(shù)據(jù)處理的模型和架構(gòu),使用Hadoop分布式文件系統(tǒng)存儲海量環(huán)保數(shù)據(jù),使用MapReduce并行處理數(shù)據(jù),使用Hbase存儲處理后的海量數(shù)據(jù),從而實現(xiàn)海量環(huán)保數(shù)據(jù)的存儲和計算。
數(shù)據(jù)層基于Hadoop的分布式架構(gòu),其中,HDFS用于數(shù)據(jù)存儲和數(shù)據(jù)管理,基于HBase建立空間數(shù)據(jù)表,其中地圖和業(yè)務(wù)元數(shù)據(jù)存儲在HBase表中,地圖瓦片數(shù)據(jù)存儲在HDFS中,這樣解決了HDFS不便管理小文件的問題,同時利用HBase時間戳來實現(xiàn)數(shù)據(jù)版本控制。通過MapReduce分布式并行計算機架構(gòu),將空間數(shù)據(jù)的處理和分析任務(wù)分散到各個計算節(jié)點,利用各節(jié)點上的地圖服務(wù)、業(yè)務(wù)數(shù)據(jù)服務(wù),對海量數(shù)據(jù)進行并發(fā)計算,以提高數(shù)據(jù)處理的效率。
Hadoop存儲架構(gòu)設(shè)計
2.3 數(shù)據(jù)查詢與分析過程
環(huán)保大數(shù)據(jù)可視化系統(tǒng)中,包含基本的空間查詢,如空間位置查詢、空間分析等;還包含空間數(shù)據(jù)的屬性數(shù)據(jù)查詢,如監(jiān)測點位的監(jiān)測數(shù)據(jù),這兩種查詢在傳統(tǒng)查詢模式下,多利用建設(shè)空間索引和數(shù)據(jù)索引的方式,來減少I/O的使用次數(shù),來提高系統(tǒng)效率,而在Hadoop存儲結(jié)構(gòu)下,利用數(shù)據(jù)分割和MapReduce能夠提供更好的數(shù)據(jù)運行效率。
基于MapReduce的空間查詢,是在Hbase表中,將表分為多個Region,每個以Hbase表分塊作為Map任務(wù)劃分依據(jù),Map函數(shù)的key作為該要素的ID,value為該要素ID對應(yīng)的記錄。在針對查詢條件對各要素進行查詢篩選。對于篩選后的數(shù)據(jù)進行分類,將分類ID作為Map結(jié)果的key,再交由Reduce進行合并處理,結(jié)果存入數(shù)據(jù)庫。
3 HTML 5可視化優(yōu)化設(shè)計
HTML Canvas作為一個HTML 5支持的圖像標(biāo)簽,可以通過腳本在瀏覽器中進行圖形渲染,通過JavaScript腳本將圖形直接繪制到Canvas容器內(nèi)。利用Canvas中的API,實現(xiàn)對圖形的繪制,其優(yōu)勢在于,可以實現(xiàn)百萬級空間對象的快速渲染,為環(huán)保大數(shù)據(jù)的可視化提供客戶端優(yōu)化解決方案。
4 系統(tǒng)實現(xiàn)
4.1 系統(tǒng)整體架構(gòu)設(shè)計
基于Hadoop的環(huán)保大數(shù)據(jù)可視化系統(tǒng)為B/S結(jié)構(gòu)的Web系統(tǒng),系統(tǒng)采用三層架構(gòu)設(shè)計,包含數(shù)據(jù)層、服務(wù)層、應(yīng)用層。
(1)數(shù)據(jù)層。數(shù)據(jù)層由關(guān)系型數(shù)據(jù)庫SQL Server和非關(guān)系型數(shù)據(jù)系統(tǒng)HDFS、Hbase組成,在數(shù)據(jù)存儲中Hadoop分布式文件系統(tǒng)(HDFS)用于存儲非結(jié)構(gòu)化數(shù)據(jù)包括Geojson格式的瓦片文件,Hbase用于存儲空間數(shù)據(jù)和運行數(shù)據(jù),業(yè)務(wù)數(shù)據(jù)中的各類元數(shù)據(jù)和屬性數(shù)據(jù)存儲在關(guān)系型數(shù)據(jù)庫中。
(2)服務(wù)層。服務(wù)層通過對外提供WMS、WFS、WPS等Web服務(wù)的方式,對外提供地圖數(shù)據(jù)服務(wù)、元數(shù)據(jù)管理服務(wù)、業(yè)務(wù)數(shù)據(jù)服務(wù)等,為系統(tǒng)提供應(yīng)用支撐。
(3)應(yīng)用層。應(yīng)用層作為系統(tǒng)的表達層,利用HTML 5技術(shù),在瀏覽器端為系統(tǒng)提供各類基礎(chǔ)應(yīng)用服務(wù)、業(yè)務(wù)數(shù)據(jù)應(yīng)用服務(wù),為用戶提供系統(tǒng)展示及交互界面。
4.2 系統(tǒng)功能設(shè)計
4.2.1 空間數(shù)據(jù)查詢
(1)污染源空間查詢。實現(xiàn)江蘇省40余萬污染源(工業(yè)類、農(nóng)業(yè)類、生活類污染源)的快速分類查詢、快速點位查詢,并實現(xiàn)污染源名稱、編號、所屬流域、地址、行業(yè)類別等屬性信息的查詢展示。
(2)空氣質(zhì)量站點查詢。實現(xiàn)全省空氣質(zhì)量監(jiān)測站點位置的快速查詢,并實現(xiàn)全省空氣質(zhì)量監(jiān)測數(shù)據(jù)的實時查詢展示。
(3)水質(zhì)監(jiān)測站點查詢。實現(xiàn)全省水質(zhì)監(jiān)測站點查詢,以及水質(zhì)監(jiān)測數(shù)據(jù)及流域污染物種類的查詢展示。
(4)危廢監(jiān)控查詢。實現(xiàn)全省危廢企業(yè)點位查詢和監(jiān)測數(shù)據(jù)的查詢展示。
4.2.2 數(shù)據(jù)統(tǒng)計分析
(1)主要水污染物統(tǒng)計查詢。以水質(zhì)監(jiān)測數(shù)據(jù)為基礎(chǔ),針對各流域?qū)崿F(xiàn)流域內(nèi)主要污染物,包括氨氮、總磷、總氮等指標(biāo)的數(shù)據(jù)統(tǒng)計。并在地圖上以圖表等形式進行展示。
(2)污染源分布統(tǒng)計。統(tǒng)計全省污染源企業(yè)按照不同行業(yè)、不同污染類別等指標(biāo),在全省空間上的分布統(tǒng)計,在地圖上進行渲染展示。
4.3 性能測試與結(jié)果分析
江蘇省生態(tài)環(huán)境大數(shù)據(jù)平臺利用本文提出的系統(tǒng)架構(gòu),部署運行在一個6個節(jié)點Hadoop集群上,DataNode節(jié)點5個,NameNode節(jié)點1個,HMaster節(jié)點1個,RegionServer節(jié)點5個,Zookeeper節(jié)點3個。
為測試系統(tǒng)的實際查詢與渲染能力,對全省污染源點位進行查詢渲染,對14萬企業(yè)污染源數(shù)據(jù)進行測試,性能測試結(jié)果如下表所示:
5 結(jié) 論
本文通過利用Hadoop和HTML 5技術(shù),對傳統(tǒng)結(jié)構(gòu)的WebGIS結(jié)構(gòu)進行了優(yōu)化,并利用此結(jié)構(gòu),建設(shè)了江蘇省生態(tài)環(huán)境大數(shù)據(jù)平臺。
實驗證明,使用Hadoop的體系架構(gòu)和HTML5展示大數(shù)據(jù)量的地理數(shù)據(jù)對于傳統(tǒng)架構(gòu)在數(shù)據(jù)處理和展示效率上有著極大的增強,對于使用此方法來構(gòu)建WebGIS系統(tǒng)有著高效的空間存儲效率和展示效率。
參考文獻:
[1]葉娜,雒偉民,張峰,等.基于WebGIS的圖形加載性能優(yōu)化研究[J].福建電腦,2013,11(9).
[2]尹芳,馮敏.基于開源Hadoop的矢量空間數(shù)據(jù)分布式處理研究[J].計算機工程與應(yīng)用,2013,49(16):25-29.