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