国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Spark的GNSS網(wǎng)基線向量并行化處理

2018-10-09 03:21白帆孫寧
全球定位系統(tǒng) 2018年4期
關(guān)鍵詞:子網(wǎng)基線數(shù)據(jù)處理

白帆,孫寧

(1.92941部隊,遼寧 葫蘆島125000;2.遼寧工程技術(shù)大學 軟件學院,遼寧 葫蘆島 125105)

0 引 言

隨著CORS建立得越來越多,全球衛(wèi)星導航系統(tǒng)(GNSS)觀測的數(shù)據(jù)量也越來越大,因此,數(shù)據(jù)的存儲及計算面臨著巨大的挑戰(zhàn)[1]。由于計算機和網(wǎng)絡技術(shù)的迅猛發(fā)展,大規(guī)模海量數(shù)據(jù)的分布式存儲以及計算也不斷發(fā)展起來,并在現(xiàn)實社會中得到了廣泛的應用。Spark是專為大規(guī)模數(shù)據(jù)處理而設計的快速通用計算引擎,Spark的出現(xiàn)改善了Hadoop反復在磁盤上進行讀寫操作的缺陷,提高了計算大規(guī)模海量數(shù)據(jù)的計算效率?,F(xiàn)如今,已經(jīng)有很多企業(yè)引入Spark大數(shù)據(jù)集群平臺以解決計算大規(guī)模復雜數(shù)據(jù)的瓶頸。針對目前全球衛(wèi)星導航系統(tǒng)GNSS數(shù)據(jù)量大、計算效率低等問題,本文將Spark大數(shù)據(jù)集群引入到GNSS網(wǎng)的基線解算中,對預處理后的觀測文件進行并行化計算和存儲,通過實驗驗證了利用子網(wǎng)劃分思想結(jié)合Spark大數(shù)據(jù)集群平臺解算GNSS網(wǎng)基線向量的效率。

1 相關(guān)平臺

1.1 Hadoop

Hadoop是一個分布式系統(tǒng)基礎(chǔ)架構(gòu),用戶可以充分利用集群的計算優(yōu)勢進行高速運算和存儲。Hadoop最核心的設計是HDFS和MapReduce。

HDFS為海量的數(shù)據(jù)提供了存儲,MapReduce為海量的數(shù)據(jù)提供了計算[2]。Hadoop采用多進程模型,如圖1所示。

Hadoop的每個Task運行在JVM進程中,且Task不被復用。MapReduce不構(gòu)建可重用資源池,Task動態(tài)申請資源且執(zhí)行結(jié)束后立即釋放資源。啟動MapReduce中Task進程的速度慢,造成了不必要的啟動時間消耗,不適合運行低延遲作業(yè)。

1.2 Spark平臺

Spark是專為大規(guī)模數(shù)據(jù)處理而設計的快速通用的計算引擎,可用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應用程序。Spark可將中間輸出結(jié)果保存在內(nèi)存中,從而不再反復讀寫HDFS。實際上,Spark是對Hadoop的補充,Spark通過名為Mesos的第三方集群框架可以在Hadoop文件系統(tǒng)中并行運行。Scala用作Spark應用程序框架,Scala可輕松地操作分布式數(shù)據(jù)集。Spark采用多線程模型,如圖2所示。

Spark的每個Executor運行在JVM進程中,Executor中可運行多個ShuffleMapTask或ReduceTask,Task則是在Executor的一個線程中運行,而且Task是可共享的,在Executor中加載一次文件或者數(shù)據(jù)后可一直被Task復用,直至程序執(zhí)行結(jié)束后釋放資源,避免了任務重復申請資源所造成的時間花費。Spark可以建立可重用資源池來運行全部的ShuffleMapTask和ReduceTask。Spark啟動任務速度快,可大大降低運行時間。

1.3 GAMIT軟件

GAMIT軟件是目前高精度GPS基線解算軟件中最為經(jīng)濟、使用最廣泛的一個軟件。GAMIT軟件是由美國麻省理工學院(MIT)和斯克里普斯海洋研究所(SIO)聯(lián)合研制的GPS數(shù)據(jù)處理軟件[6]。當它采用精密星歷和高精度起算點時,其處理長基線和連續(xù)時段靜態(tài)定位相對精度可達10e-8~10e-9 數(shù)量級,處理短基線的精度可達1~3 mm.本文使用的GAMIT版本為GAMIT10.6.

2 基于Spark的基線解算并行化處理

2.1 利用Spark實現(xiàn)并行化計算

Hadoop分布式文件系統(tǒng)(HDFS)是一種廣泛使用的文件系統(tǒng),而Spark支持讀寫很多種文件系統(tǒng),可以使用任何我們想要的文件格式,Spark能夠很好地使用HDFS。HDFS被設計為可以在廉價的硬件上工作,有彈性地對應節(jié)點失敗,同時提供高吞吐量。Spark和HDFS可以部署在同一批機器上,這樣Spark可以利用數(shù)據(jù)分布來盡量避免一些網(wǎng)絡開銷。在Spark中使用HDFS只需要將輸入輸出路徑指定為hdfs://master:post/path.

YARN是在Hadoop中引入的集群管理器,它可以讓多種數(shù)據(jù)處理構(gòu)架運行在一個共享的資源池上,并且通常安裝在與Hadoop文件系統(tǒng)(簡稱HDFS)相同的物理節(jié)點上。在這樣配置的YARN集群上運行Spark是很有意義的,它可以讓Spark在存儲數(shù)據(jù)的物理節(jié)點上運行,以快速訪問HDFS中的數(shù)據(jù)?;贖DFS的觀測數(shù)據(jù)分布式文件系統(tǒng)結(jié)構(gòu)如圖3所示[4]。

在Spark中使用YARN主要偽代碼如下所示:

第一步,設置Hadoop配置目錄的環(huán)境變量hadoop-conf-dir。

第二步,使用Spark-submit提交應用作業(yè):

exporthadoop-conf-dir=“…”;

Spark-submit——master yarn yourapp。

spark讀取HDFS中的文件和寫入數(shù)據(jù)到HDFS中,主要偽代碼如下所示:

def main(args: Array[String]): Unit={

valconf=new SparkConf()

conf.set("spark.master", "local")

conf.set("spark.app.name", "spark demo")

valsc=new SparkContext(conf);

//讀取HDFS數(shù)據(jù)

valtextFileRdd=sc.textFile("hdfs://路徑")

valfRdd=textFileRdd.flatMap {-.split(" ")}

valmrdd=fRdd.map {(-, 1)}

valrbkrdd=mrdd.reduceByKey(-+-)

//寫入數(shù)據(jù)到HDFS系統(tǒng)

rbkrdd.saveAsTextFile("hdfs://路徑")

}

2.2 基于Spark的基線解算過程

第一步,由子網(wǎng)劃分創(chuàng)建索引文件,其中子網(wǎng)編號設置為文件名,測站點名設置為文件內(nèi)容,為了便于對文件內(nèi)容進行操作,各名之間用空格相隔開。

第二步,客戶端上傳文件至HDFS(文件包括:觀測文件、精密星歷文件、廣播星歷文件、索引文件)。

第三步,建立GAMIT軟件執(zhí)行所需的工程文件目錄。

第四步,解析索引文件后獲取相應的子網(wǎng)的全部測站名,從HDFS中復制相應文件到對應的文件夾中。

第五步,調(diào)用sh-setup鏈接外部表文件tables,再調(diào)用sh-gamit進行基線解算。

需注意的是,在此過程中,一個索引文件對應一個子網(wǎng)進行處理,Spark分配Shuffle Map Task執(zhí)行索引文件?;赟park進行基線解算過程如圖4所示。

3 實驗結(jié)果及分析

3.1 實驗數(shù)據(jù)及環(huán)境

實驗數(shù)據(jù):采用中國及周邊地區(qū)41個IGS連續(xù)運行跟蹤站2018年年積日第58天的30 s采樣間隔的觀測值數(shù)據(jù)文件,如圖5所示。

實驗環(huán)境:所有的實驗都是在實驗室搭建的Spark平臺上運行的。平臺由10個節(jié)點組成,物理機配置為Intel Core i5處理器,主頻2.30 GHz,雙核,內(nèi)存2G.軟件配置:CentOS 6.7,JDK 1.8.0,Hadoop 2.6.0,Spark 1.6.0,Scala 2.12.1.

3.2 實驗結(jié)果分析

采用劃分子網(wǎng)的思想,其中單節(jié)點對整網(wǎng)進行基線解算,有幾個節(jié)點就劃分幾個子網(wǎng),實驗結(jié)果如表1所示。

表1 不同數(shù)量子網(wǎng)個數(shù)和計算節(jié)點數(shù)下的解算時間

由表1可知,隨著子網(wǎng)個數(shù)和計算節(jié)點數(shù)的增加,運行時間在逐步減少,這說明計算效率也在增加。Spark將大數(shù)據(jù)處理任務分為n塊并行處理,其計算能力優(yōu)勢隨著計算任務復雜程度增加而擴大。在同樣處理41個IGS連續(xù)運行跟蹤站數(shù)據(jù)工程中,從運行消耗加速比來看,計算節(jié)點越多時間越短,計算效率越高。Spark大數(shù)據(jù)平臺會比Hadoop速度提高約20倍[4],但實際中因環(huán)境及應用的不同等原因理論速度通常無法達到,因此,需要做到盡可能合理地分配計算資源,使效率最大化。

4 結(jié)束語

本文針對傳統(tǒng)的單機方法無法應對現(xiàn)今對大規(guī)模復雜的GNSS觀測數(shù)據(jù)的處理需求,利用Spark大數(shù)據(jù)平臺和子網(wǎng)劃分思想實現(xiàn)了基于Spark的基線解算過程的分布式處理,大大提高了計算的效率??梢栽趯嶋H工程中合理有效地分配計算資源,在保證解算精度的前提下,降低執(zhí)行時間,提高對海量GNSS數(shù)據(jù)處理能力。

猜你喜歡
子網(wǎng)基線數(shù)據(jù)處理
高度角對GNSS多系統(tǒng)組合短基線RTK影響
認知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補與極大似然估計法*
基于低頻功率數(shù)據(jù)處理的負荷分解方法
GNSS 靜態(tài)相對定位精度分析與比較
無人機測繪數(shù)據(jù)處理關(guān)鍵技術(shù)及運用
新版GAMIT10.70解算GPS/BDS基線精度對比分析
高層建筑沉降監(jiān)測數(shù)據(jù)處理中多元回歸分析方法的應用研究
高層建筑沉降監(jiān)測數(shù)據(jù)處理中多元回歸分析方法的應用研究
基于虛擬基線的相位干涉儀陣列優(yōu)化設計
計算機網(wǎng)絡課程中網(wǎng)絡測試命令的應用
衡东县| 尉氏县| 甘德县| 绥芬河市| 新郑市| 玉环县| 乌恰县| 荆州市| 荆门市| 应用必备| 新余市| 万山特区| 苍山县| 本溪| 兴化市| 保康县| 蒙阴县| 全椒县| 全南县| 遵义市| 苗栗市| 镇宁| 延川县| 洛扎县| 项城市| 津南区| 钟祥市| 深泽县| 乐山市| 太湖县| 扶风县| 胶南市| 汾阳市| 天峨县| 滨海县| 云南省| 兴和县| 孝感市| 北流市| 富宁县| 宜州市|