柳運昌,張 娜
(1.河南城建學(xué)院 計算機與數(shù)據(jù)科學(xué)學(xué)院,河南 平頂山 467036;2.河南省城鄉(xiāng)規(guī)劃大數(shù)據(jù)應(yīng)用技術(shù)工程研究中心,河南 平頂山 467036)
移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)技術(shù)的推廣應(yīng)用產(chǎn)生了大量實時反映城市社會經(jīng)濟活動特征的數(shù)據(jù),包括電網(wǎng)運行、道路車速和流量,甚至每個人的位置和行為。這些龐大而繁雜的城市感知大數(shù)據(jù)均可用于城鄉(xiāng)規(guī)劃建設(shè)及管理,從而形成城鄉(xiāng)規(guī)劃大數(shù)據(jù)。城鄉(xiāng)規(guī)劃大數(shù)據(jù)具有種類復(fù)雜、體量巨大、時間跨度大的特點[1]。城鄉(xiāng)規(guī)劃的關(guān)鍵是如何從海量的數(shù)據(jù)中識別可用的數(shù)據(jù),評估潛在的價值,形成有效信息,進而作為規(guī)劃高效信息的基礎(chǔ)促進城鄉(xiāng)轉(zhuǎn)型發(fā)展。然而,面對海量、多源、不間斷的城鄉(xiāng)規(guī)劃大數(shù)據(jù),如何提供可擴、連續(xù)的處理支持以滿足多樣化、動態(tài)變化的城鄉(xiāng)規(guī)劃應(yīng)用需求成為當(dāng)前城鄉(xiāng)規(guī)劃系統(tǒng)建設(shè)的一個核心問題。
近年來,研究者基于GIS構(gòu)建了多規(guī)合一信息平臺[2],從存儲的角度研究大數(shù)據(jù)的高效訪問[4-6],從大規(guī)模數(shù)據(jù)的分布式處理[7-9]等角度開展了大量與上述需求相關(guān)的研究工作。還有一些研究從分布式數(shù)據(jù)中心的角度處理大數(shù)據(jù)[10-12]。從現(xiàn)有的研究成果來看,存在的主要問題有:(1)城鄉(xiāng)規(guī)劃大數(shù)據(jù)平臺的數(shù)據(jù)融合功能有待完善。(2)數(shù)據(jù)質(zhì)量較低,數(shù)據(jù)管控能力不強。(3)數(shù)據(jù)共享不暢,數(shù)據(jù)集成程度不夠。城鄉(xiāng)規(guī)劃業(yè)務(wù)按管理職責(zé)進行分專業(yè)管理,條塊分割,不能構(gòu)建數(shù)據(jù)與實際規(guī)劃對應(yīng)的網(wǎng)絡(luò)關(guān)系,數(shù)據(jù)利用價值不高,數(shù)據(jù)不能充分滿足城鄉(xiāng)規(guī)劃業(yè)務(wù)需求。
針對上述問題,結(jié)合城鄉(xiāng)規(guī)劃大數(shù)據(jù)及其處理類型特征,提出并設(shè)計了一個基于分布式云數(shù)據(jù)中心的城鄉(xiāng)規(guī)劃大數(shù)據(jù)集成處理平臺。該平臺采用分布式云數(shù)據(jù)中心實現(xiàn)跨應(yīng)用的城鄉(xiāng)規(guī)劃數(shù)據(jù)共享,為承載多樣化的城鄉(xiāng)規(guī)劃大數(shù)據(jù)處理應(yīng)用提供集成化支持。
城鄉(xiāng)規(guī)劃大數(shù)據(jù)是以往城市中各系統(tǒng)體系運作的記錄產(chǎn)物,以大容量的形式真實記錄和反映城鄉(xiāng)的變遷,其分類如圖1所示。
圖1 城鄉(xiāng)規(guī)劃大數(shù)據(jù)分類圖
城鄉(xiāng)規(guī)劃大數(shù)據(jù)來源有:
(1)數(shù)字化的傳統(tǒng)數(shù)據(jù)和空間信息:比如數(shù)字化的城建檔案,矢量化的城市歷史地圖,歷次人口、工業(yè)、農(nóng)業(yè)、地名普查信息等,該類數(shù)據(jù)信息由各職能部門收集保存。
(2)城市規(guī)劃和城市研究信息,主要利用的是帶地理坐標(biāo)、地理流線軌跡和流量的數(shù)據(jù),互聯(lián)網(wǎng)時代產(chǎn)生的新數(shù)據(jù)主要有帶地理坐標(biāo)的微博、電子地圖分類興趣點、時時微信位置、大眾點評商業(yè)網(wǎng)點、公交地鐵刷卡數(shù)據(jù)等。
從城鄉(xiāng)規(guī)劃大數(shù)據(jù)分類來看,包含社交網(wǎng)絡(luò)、城市感知數(shù)據(jù)的城鄉(xiāng)規(guī)劃大數(shù)據(jù)增長過快,數(shù)據(jù)體量日益增大。而現(xiàn)有數(shù)據(jù)存儲方式面臨數(shù)據(jù)可靠性的風(fēng)險。在物聯(lián)網(wǎng)與移動互聯(lián)網(wǎng)提供全面、精準(zhǔn)與實時的城市發(fā)展及運行環(huán)境下,分析城鄉(xiāng)規(guī)劃大數(shù)據(jù)的來源可知,多源異構(gòu)城鄉(xiāng)規(guī)劃感知數(shù)據(jù)往往存在數(shù)據(jù)缺失、斷續(xù)、時空關(guān)系不一致和采樣頻率及測量精度的差異等問題,如何實現(xiàn)海量多源異構(gòu)數(shù)據(jù)的融合是一個具有挑戰(zhàn)性的問題[3]。此外,面對海量的城鄉(xiāng)規(guī)劃大數(shù)據(jù),現(xiàn)有的處理方法在計算效率和響應(yīng)時間上已不能滿足用戶的需求。
由于城鄉(xiāng)規(guī)劃大數(shù)據(jù)種類多樣,數(shù)據(jù)量龐大,數(shù)據(jù)具有更高的維度,算法更加復(fù)雜,并且計算和數(shù)據(jù)之間會存在特定的依賴關(guān)系,因而傳統(tǒng)的處理平臺難以滿足對于多源異構(gòu)城鄉(xiāng)規(guī)劃數(shù)據(jù)的集成分析。此外,對于大規(guī)模的城鄉(xiāng)規(guī)劃應(yīng)用,巨量的數(shù)據(jù)與城鄉(xiāng)規(guī)劃處理算法實際上可以分布在位于不同的地理區(qū)域的多個數(shù)據(jù)中心。在這種情況下,高效的存儲、管理、共享和訪問分布式城鄉(xiāng)規(guī)劃大數(shù)據(jù)具有高容量和數(shù)據(jù)復(fù)雜性,非常具有挑戰(zhàn)性。
針對城鄉(xiāng)規(guī)劃大數(shù)據(jù)處理,基于分布式云數(shù)據(jù)中心架構(gòu),采用Hadoop大數(shù)據(jù)處理方案,提出了基于分布式云數(shù)據(jù)中心的城鄉(xiāng)規(guī)劃大數(shù)據(jù)集中處理平臺,以提高城鄉(xiāng)規(guī)劃數(shù)據(jù)分析挖掘的速度與可擴展性,并實現(xiàn)了初步的原型系統(tǒng)。
基于分布式云數(shù)據(jù)中心的城鄉(xiāng)規(guī)劃大數(shù)據(jù)集成處理平臺由基礎(chǔ)服務(wù)層、數(shù)據(jù)共享分析層與業(yè)務(wù)應(yīng)用層組成,如圖2所示。平臺采用一個地理分布式的云架構(gòu),由位于不同地理位置的多個云數(shù)據(jù)中心組成。它為城鄉(xiāng)規(guī)劃應(yīng)用提供了一個持續(xù)收集處理數(shù)據(jù)的平臺,同時提供搜索、排序和數(shù)據(jù)挖掘等一系列服務(wù),每個云數(shù)據(jù)中心都提供存儲和計算基礎(chǔ)設(shè)施。各個區(qū)域收集的數(shù)據(jù)存儲在相應(yīng)的存儲集群中,計算集群包含一組互連和虛擬化服務(wù)器。
圖2 基于分布式云數(shù)據(jù)中心的城鄉(xiāng)規(guī)劃大數(shù)據(jù)集成處理平臺
基礎(chǔ)服務(wù)層是數(shù)據(jù)分析層和業(yè)務(wù)應(yīng)用層的基礎(chǔ),其主要目的是利用云計算技術(shù),深入挖掘城市規(guī)劃自身的需求,通過特定的算法對不同采集頻率的源數(shù)據(jù)進行整合,為城鄉(xiāng)規(guī)劃大數(shù)據(jù)分析提供標(biāo)準(zhǔn)的整合基礎(chǔ)數(shù)據(jù)。此外,將不同系統(tǒng)的數(shù)據(jù)進行整合,對異構(gòu)數(shù)據(jù)進行分析和存儲,輔助規(guī)劃進行數(shù)據(jù)存儲、分析和畫圖等業(yè)務(wù)工作,具備安全性和穩(wěn)定性。
數(shù)據(jù)分析層結(jié)合基礎(chǔ)服務(wù)層為城鄉(xiāng)規(guī)劃大數(shù)據(jù)管理提供實際服務(wù),主要包括對傳統(tǒng)數(shù)據(jù)、基于大數(shù)據(jù)技術(shù)獲取的數(shù)據(jù)和分析數(shù)據(jù)的存儲及管理。數(shù)據(jù)分析層是整個框架的核心,編制人員對于傳統(tǒng)的基礎(chǔ)地形數(shù)據(jù)、規(guī)劃數(shù)據(jù)及城市發(fā)展數(shù)據(jù)要進行空間數(shù)字化,形成“一張圖”的基礎(chǔ)底圖。建立多源的規(guī)劃知識庫,提取知識中的方法、思路及分析模型。
業(yè)務(wù)應(yīng)用層包括規(guī)劃項目編制和個人學(xué)習(xí),將數(shù)據(jù)分析層產(chǎn)生的分析結(jié)果存儲到云端,根據(jù)不同的用戶業(yè)務(wù)請求,提供和展示不同的分析結(jié)果,具有易用性。在各類規(guī)劃編制的過程中,編制人員通過門戶中的目錄服務(wù)查找所需的信息,并根據(jù)推送的知識和數(shù)據(jù)開展工作。另外,隨著規(guī)劃項目的編制,當(dāng)中形成的規(guī)劃數(shù)據(jù)、成果也可形成類似規(guī)劃成果,如 GIS 查詢系統(tǒng)、規(guī)劃建設(shè)計劃跟蹤系統(tǒng)等信息化產(chǎn)品,提供規(guī)劃產(chǎn)業(yè)鏈的延伸服務(wù)。
大數(shù)據(jù)存儲系統(tǒng)的架構(gòu)是其數(shù)據(jù)管理的支撐,決定了大數(shù)據(jù)訪問的效率與可靠性,并為向上層計算需求提供高效的數(shù)據(jù)源訪問。為不失一般性,考慮城鄉(xiāng)規(guī)劃集成處理平臺管理多個地方的數(shù)據(jù),將所有數(shù)據(jù)匯集并傳輸?shù)皆浦幸员氵M行處理。用戶請求提交到云數(shù)據(jù)中心后,系統(tǒng)根據(jù)分布式云數(shù)據(jù)中心的網(wǎng)絡(luò)與負載狀況,采用數(shù)據(jù)副本傳遞策略協(xié)調(diào)云數(shù)據(jù)中心間數(shù)據(jù)的備份和交互。云數(shù)據(jù)中心間數(shù)據(jù)傳輸與信息交互主要通過其間通信節(jié)點進行,數(shù)據(jù)中心內(nèi)采用基于Gossip協(xié)議的內(nèi)部通信機制。單個云數(shù)據(jù)中心由通信節(jié)點、管理節(jié)點、存儲節(jié)點和外存儲節(jié)點組成。云數(shù)據(jù)中心內(nèi)的存儲機制融合HDFS(Hadoop分布式文件系統(tǒng))與對象存儲的思想,由管理節(jié)點和大量存儲節(jié)點構(gòu)成。其中,管理節(jié)點作為客戶端,以推拉模式獲取本云中存儲節(jié)點的狀態(tài)信息,存儲節(jié)點存儲本數(shù)據(jù)中心產(chǎn)生的數(shù)據(jù),外存儲節(jié)點存儲其他云數(shù)據(jù)中心的備份數(shù)據(jù)。通信節(jié)點采用數(shù)據(jù)副本管理技術(shù)備份相應(yīng)數(shù)據(jù)至其他云數(shù)據(jù)中心或接收來自其他云數(shù)據(jù)中心的數(shù)據(jù)備份到外存儲節(jié)點中。
數(shù)據(jù)分析應(yīng)用程序部署在云端,與數(shù)據(jù)源連接到多個數(shù)據(jù)中心。在Hadoop集群中,數(shù)據(jù)存儲在HDFS,需要復(fù)制每個數(shù)據(jù)塊容錯的若干副本。系統(tǒng)模型與HDFS不沖突,因為即使在HDFS中存儲了每個數(shù)據(jù)塊的多個副本,也只會加載一個副本進行計算。如果需要遠程處理,則轉(zhuǎn)移到云數(shù)據(jù)中心進行網(wǎng)絡(luò)傳輸。
城鄉(xiāng)規(guī)劃大數(shù)據(jù)融合是利用云計算技術(shù)實現(xiàn)對分散系統(tǒng)和異構(gòu)數(shù)據(jù)的整合,將存于不同系統(tǒng)的城鄉(xiāng)規(guī)劃基礎(chǔ)設(shè)施信息、對象信息和空間信息進行有效組織,再利用大數(shù)據(jù)處理技術(shù),解決整合后海量數(shù)據(jù)的存儲和讀取。數(shù)據(jù)融合處理由三部分組成:解析器、執(zhí)行器以及封裝器,如圖3所示。
圖3 城鄉(xiāng)規(guī)劃大數(shù)據(jù)融合
請求解析器模塊接收從上層傳送的請求,經(jīng)過封裝器處理后進行任務(wù)分配,將結(jié)果傳送給執(zhí)行器并調(diào)用Map過程。解析器需要知道各個異構(gòu)數(shù)據(jù)源的元數(shù)據(jù)。為了確保每個用戶能夠得到正確的元數(shù)據(jù)信息,系統(tǒng)調(diào)用虛擬數(shù)據(jù)庫監(jiān)視模塊來處理連續(xù)更新的問題。封裝器與數(shù)據(jù)融合模塊對最后數(shù)據(jù)結(jié)果做融合處理并封裝好后傳輸給用戶。
分布式云數(shù)據(jù)中心的城鄉(xiāng)規(guī)劃大數(shù)據(jù)融合處理過程為:模型以GEO方式處理文件,GEO是一種文件執(zhí)行策略,首先在不同數(shù)據(jù)中心執(zhí)行Map操作,然后復(fù)制中間數(shù)據(jù)到單個數(shù)據(jù)中心進行Reduce操作。有兩種數(shù)據(jù)移動過程的相應(yīng)階段:第一階段,數(shù)據(jù)可以移動到任何數(shù)據(jù)中心進行Map操作;第二階段,在考慮數(shù)據(jù)相關(guān)性的情況下將多個數(shù)據(jù)中心Mappers產(chǎn)生的中間數(shù)據(jù)傳送到單個數(shù)據(jù)中心處理。在此模型中,數(shù)據(jù)一旦被移動到數(shù)據(jù)中心生成并以增量樣式處理,只計算新到達的數(shù)據(jù)和中間數(shù)據(jù),來自過去的數(shù)據(jù)可以重復(fù)使用。
執(zhí)行器將子請求轉(zhuǎn)換成本地數(shù)據(jù)源能夠直接執(zhí)行的形式,在對應(yīng)的數(shù)據(jù)源中執(zhí)行請求。各請求在請求解析器中解析成對應(yīng)各數(shù)據(jù)源的子請求,子請求在管理控制下,進行Map任務(wù)調(diào)度,Map過程的執(zhí)行結(jié)果 Inter Result將作為輸入,被管理控制器分配到對應(yīng)的Reduce函數(shù)中執(zhí)行 Reduce 過程,最終Reduce結(jié)果集成到融合函數(shù),進行最終的融合并將結(jié)果傳給用戶,同時將數(shù)據(jù)存儲到數(shù)據(jù)庫存檔以備多用戶多次使用。Map Reduce 過程用于處理多海量異構(gòu)數(shù)據(jù)集的過程:在第一步的數(shù)據(jù)集中,平行處理兩個大塊數(shù)據(jù)集以找到基于某些屬性的匹配,生成中間結(jié)果,然后根據(jù)數(shù)據(jù)的依賴性集中到單一的云數(shù)據(jù)中心。在第二步的數(shù)據(jù)集中,執(zhí)行 Reudce操作將結(jié)果數(shù)據(jù)集融合,如圖4所示。執(zhí)行結(jié)束后,融合數(shù)據(jù)模塊處理請求結(jié)果中可能的沖突和不一致性,并將請求結(jié)果融合成用戶需求的格式傳輸給用戶。
圖4 基于分布式云數(shù)據(jù)中心的城鄉(xiāng)規(guī)劃大數(shù)據(jù)融合處理過程圖
實驗在3個數(shù)據(jù)中心進行。數(shù)據(jù)中心1由配備有兩個Xeon處理器的5個節(jié)點組成,可以支持24個線程、32 GB的RAM和2 TB的磁盤;數(shù)據(jù)中心2由配備有兩個opton處理器的30個節(jié)點組成,支持4個線程、8 GB的RAM和一個500 GB的磁盤;數(shù)據(jù)中心3有10個虛擬機實例,每個實例CPU為8核,內(nèi)存為8 GB,存儲空間100 GB。3個數(shù)據(jù)源分別處于不同的地理位置。數(shù)據(jù)中心使用的系統(tǒng)是Hadoop系統(tǒng),使用一個實例作為HDFS和SCAP的主節(jié)點。所有其他節(jié)點用作數(shù)據(jù)節(jié)點和工作節(jié)點,網(wǎng)絡(luò)拓撲如圖5所示。HDFS的塊大小為128 MB,重復(fù)數(shù)為3。
圖5 實驗網(wǎng)絡(luò)拓撲圖
城鄉(xiāng)規(guī)劃大數(shù)據(jù)收集模塊首先基于Sqoop開發(fā)ETL模塊,實現(xiàn)結(jié)構(gòu)化數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫到Hadoop平臺的遷移,其次基于Hadoop Common開發(fā)半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)的傳輸功能;大數(shù)據(jù)存儲和管理模塊首先基于HDFS實現(xiàn)大數(shù)據(jù)的物理存儲,其次基于HIVE實現(xiàn)城鄉(xiāng)規(guī)劃大數(shù)據(jù)的邏輯管理和高速訪問;大數(shù)據(jù)分析模塊基于Mahout開發(fā)城鄉(xiāng)規(guī)劃大數(shù)據(jù)分析功能。
系統(tǒng)開發(fā)了相關(guān)的網(wǎng)絡(luò)數(shù)據(jù)爬蟲程序,分別從房天下、趕集網(wǎng)和安居客等網(wǎng)站爬取與住房相關(guān)的數(shù)據(jù)。其中,從房天下爬取220萬條房屋信息,從趕集網(wǎng)爬取100萬條房屋信息,從安居客爬取54萬條房屋信息。每個樣本共采集物業(yè)類型、建筑面積、掛牌總價、建筑年份、樓層、有無配備電梯、房屋結(jié)構(gòu)、裝修程度等8個指標(biāo)信息。此外,還采集有POI數(shù)據(jù)用于城市功能劃分。
(1)實驗一:MapReduce節(jié)點數(shù)目對于數(shù)據(jù)集成的影響
首先測試在不同節(jié)點下整個系統(tǒng)的運行狀況如何。存放房天下網(wǎng)站數(shù)據(jù)的houseinfoftx表中有220萬條數(shù)據(jù),位于數(shù)據(jù)中心2;存放趕集網(wǎng)網(wǎng)站數(shù)據(jù)的houseinfogjw表中有100萬條數(shù)據(jù),位于數(shù)據(jù)中心3,兩張表擁有相同數(shù)量的 key,有20%key 的值相同可以進行數(shù)據(jù)融合。兩個表的數(shù)據(jù)加工處理后傳遞到數(shù)據(jù)中心1進行融合處理,對外提供統(tǒng)一的服務(wù)。Hadoop節(jié)點數(shù)對系統(tǒng)的影響如圖6所示。Hadoop從1個節(jié)點逐步增加到8個節(jié)點,每次增加1個,系統(tǒng)的數(shù)據(jù)保持不變。
從圖6可以看出:數(shù)據(jù)量較少時,只有1個節(jié)點的系統(tǒng)性能卻比擁有4個節(jié)點的系統(tǒng)性能高,但8個節(jié)點的系統(tǒng)性能又比1個節(jié)點的性能好。分析Reduce端數(shù)據(jù)連接可知,由于在 Reduce 端數(shù)據(jù)連接的過程中需要花費大量的時間將 Map 方法的處理結(jié)果傳輸?shù)?Reduce 端。在 1個節(jié)點的情況下,都是本地的數(shù)據(jù)處理沒有網(wǎng)絡(luò)間的數(shù)據(jù)傳輸,所以性能好于 4 個節(jié)點,但是使用8個節(jié)點分布式系統(tǒng)的性能優(yōu)勢就體現(xiàn)出來。
圖6 Hadoop節(jié)點數(shù)對系統(tǒng)性能的影響
(2)實驗二:不同數(shù)據(jù)量時的系統(tǒng)性能
分別以 1、2.5、5、7.5、10(十萬條)數(shù)據(jù)測試 8個節(jié)點條件下系統(tǒng)的性能(20%數(shù)據(jù)可以進行數(shù)據(jù)融合處理),其測試結(jié)果如圖 7所示。
圖7 數(shù)據(jù)量對系統(tǒng)性能的影響
通過測試結(jié)果表明:系統(tǒng)并未因為數(shù)據(jù)量的增加而導(dǎo)致所花費的時間線性增加,平臺能夠在較短時間內(nèi)處理多數(shù)據(jù)源海量數(shù)據(jù),為用戶請求提供完整信息的同時滿足了速度快、效率高的要求,取得較好的效果。
實驗也表明系統(tǒng)的使用有一定的局限性,在業(yè)務(wù)數(shù)據(jù)量不是很大的情況下,由于Hadoop自身的原因會帶來一定的額外資源消耗,不能體現(xiàn)本系統(tǒng)的優(yōu)勢。此外,系統(tǒng)只適合城鄉(xiāng)規(guī)劃大數(shù)據(jù)業(yè)務(wù)平臺對海量數(shù)據(jù)進行數(shù)據(jù)集成與融合的業(yè)務(wù)。
針對海量、多源、不間斷的城鄉(xiāng)規(guī)劃大數(shù)據(jù),分析其處理類型特征,構(gòu)建了基于分布式云數(shù)據(jù)中心的數(shù)據(jù)集成處理平臺。該平臺能提供可擴展、實時、連續(xù)的處理支持以滿足多樣化、動態(tài)化的城鄉(xiāng)規(guī)劃應(yīng)用需求。結(jié)合Hadoop架構(gòu),運用虛擬數(shù)據(jù)庫技術(shù),搭建城鄉(xiāng)規(guī)劃大數(shù)據(jù)集成平臺原型系統(tǒng)。以城鄉(xiāng)規(guī)劃應(yīng)用為例,對其多源異構(gòu)數(shù)據(jù)進行融合處理及存儲,對已完成的系統(tǒng)進行了功能與性能測試。實驗表明:系統(tǒng)能夠在較短時間內(nèi)處理多源異構(gòu)海量的規(guī)劃數(shù)據(jù),為用戶提供完整而不冗余的信息。