999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Spark框架的乘潮水位計算與可視化平臺*

2016-01-26 06:22:51秦勃,朱勇,秦雪
計算機工程與科學 2015年12期

?

基于Spark框架的乘潮水位計算與可視化平臺*

通信地址:266100 山東省青島市中國海洋大學信息科學與工程學院Address:College of Information Science and Engineering,Ocean University of China,Qingdao 266100,Shandong,P.R.China

秦勃1,朱勇1,秦雪2

(1.中國海洋大學信息科學與工程學院,山東 青島 266100;2.國家海洋信息中心,天津 300171)

摘要:乘潮水位計算是海洋環境信息處理的重要組成部分,具有計算量大、計算復雜度高、計算時間長等特性。采用傳統集群計算模式實現乘潮水位計算業務,存在計算成本高、計算伸縮性和交互性差的問題。針對以上問題,提出一種基于Spark框架的乘潮水位計算和可視化平臺。結合對Spark任務調度算法的研究,設計和實現了一種基于節點計算能力的任務調度算法,實現了長時間序列的多任務乘潮水位數據的檢索、獲取、數值計算、特征可視化的并行處理,達到了海量海洋環境數據計算和可視化處理的目的。實驗結果表明,提出的基于Spark的乘潮水位計算和可視化平臺可以有效地提高海量乘潮水位數據的分布式并行處理的效率,為更加快速和高效的乘潮水位計算提供了一種新的方法。

關鍵詞:Spark;乘潮水位;任務調度算法;并行處理;海洋環境信息

1引言

隨著海洋經濟和海洋開發在社會發展中的作用越來越大,海洋科學技術更加受到重視,數字海洋[1]項目的立項和實施,是我國海洋事業發展的一個重要體現。計算機技術的飛速發展在不斷改變著海洋環境信息業務化處理的方法,各種新技術和新方法被應用到海洋信息的處理當中來。在十一五期間,數字海洋的建設已經初步搭建起基本的框架結構,相關典型應用也已經初見雛形,為十二五海洋規劃的發展奠定良好的基礎。十二五海洋規劃綱要中指出,要進一步地加強數字海洋的建設,用數字海洋的計算結果來指導決策,建立起完善的海洋信息基礎服務體系,開發和設計一系列高質量的業務化系統。

海洋環境信息數據[2]具有一系列顯著的特點,數據類型是多樣的,數據量巨大,具有典型的時空特性。海洋環境信息的處理主要包括海洋遙感影像處理[3]、數值模式計算[4]和海洋數據挖掘[5]。經過一段時間的發展和探索,如今已初步建立了大批海洋業務方面的應用系統。這些系統能夠在一定程度上滿足海洋業務處理的需求,但是隨著海洋業務處理要求不斷的提高,出現了越來越多的問題,比如系統資源占用率多、運行成本高、系統規劃缺乏和系統維護困難等問題。基于此種現狀,國家相關部門打算采用云計算的技術,對現有的海洋環境業務處理系統進行升級改造,充分利用云計算技術在數據處理和任務調度上的優勢,逐步搭建起一個具有強大功能和業務處理能力的新型海洋環境信息處理平臺。

乘潮水位數值計算,作為一個海洋環境信息處理的重要組成部分[6],目前大多采用FVCOM(Finite-Volume Coastal Ocean Model)數值計算模型[7],部署到高性能集群上進行計算。在研究傳統業務乘潮水位業務計算模式后,本文提出并實現了云計算框架Spark下對乘潮水位計算和可視化平臺,實現了對乘潮水位任務的調度控制,并將計算結果可視化呈現給用戶。在提高任務調度合理性和科學性、節省乘潮水位計算時間的同時,提高了計算的可交互性、靈活性和可擴展性。

2關鍵技術

Spark是一個快速的、通用的、伸縮性強的數據處理平臺[8],它沿用了 Hadoop MapReduce[9]優點,不同點在于 Spark程序執行過程的中間輸出結果可以保存在內存中,不再需要與 HDFS(Hadoop Distribute File System)[10]進行輸入輸出,即 Spark是一種實現了內存計算的分布式計算框架。與MapReduce框架相比,Spark不但能夠處理傳統的MapReduce程序,同時也適用于需要多次操作特定數據集的應用場合。測試結果表明,Spark任務通常能夠在運行速度方面高出MapReduce幾倍到幾十倍[11]。

Spark的核心設計思想是彈性分布式數據集—RDD(Resilient Distributed Datasets)[12]。它是MapReduce模型的擴展和延伸,實現了高效的數據共享。RDD除了支持工作集的應用,還具有數據流模型的特點,可以實現計算的伸縮性,對數據進行感知調度,并且實現了自動容錯。RDD完整包裝了Spark應用程序數據的輸入和數據的處理,類似于面向對象編程中類(Class)的概念。RDD的操作分成兩種,一種是Transformation,另一種是Action。Transformation是領取任務的過程,Action是任務真正被觸發執行的過程。Action是以job的形式提交給計算引擎,由計算引擎將其轉換成多個task,分發到各個計算節點上,進行邏輯處理。本文所研究的乘潮水位任務控制模式就是基于此種模式。

乘潮水位計算是一個典型的潮汐潮流數值模擬,目前流行的數值計算模式是采用基于有限體積海洋數值模式FVCOM進行數值模擬。FVCOM代表了海洋數值模式的研究方向,也是近期研究的熱點,它能把河流、河口、海灣、大陸架和大洋作為一個整體來研究,根據需要可以在任意地方進行無限加密,不再像以往先分不同區域隨后再嵌套的方法。

3系統設計及其實現

3.1 云平臺海洋環境信息處理框架體系

基于Spark框架的乘潮水位計算與可視化平臺,是海洋公益項目“海洋環境信息云計算與云服務體系框架應用研究”的組成部分之一[13],項目主要研究海洋環境信息在云計算環境中框架體系的問題。圖1為海洋環境信息處理總體框架圖,用戶在Web交互界面中選擇要計算的區域,并將任務提交到可視化平臺的Web門戶服務器上,由Web門戶服務器將乘潮水位任務計算請求轉發到Spark集群上,進而由Spark框架下的乘潮水位計算和可視化平臺進行調度管理和大規模并行計算,計算完成后,生成可視化結果,并將結果通過Web服務器返回給用戶。

Figure 1 Architecture of ocean environment information processing圖1 海洋環境信息處理框架圖

3.2 基于Spark框架的乘潮水位計算與可視化平臺處理機制

目前乘潮水位業務計算模式,大多依賴高性能集群完成,該計算模式通過提交shell命令到集群中,進行數值計算模式計算。與該模式相比,Spark框架下的乘潮水位計算與可視化平臺有四個方面的優勢:(1)改變了傳統業務計算模式,將計算遷移到云平臺框架下執行,減少對硬件配置的依賴,降低了計算成本。(2)交互性、靈活性和可伸縮性好。平臺采用Web交互的方式,界面化操作更加方便,可以通過地圖點選的方式選擇計算區域,降低了用戶使用的難度,計算結果可視化呈現,有更好的可讀性。(3)細化局部區域計算精度。根據計算需要,提高某些乘潮水位港口的計算精度。(4)計算任務合理調度,提高計算效率。通過對Spark框架下原生調度算法的計算測試,以及對Spark任務調度策略的研究,設計和實現了一種基于節點計算能力的任務調度方法。乘潮水位計算與可視化分為乘潮水位數據組織、任務選擇、生成任務列表、提交到Spark上進行計算、生成可視化結果等過程,具體流程如圖2所示。數據組織是指將乘潮水位數值計算的相關數據存儲到HDFS分布式文件系統中;任務選擇和生成任務列表是指在乘潮水位計算平臺的Web界面上,選擇乘潮水位計算的區域、精度、計算方式等;Spark計算過程是將計算任務作為一個應用(application)提交給Spark。Spark框架收到任務之后,根據任務調度算法,將計算任務分配到Spark集群中的各個節點,保證每個計算節點的計算任務均衡,任務分配完成后,在Spark計算節點上啟動FVCOM進行乘潮水位數值計算。可視化結果展示分為兩部分,海域計算結果采用生成BMP圖像的方式展示,根據比例尺規定的顏色映射關系,可以直觀地看出整個海域內的水位情況。各港口的計算結果以表格和變化曲線展示,可以查看計算時間開始后48小時內的乘潮水位的變化情況。

Figure 2 Flow chart of tide-bound water level computing and visualization圖2 乘潮水位計算與可視化處理流程

3.3 Spark框架下乘潮水位計算與可視化存在的問題

雖然RDD模型非常靈活地支持細粒度任務的調度,并且RDD已被用于實現一些調度機制,如公平共享調度,但是在用這種模型編寫的應用中找到一個適合乘潮水位計算的調度策略仍然是一個難題。在乘潮水位計算中,會產生多個可運行(沒有依賴關系)的任務集,這些任務集的調度由調度池的調度方法實現。Spark有兩種任務調度方法,對應了兩種不同類型的任務調度模式:FIFO模式和FAIR模式。先進先出(FIFO)模式直接管理TaskSetManager,任務執行的過程會根據StageID的順序來調度TaskSetManager;公平調度FAIR模式,基本原則是根據所管理的正在運行中的任務數量來判斷優先級,并通過任務權重(weight)來調整任務集執行的優先程度,權值越高,越優先執行。

采用以上兩種調度模式進行乘潮水位計算,雖然能夠一定程度上提高乘潮水位計算的效率,但是我們發現由于不同的計算港口(海域)的網格數量不同,計算復雜度差別較大,計算時間差距較大,無論使用先進先出調度還是公平模式調度,都可能出現由于個別節點計算任務太大,使得整個乘潮水位計算過程的時間變長。本文所研究的基于節點計算能力的算法優化,通過設計合理的調度算法,使計算復雜度高的計算任務優先分配到計算能力強的節點上,使節點計算能力達到充分發揮,避免出現長時間等待其他任務結束的情況,避免Spark隨機任務分配過程出現的任務節點分配不合理的情況。具體調度算法優化實現在第四節中具體介紹。

4基于節點計算能力的算法優化

4.1 算法分析和設計

本算法通過研究任務調度算法來提高Spark框架下乘潮水位任務調度效率。為方便介紹,我們將問題抽象為一個簡單的數學模型。

名詞解釋:計算能力是指綜合考慮Spark平臺中節點的物理參數(CPU型號、CPU主頻、內存),設定的一個表達任務處理能力的一個值。

模型假設:首先,假設在Spark集群中有n臺計算機,各節點配置不同,將節點計算能力的大小分別設定為a1,a2,…,an。之后,假設有m個港口計算任務,每個任務有一定的大小(網格數),將這m個任務的大小設定為 b1,b2,…,bm。

目標:假設第i個計算節點分配到的任務大小為ci,則目標函數為f=min{max{ci/ai}}。

模型分析:在數學上這是一個NP Hard 問題,因此不能在多項式時間內求解,所以采用近似法求解。

算法過程:

第一步,將{a}和{b}分別從大到小排序。

第二步,判斷節點數n和任務數m的關系。

(1)若n≥m,即節點數比要處理的任務數多,則將節點和任務一一對應,使用運算能力強的節點計算網格數大的任務。

(2)若n

首先計算所有任務的網格數之和與所有節點運算能力之和的比值,設為A,即:

然后以A為基準判斷是否能將某個任務bi分配給某個指定節點ai。假設節點ai當前的任務大小為tmp,計算該節點當前任務網格數之和與該節點運算能力的比值,設為B,即B=tmp/a;再計算比值C,C=(tmp+b)/a。

最后,比較|B-A|和|C-A|的大小。若公式|C-A|≤|B-A|成立,則將任務bi分配給節點ai;若不成立,則任務bi不能分配給節點ai,再用上述方法判斷任務bi是否能分配給下一個節點ai+1。

任務的分配順序為從兩邊向中間靠攏,例如若按任務網格數從大到小排序后的任務序列為t1、t2、ti、tm,則分配順序為t1、tm、t2、tm-1、ti、tm+1-i(i≤m/2),使得任務能夠均勻分配。節點分配按照順序分配。

按照這種算法可能會出現任務分配不完的情況,在這種情況下,把所有已分配的節點和任務加入優先隊列中,每次從優先隊列中取出一個當前任務值和節點運算能力比值最小的節點進行任務的二次分配,重復上述分配過程,直到所有任務和節點都加到優先隊列中,輸出分配結果。

Figure 3 Flow chart of the optimization algorithm圖3 優化算法流程圖

4.2 具體技術實現

根據上述優化算法,設計和實現基于Spark的乘潮水位計算優化調度方案,具體技術實現方法如下:

(1)建立Spark集群節點計算能力表,根據Spark集群實際計算能力添加信息,包括CPU計算能力、CPU核心數、內存大小。在啟動Spark集群之前創建好該表,并將該表的配置信息放到SparkConf中或者在Spark啟動時候由Master進程讀取。

(2)建立乘潮水位計算港口任務表,該表的主要作用是對乘潮水位計算港口的計算量進行定量表示,通過港口計算的網格數目來定量表示計算的復雜度,網格數目越多,計算越復雜。

(3)描述表轉化。根據節點計算能力描述表和計算任務描述表進行轉化,轉化成我們需要的數據結構,進而調用優化后的任務調度算法。

(4)應用層讀取任務分配結果:

①讀取生成的xml,以host為key,以所有host相同的taskId及其描述信息構成的列表為value生成一個二元元組為元素的數組。

②將生成的數組通過parallelize方法生成一個rdd,并設置該rdd的partition為當前需要執行的taskId的總數。

③對該rdd進行foreach操作,獲取當前處理二元元組的第二個元素,可得到在該節點上需要執行的任務列表。

④改寫Spark中TaskSchedulerImpl中的resourceOffers函數,將任務分配部分代碼改寫為按workerOffer中的host綁定task,此時遍歷任務列表將對應host的task綁定到對應的host上的executor即可。

通過以上步驟,我們可以把具體任務分發下去,使任務能夠根據元組的host值將任務分發到對應節點,完成調度。

5系統性能

5.1 乘潮水位計算與可視化平臺構建

乘潮水位計算與可視化實驗平臺硬件是Spark集群中的各節點,為了更好地測試優化后的任務調度算法的性能,體現Spark框架下乘潮水位任務控制模式的特點,我們選擇了5個Spark節點,其中節點1為主節點,負責乘潮水位任務的控制調度,Spark2~Spark5節點為計算節點,詳細節點配置描述表見表1。

Table 1 Spark configuration information

軟件配置方面,每個節點安裝的集群計算框架為Spark1.0.2、Hadoop 2.3.0,Java版本:jdk-1.7.0_60,Scala版本:Scala-2.10.4,FVCOM版本:FVCOM-2.6。

實驗數據為中國海區各港口乘潮水位計算區域數據,各港口區域計算網格數目不同,計算復雜度不同,計算時間不同。所有乘潮水位數據存放在HDFS分布式文件系統中,Spark程序運行過程中,HDFS作為數據的輸入。

5.2 實驗結果

測試目的:分別使用Spark框架下乘潮水位原生調度模式和優化控制模式對相同計算量的乘潮水位進行計算。為了實驗結果的可信性和科學性,實驗結果均記錄10次并計算平均值。

測試用例:分別選擇2N(N=1,2,…,7)個港口進行測試。

Table 2 Elapsed time of the three mission

測試結果如圖4所示。

Figure 4 test results圖4 測試結果

5.3 結果分析與測試結論

通過實驗結果可以看出,與傳統業務計算模式相比,原生調度模式提升效率在15%左右,而使用優化后的調度算法提升計算效率在26%~30%。以64個港口為例,優化后的調度算法相對于傳統業務模式節約計算時間192 min,能夠有效提高乘潮水位的計算效率。由此可見,使用Spark框架下的乘潮水位任務控制模式可以減少相同計算量的乘潮水位計算的時間,計算數據量越大,加速效果越明顯,這主要是因為無論使用傳統計算模式還是Spark框架進行乘潮水位計算,由于大區的計算結果是初始條件和邊界值,所以都無法避免這段時間(89 min),而這部分時間占到了計算時間的大部分。

總之,本文研究的基于Spark的乘潮水位計算和可視化平臺,可以改變乘潮水位原有的業務計算模式,增加了計算的靈活性、交互性和可伸縮性,可以根據需要計算不同的港口,提高局部區域的計算精度。更重要的是,通過優化后的任務調度算法,實現對計算任務的合理調度,提高乘潮水位計算的效率。實驗表明,Spark乘潮水位計算和可視化平臺的任務調度模式的加速效果,已經基本達到了對乘潮水位計算加速的預期。

6結束語

本文針對乘潮水位長時間序列下乘潮水位海量數據計算的特點,提出一種基于Spark框架的乘潮水位計算和可視化平臺,并對任務調度算法進行了優化,提高了計算的交互性、靈活性和可伸縮性,達到了提高計算效率的目的。由于目前設置的節點計算能力為根據機器相關配置參數,多次測試后手動設置,如何采用算法的方式動態地計算出節點的計算能力,將是未來工作的重點。

參考文獻:附中文

[1]Xin Zhang, Wen Dong, Li Si-hai, et al. China digital ocean prototype system[J]. International Journal of Digital Earth,2011,4(3):211-222.

[2]Liu Jian,Jiang Xiao-yi,Fan Xiang-tao. Review on the marine environment information visualization[J]. Marine Science Bulletin,2014,33(2):235-240.(in Chinese)

[3]Martin S. An introduction to ocean remote sensing[M]. Cambridge:Cambridge University Press,2014.

[4]Kantha L H,Clayson C A. Numerical models of oceans and oceanic processes[M]. New York:Academic Press,2000.

[5]Wooley B,Bridges S,Hodges J,et al. Scaling the data mining step in knowledge discovery using oceanographic data[C]∥Proc of the 13th International Conference on Industrial and Engineering Application of Artificial Intelligence and Expert System,2000:85-92.

[6]Tsai C P,Lee T L. Back-propagation neural network in tidal-level forecasting[J]. Journal of Waterway,Port,Coastal,and Ocean Engineering,1999,125(4):195-202.

[7]Chen C,Cowles G,Beardsley R C. An unstructured grid,finite-volume coastal ocean model:FVCOM user manual[R]. Technology Report 0620602.New Bedford:SMAST/UMASSD,2006.

[8]Zaharia M,Chowdhury M,Franklin M J,et al. Spark:cluster computing with working sets[C]∥Proc of the 2nd USENIX Conference on Hot Topics in Cloud Computing,2010,10.

[9]Dean J,Ghemawat S. MapReduce:Simplified data processing on large clusters[J]. Operating Systems Design & Implementation,2004,51(1):147-152.

[10]Shvachko K,Kuang H,Radia S,et al. The Hadoop distributed file system[C]∥Proc of 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST),2010:1-10.

[11]Lee M,Jung H,Cho M. On a Hadoop-based analytics service system[J]. International Journal of Advances in Soft Computing & Its Applications,2015,7(1):1-8.

[12]Zaharia M,Chowdhury M,Das T,et al. Resilient distributed datasets:A fault-tolerant abstraction for in-memory cluster computing[C]∥Proc of the 9th USENIX Conference on Networked Systems Design and Implementation,2012:141-146.

[13]Wang Jia-liang,Qin Bo,Liu Jian-jian,et al. Interactive visualization platform based on MapReduce[J].Telecommunications Science,2012,28(9):22-27.(in Chinese)

[2]劉健,姜曉軼,范湘濤.海洋環境信息可視化研究進展[J].海洋通報,2014,33(2):235-240.

[13]王加亮,秦勃,劉健健,等. 基于MapReduce的交互可視化平臺[J]. 電信科學,2012,28(9):22-27.

秦勃(1964-),男,山東青島人 ,博士,教授,研究方向為計算機圖形圖像處理、并行處理和云計算。E-mail:qinbo@ouc.edu.cn

QIN Bo,born in 1964,PhD,professor,his research interests include computer graphics and image processing,parallel processing,and cloud computing.

Tide-bound water level computing and visualization platform based on Spark

QIN Bo1,ZHU Yong1,QIN Xue2

(1.College of Information Science and Engineering,Ocean University of China,Qingdao 266100;

2.National Marine Data & Information Service,Tianjin 300171,China)

Abstract:Tide-bound water level computing is an important part of ocean environment information processing, which features huge amount of data, high complexity, and prolonged computing time. The traditional computing model implemented by HPC has a number of problems, such as high computation cost, poor scalability and interactivity. Aiming at all these problems, we propose an interactive computing and visualization platform based on the Spark scheduling algorithm. We design a computing capacity scheduling algorithm, realize the parallel processing of large-scale tide-bound water level data, such as data retrieval, data extraction, numerical calculation, feature-based visualization, and achieve the purpose of parallel processing and visualization of large-scale ocean environmental data on Spark. Experimental results show that the computing and visualization platform based on Spark can improve the traditional computing model, lessen the dependence of tidal level calculation on high performance cluster and reduce computation cost. In addition, the newly-developed task scheduling algorithm can make task allocation more rational and scientific, and therefore further enhance its efficiency. In conclusion, the proposed platform provides a new method for tide-bound water level computing.

Key words:Spark; tide-bound water level;task scheduling algorithm;parallel processing;ocean environmental information

作者簡介:

doi:10.3969/j.issn.1007-130X.2015.12.004

中圖分類號:TP311

文獻標志碼:A

基金項目:海洋公益性行業科研專項經費資助項目(201105033)

收稿日期:修回日期:2015-10-26

文章編號:1007-130X(2015)12-2216-06

主站蜘蛛池模板: 日本不卡在线播放| 国产91小视频在线观看| 男女性色大片免费网站| 国产亚洲精| 国产人碰人摸人爱免费视频| 国产精品区视频中文字幕| 在线视频一区二区三区不卡| 亚洲日韩AV无码一区二区三区人| 亚洲人成网18禁| 精品自窥自偷在线看| 国产在线专区| 久久夜夜视频| 亚洲综合精品香蕉久久网| 夜夜操国产| 97色伦色在线综合视频| 欧美天堂久久| 国产免费久久精品99re丫丫一| 午夜毛片免费观看视频 | 欧美日韩国产精品va| 免费毛片全部不收费的| 亚洲AV色香蕉一区二区| 国产视频a| 亚洲美女久久| 日本不卡免费高清视频| 四虎在线观看视频高清无码| 免费看的一级毛片| 日本久久久久久免费网络| 又爽又大又光又色的午夜视频| 亚洲色图综合在线| 欧美日韩午夜| 国产91成人| 国产丝袜无码一区二区视频| 日本高清有码人妻| 国产美女在线免费观看| 欧美另类图片视频无弹跳第一页 | 午夜精品久久久久久久99热下载 | 热99re99首页精品亚洲五月天| 免费A级毛片无码无遮挡| 一本一道波多野结衣一区二区| 日韩视频精品在线| 色噜噜综合网| 丁香婷婷激情综合激情| 波多野结衣久久高清免费| 国产亚洲精品97在线观看| 欧美日韩精品综合在线一区| 一级毛片免费观看久| 看你懂的巨臀中文字幕一区二区 | 伊人久久久久久久| 青草精品视频| 国产综合精品一区二区| 国产人人乐人人爱| 国产亚洲视频中文字幕视频| 亚洲一区二区日韩欧美gif| 国产一级妓女av网站| 国产精品免费电影| 国产成人综合在线观看| 日本草草视频在线观看| 日韩精品亚洲精品第一页| 国模粉嫩小泬视频在线观看| 中文字幕日韩视频欧美一区| 亚洲成人一区二区| 片在线无码观看| 婷婷色一二三区波多野衣 | 国产一区二区三区视频| 自拍亚洲欧美精品| 中国一级特黄大片在线观看| 国产系列在线| 在线观看亚洲天堂| 亚洲一区二区三区麻豆| 久久天天躁夜夜躁狠狠| 国产成熟女人性满足视频| 欧美色丁香| 国产门事件在线| 欧美中文字幕在线视频| 国产丝袜第一页| 欧美精品二区| 少妇精品网站| 中国国语毛片免费观看视频| 亚洲午夜国产精品无卡| 国产人成在线视频| 国产成人精彩在线视频50| 精品自窥自偷在线看|