• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于GeoSpark的空間大數(shù)據(jù)計(jì)算優(yōu)化

      2019-12-02 20:05:02彭旭
      電子技術(shù)與軟件工程 2019年11期
      關(guān)鍵詞:空間數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)內(nèi)存

      文/彭旭

      隨著數(shù)據(jù)采集設(shè)備的井噴式增長(zhǎng),對(duì)海量的采集數(shù)據(jù)進(jìn)行處理的需求日益增長(zhǎng),大數(shù)據(jù)技術(shù)為海量數(shù)據(jù)處理提供了合適的解決方案。從Hadoop 的MapReduce 到Spark 內(nèi)存計(jì)算,大數(shù)據(jù)計(jì)算的性能得到了很大的提高。而GIS 行業(yè)的關(guān)注重點(diǎn)則是帶有位置信息的時(shí)空大數(shù)據(jù)的計(jì)算處理,時(shí)空大數(shù)據(jù)是最重要的大數(shù)據(jù)之一,它的價(jià)值在于時(shí)間、空間、對(duì)象之間的關(guān)聯(lián)關(guān)系,對(duì)時(shí)空大數(shù)據(jù)的處理、分析和挖掘是建設(shè)智慧城市必不可少的一環(huán)。主流的大數(shù)據(jù)框架如Hadoop、Spark 等并不支持空間計(jì)算,GeoSpark 在Spark 的基礎(chǔ)上提供了空間大數(shù)據(jù)計(jì)算能力的支持。本文主要研究基于GeoSpark 的空間大數(shù)據(jù)計(jì)算優(yōu)化問題。

      1 Spark簡(jiǎn)介

      Spark 是一個(gè)基于內(nèi)存計(jì)算的支持大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎,由Spark Core 核心模塊以及在核心模塊上針對(duì)不同應(yīng)用場(chǎng)景分別構(gòu)建的Spark SQL、Spark Streaming、MLlib、GraphX 四個(gè)模塊構(gòu)成,分別用于支持SQL 交互查詢、實(shí)時(shí)數(shù)據(jù)流處理、機(jī)器學(xué)習(xí)和圖計(jì)算。其中Spark Core 提供了分布式任務(wù)調(diào)度和I/O功能,其基礎(chǔ)的程序抽象稱為彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset,RDD),是一個(gè)可以并行操作、支持容錯(cuò)的數(shù)據(jù)結(jié)構(gòu)。

      2 GeoSpark實(shí)現(xiàn)原理

      Spark 本身不支持空間數(shù)據(jù)結(jié)構(gòu)和空間計(jì)算,GeoSpark 在Spark 的基礎(chǔ)上對(duì)空間大數(shù)據(jù)計(jì)算的功能進(jìn)行了擴(kuò)展。其實(shí)現(xiàn)架構(gòu)主要分為兩層,分別是空間數(shù)據(jù)結(jié)構(gòu)層和空間查詢處理層。

      空間數(shù)據(jù)結(jié)構(gòu)層的內(nèi)容包括基本的分布式空間數(shù)據(jù)結(jié)構(gòu)、空間數(shù)據(jù)分區(qū)以及各個(gè)分區(qū)內(nèi)構(gòu)建局部空間索引等內(nèi)容。其中對(duì)于分布式空間數(shù)據(jù)結(jié)構(gòu),GeoSpark 通過結(jié)合Spark RDD 和JTS 工具,提供了Spatial RDD 這一具體實(shí)現(xiàn)方案,支持點(diǎn)、線、面、圓等空間數(shù)據(jù)結(jié)構(gòu);對(duì)于空間數(shù)據(jù)分區(qū),GeoSpark 支持規(guī)則格網(wǎng)、R 樹、四叉樹等分區(qū)方式,通過對(duì)空間數(shù)據(jù)按照空間近鄰的方式劃分分區(qū),在單個(gè)分區(qū)內(nèi)進(jìn)行空間比較計(jì)算,來實(shí)現(xiàn)Filter And Refine 模型以提高查詢計(jì)算的效率;在各個(gè)分區(qū)內(nèi),GeoSpark 還支持R 樹、四叉樹兩種類型的空間索引,提高空間比較運(yùn)算的執(zhí)行效率。

      空間查詢處理層的內(nèi)容包括標(biāo)準(zhǔn)的空間查詢SQL 和SpatialRDD 的API。SQL 語法支持空間對(duì)象的構(gòu)造函數(shù)、空間計(jì)算函數(shù)和空間關(guān)系推斷函數(shù)如包含、相交等。

      3 基于GeoSpark的空間計(jì)算優(yōu)化

      3.1 優(yōu)化內(nèi)容

      JTS(Java Topology Suite)工具是一個(gè)用Java 語言開發(fā)的支持拓?fù)鋷缀斡?jì)算的開源軟件庫,GeoSpark 的空間計(jì)算部分的功能均基于JTS 提供的API 進(jìn)行實(shí)現(xiàn)。其中,在實(shí)現(xiàn)空間相交運(yùn)算時(shí),GeoSpark 通過JTS 的Geometry API 來判斷兩個(gè)空間對(duì)象是否相交。但對(duì)于批量空間相交運(yùn)算,即判斷一個(gè)目標(biāo)空間對(duì)象與一批待匹配空間對(duì)象的相交比較運(yùn)算,考慮到目標(biāo)空間對(duì)象在計(jì)算過程中的不變性,包括索引在內(nèi)的許多中間數(shù)據(jù)被大量的重復(fù)計(jì)算,造成了計(jì)算性能的浪費(fèi)。JTS 提供的PreparedGeometry API 對(duì)中間數(shù)據(jù)進(jìn)行緩存,避免了重復(fù)計(jì)算,在實(shí)際情景中計(jì)算性能的提升能達(dá)到40 倍。本文基于JTS 提供的PreparedGeometry 的API,重寫了GeoSpark的空間相交運(yùn)算,并與GeoSpark 原生的實(shí)現(xiàn)方式進(jìn)行對(duì)比,發(fā)現(xiàn)計(jì)算效率有顯著的提升。

      3.2 實(shí)驗(yàn)分析

      本文實(shí)驗(yàn)采用的計(jì)算模型為計(jì)算城市出租車最常行駛的道路,具體計(jì)算邏輯為將生成緩沖區(qū)后的道路數(shù)據(jù)與軌跡點(diǎn)數(shù)據(jù)做空間相交運(yùn)算并統(tǒng)計(jì)與每條道路相交的軌跡點(diǎn)位的總數(shù)量,按照軌跡點(diǎn)位數(shù)量對(duì)道路數(shù)據(jù)進(jìn)行排序,從而得到行駛車輛最多的道路。

      實(shí)驗(yàn)中的Spark 應(yīng)用程序運(yùn)行在由四臺(tái)服務(wù)器構(gòu)建的集群上,幾臺(tái)服務(wù)器在同一個(gè)局域網(wǎng)內(nèi)。實(shí)驗(yàn)使用的Hadoop 版本是2.7.3,Spark 版本是2.2.0,GeoSpark 的版本是1.0.1。

      參與計(jì)算的數(shù)據(jù)量大小分別是一億條軌跡點(diǎn)位數(shù)據(jù)和1437 條道路數(shù)據(jù),平均每條軌跡點(diǎn)數(shù)據(jù)大小為23 個(gè)字節(jié)(Spark 只讀取參與計(jì)算的字段)。Spark 應(yīng)用程序分配的資源為:4 個(gè)Executor,每個(gè)Executor 分配了8 核8GB內(nèi)存,Driver 分配了4 核1GB 內(nèi)存,分區(qū)數(shù)設(shè)置為1000。

      實(shí)驗(yàn)結(jié)果為使用Geometry API 執(zhí)行時(shí)間為2048 秒,而使用PreparedGeometry API執(zhí)行時(shí)間只需要319 秒。可以看出,相比基于Geometry API 進(jìn)行空間相交計(jì)算,基于PreparedGeometry API 的計(jì)算效率有顯著的提升。

      4 總結(jié)

      大數(shù)據(jù)技術(shù)已經(jīng)越來越廣泛的應(yīng)用到各個(gè)行業(yè)當(dāng)中,時(shí)空大數(shù)據(jù)則是GIS 行業(yè)與大數(shù)據(jù)技術(shù)結(jié)合的重要研究方向。GeoSpark 在Spark 的基礎(chǔ)上提供了對(duì)空間大數(shù)據(jù)進(jìn)行處理計(jì)算的支持,本文則對(duì)GeoSpark 空間計(jì)算的性能優(yōu)化進(jìn)行了研究。未來大數(shù)據(jù)技術(shù)還將進(jìn)一步發(fā)展,如何擴(kuò)展大數(shù)據(jù)計(jì)算的應(yīng)用領(lǐng)域、提高數(shù)據(jù)計(jì)算處理的能力還需要更進(jìn)一步的研究。

      猜你喜歡
      空間數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)內(nèi)存
      “春夏秋冬”的內(nèi)存
      “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
      高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
      元數(shù)據(jù)驅(qū)動(dòng)的多中心空間數(shù)據(jù)同步方法研究
      TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
      《數(shù)據(jù)結(jié)構(gòu)》教學(xué)方法創(chuàng)新探討
      河南科技(2014年5期)2014-02-27 14:08:57
      基于內(nèi)存的地理信息訪問技術(shù)
      基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲(chǔ)與組織研究
      客戶端空間數(shù)據(jù)緩存策略
      多源空間數(shù)據(jù)同名實(shí)體幾何匹配方法研究
      临沂市| 定西市| 阿城市| 南京市| 泸西县| 花莲市| 拜泉县| 新干县| 宾川县| 阳山县| 二手房| 临洮县| 汕头市| 柳河县| 沭阳县| 梨树县| 嵩明县| 水富县| 綦江县| 增城市| 磐安县| 呼伦贝尔市| 太和县| 定州市| 嘉义县| 绥阳县| 孝昌县| 婺源县| 灵寿县| 水城县| 隆化县| 玛曲县| 兴国县| 达尔| 漳州市| 海淀区| 临高县| 梁平县| 蒲城县| 齐齐哈尔市| 临泽县|