石娟
身份證號碼:4312301991****0328 上海 201801
目前基于傳統空間數據庫的空間數據管理方法由于存儲與計算能力有限,在面對海量空間數據的查詢以及鄰近分析、插值分析、緩沖區分析、疊加分析等空間分析時存在性能瓶頸,嚴重制約大數據GIS的發展應用。如何將云計算引入到海量空間數據的處理近年來也成為GIS行業的研究熱點。
本文結合空間數據特性,基于hadoop分布式框架,從空間數據分布式存儲、二級分布式空間索引、大規模數據調度、并行GIS算法等四個方面展開討論和研究,提出了跨中心的海量空間數據高效查詢與分析的解決方案,并進行了測試,實現了海量空間數據的秒級查詢響應、分鐘級空間分析。
海量空間數據的存儲系統主要有三種形式:集中式的文件系統存儲管理、分布式數據庫存儲管理和分布式文件系統存儲管理。但由于空間數據的增長速度非???,數據存儲的體系結構逐漸從集中式向分布式轉變,從小規模集群逐漸向大規模集群轉變,數據管理技術從依托傳統的關系型數據庫逐漸轉向依托非關系型文件系統轉變。本文使用基于hadoop框架的分布式文件系統實現海量空間數據的分布式存儲管理。
為方便討論,本文基于hadoop框架構建了一個集群環境,集群環境由若干存儲節點構成,空間數據存儲至集群環境中形成大數據資源池;由于跨部門、跨網絡的基本情況,集群環境的服務器間采用不同帶寬的網絡連接,形成多中心現象,中心內部為萬兆光纖環境,中心間采用千兆光纖連接;中心內部分別部署管理端,支持集群環境管理,具體如下圖所示:

圖1 基于集群環境的分中心數據存儲
當源數據進入大數據資源池時,按照一定規則完成數據的分塊,在不同節點進行存儲。可根據集群中節點數和單圖層數據量的大小,自定義數據的分塊大小(如16M、32M、64M...),并且支持自定義備份策略(如1備2或者1備N等)對塊數據進行備份。在數據分塊存儲過程中,為了不破壞空間數據的拓撲關系,我們以數據記錄作為最小分割單元對數據進行邏輯切塊,確保任一要素對象不被分割至多個Block中[1]。
為了確保中心內部的計算效率,在數據存儲時優先保證其中一份副本存儲在該中心對應的集群節點中,其他副本隨機分布存儲至集群的任意節點?;谏鲜霾呗裕瑔沃行膬炔繑祿嬎憧苫诒局行膶拇鎯陀嬎愎濣c完成,避免了因隨機分布式存儲帶來的跨中心數據調度問題,數據與計算資源本地化率達到80%以上。
空間數據索引機制是分布式空間數據處理計算的基礎,是衡量分布式空間數據庫整體性能優劣的關鍵。大數據環境下,傳統的單機的索引結構已不適用于大規??臻g數據的查詢問題。本文提出了基于分布式架構的二級分布式空間索引,該索引支持快速構建,并且具有良好的擴展性,有效解決大規模數據分布式存儲帶來的數據檢索問題。
二級分布式空間索引采用兩層索引機制,索引全局設置一個主控節點,記錄一級索引的節點信息。主控節點采用熱備的方式,熱備節點可以實時同步主控節點的信息,一旦主控節點掉線或出現問題,熱備節點會立即啟動,取代主控節點的位置,同時主控節點成為熱備節點。在主控節點之下,采用分布式集群索引的方式,根據數據類型、數據規模以及操作模式構建不同的空間數據索引集群,空間數據索引集群是一個邏輯控制節點,記錄了此集群中數據存儲的節點信息、數據類型、數據分布、元數據信息等。不同的空間數據集群,記錄了數據的分塊信息及其組裝拆分的方式。對于用戶來說所有的數據都是圖層,但是其內部的構成卻各自不同,此圖層構成的差異性,全部會在集群索引以及空間數據集中進行屏蔽。
通過構建二級分布式空間索引可實現導入云數據庫的空間數據自動生成相應的數據元表,并對數據進行標識,可以快速確定單個圖層中各個小塊所在的節點,以提高空間數據的查詢檢索及分析效率。
目前,對Map Reduce的任務調度算法的研究主要集中在:①任務的數據本地化;②多個用戶對hadoop集群的計算資源的共享;③容錯調度;④集群資源。本文提出了在跨中心的集群環境中的數據調度策略。
基于數據分布式存儲策略,在進行跨中心的海量空間數據計算時,優先選擇存儲“本地化”的節點參與計算,避免數據的跨中心調度,提高分析應用效率。如下圖所示(模擬兩個中心場景,下同),模擬中心A數據1與中心B數據2進行疊加分析。該場景涉及跨中心計算,系統優先選擇DN1.1(A1、a2),DN2.2(B2、b1)兩個節點進行計算,無須跨中心調度數據。

圖2 跨中心計算無須數據調度分析示意圖
當參與計算的數據分布存儲在不同中心、不同計算節點,數據調度不可避免時,系統采用“就近原則”和“少向多原則”完成數據調度。
“就近原則”:分析時優先在中心機柜內部調度,然后在中心機柜間進行調度,最后進行跨中心數據調度。以DN1.1進行A與a疊加分析為例(下圖屏蔽其他Block塊),優先通過機柜內部調度a3;當a3不存在時,通過中心內部機柜2調度a2;當a2不存在時,跨中心調度a1。

圖3 跨中心計算“就近原則”數據調度分析示意圖
“少向多原則”:由于相同空間范圍內,不同數據圖層的要素密度及其屬性個數不同,其數據量大小存在區別。當采用相同規格進行數據分塊時,如以64M為一個Block,其數據分塊數量必不同。在進行數據調度時,優先將Block個數較少的數據塊調度至Block個數較多的數據塊所在的節點中,利用更多節點進行計算,提高計算效率。同時,在調度過程中根據空間范圍對調度的數據進行過濾,進一步減少調度的數據量。

圖4 跨中心重度計算“少向多原則”數據調度分析示意圖
超大規模數據進行跨中心分析應用時,數據調度規模巨大。為了避免分析過程中跨中心之間頻繁的數據調度,可將超大規模數據的Block副本預先定向備份到某一中心的集群節點中,避免計算過程中數據在中心之間的臨時調度,進一步提高服務分析效率。
基于hadoop分布式架構,空間大數據被均勻分布到可以彈性擴展的各個計算節點上。在進行海量空間數據分析時,需要將分塊數據調度到對應計算節點,參與空間分析。
傳統的GIS算法主要采用串行計算方式,無法滿足分塊(Block)后數據的空間分析要求。本文提出通過并行計算的GIS算法,實現算法級的多節點并行計算和分析結果的合并返回。并行計算的GIS算法主要包括兩個步驟,首先是任務的分配,任意參與計算的數據節點成為計算節點,利用節點的被分配的計算資源實現分布式的本地化計算;第二是計算結果的合并,如下圖所示:

圖5 并行計算GlS算法功能示意圖
實驗環境說明:三臺服務器模擬環境的測試結果,隨著硬件資源的增加,速度可以更快。三臺服務器集群規格:共十個節點,其中主節點16核64G內存,子節點8核32G內存。
測試結果:

功能說明 功能描述 數據量 性能描述數據查詢提供極速查詢能力,支持屬性查詢、范圍查詢、復合查詢和自定義方案查詢等;支持查詢結果詳情查看,支持對查詢結果的再次過濾,支持查詢結果下載。查詢返回符合要求的百萬條數據 2秒以內空間分析提供疊加分析、緩沖分析、鄰域分析、距離分析、空間插值分析、空間統計分析、表面分析等空間分析功能。兩個1GB以上百萬級圖斑疊加分析1分鐘以內
本文提出并驗證了采用分布式存儲、二級分布式空間索引、數據調度、并行GIS算法等策略可實現基于并行計算的多中心海量空間數據高效查詢與分析。較單一的通過數據分布式存儲、空間索引或數據調度等策略提高海量空間數據處理性能,本文全面考慮了現實情況中跨部門、跨網絡的多中心的海量空間數據分析應用,從不同層次、不同角度提出了完整的解決方案,并通過實驗進行了驗證。實驗表明,基于本文的思路,解決了存儲、索引、調度、算法等多方面的問題,可以大幅度提升多中心海量空間數據的查詢與分析性能。