01 系統(tǒng)總體架構(gòu)
船舶與海洋大數(shù)據(jù)分析服務(wù)的建設(shè)內(nèi)容和任務(wù)主要有海洋數(shù)據(jù)引接、數(shù)據(jù)存儲、數(shù)據(jù)分析、可視化子系統(tǒng)、數(shù)據(jù)服務(wù)與應(yīng)用等研究內(nèi)容。系統(tǒng)的總體架構(gòu)如圖1所示。
圖 1 海洋大數(shù)據(jù)智能分析平臺總體架構(gòu)
02 接口設(shè)計(jì)
2.1 外部接口設(shè)計(jì)
船舶與海洋大數(shù)據(jù)分析服務(wù)主要包括引接匯聚子系統(tǒng)、數(shù)據(jù)治理子系統(tǒng)、超融合共享存儲子系統(tǒng)、大數(shù)據(jù)分析子系統(tǒng)、行業(yè)分析子系統(tǒng)、統(tǒng)一訪問門戶子系統(tǒng)6個部分。其中外部接口包括引接匯聚子系統(tǒng)與源數(shù)據(jù)的接口、大數(shù)據(jù)分析子系統(tǒng)與外部應(yīng)用系統(tǒng)的接口,其外部接口如圖2所示。
2.2 內(nèi)部接口設(shè)計(jì)
船舶與海洋大數(shù)據(jù)分析服務(wù)的內(nèi)部接口主要包括引接匯聚子系統(tǒng)與超融合共享存儲子系統(tǒng)的接口、引接匯聚子系統(tǒng)與數(shù)據(jù)治理子系統(tǒng)的接口、超融合共享存儲子系統(tǒng)與數(shù)據(jù)治理子系統(tǒng)的接口、超融合共享存儲子系統(tǒng)與大數(shù)據(jù)分析子系統(tǒng)的接口、大數(shù)據(jù)分析子系統(tǒng)與行業(yè)分析子系統(tǒng)的接口,內(nèi)部接口如圖3所示。
圖 3 內(nèi)部接口示意圖
03 業(yè)務(wù)流程
3.1 用戶手動建模訓(xùn)練
用戶手動建模訓(xùn)練是用戶使用大數(shù)據(jù)分析服務(wù)進(jìn)行自己業(yè)務(wù)的模型搭建,對數(shù)據(jù)進(jìn)行分析和處理的流程。根據(jù)具體需求,用戶可以自定義算子然后再通過拖拽算子的方式手動構(gòu)建模型。操作流程如圖4所示。
3.2 應(yīng)用自動化訓(xùn)練
大數(shù)據(jù)分析服務(wù)對外提供統(tǒng)一的Rest接口,主要有訓(xùn)練和預(yù)測、分析和算子調(diào)用3種應(yīng)用場景。
1)訓(xùn)練和預(yù)測
訓(xùn)練時,應(yīng)用端通過接口1和接口2得到數(shù)據(jù)集和模板列表,選擇數(shù)據(jù)集和模板;然后通過接口3提交返回的數(shù)據(jù)集id和模板id;分析服務(wù)接收后進(jìn)行參數(shù)校驗(yàn),返回參數(shù)正確或者錯誤,同時啟動模板調(diào)用數(shù)據(jù),進(jìn)行模型訓(xùn)練;最后通過接口4定時查詢訓(xùn)練模型結(jié)果是否產(chǎn)生。分析服務(wù)去數(shù)據(jù)庫中查詢結(jié)果,返回結(jié)果未生成,或者返回訓(xùn)練好的模型。
預(yù)測時,應(yīng)用端通過接口1和接口2獲取數(shù)據(jù)集和模板列表,選擇數(shù)據(jù)集和模板;然后通過接口5提交返回的數(shù)據(jù)集id和模板id;分析服務(wù)接收后進(jìn)行參數(shù)校驗(yàn),參數(shù)錯誤則返回參數(shù)錯誤信息,正確則調(diào)用模板,輸入數(shù)據(jù)集和訓(xùn)練好的模型,得到預(yù)測結(jié)果并返回給應(yīng)用端。訓(xùn)練與預(yù)測場景的數(shù)據(jù)交互流如圖5所示。
2)分析
應(yīng)用端通過接口1和接口2獲取數(shù)據(jù)集和模板列表;然后通過接口3發(fā)送數(shù)據(jù)集id和模板id;分析服務(wù)檢查參數(shù)是否正確,并返回正確與否,如果參數(shù)正確,調(diào)用模板和數(shù)據(jù)集進(jìn)行分析;最后通過接口4定時查詢分析結(jié)果是否產(chǎn)生。分析服務(wù)返回分析結(jié)果未產(chǎn)生信息,或者返回分析結(jié)果。分析場景數(shù)據(jù)流如圖6(左)所示。
3)算子調(diào)用
應(yīng)用端調(diào)用接口1和接口6獲取數(shù)據(jù)集和算子列表,選擇數(shù)據(jù)集和算子;調(diào)用接口7發(fā)送數(shù)據(jù)集id和算子id;分析服務(wù)檢查參數(shù)是否正確,錯誤則返回參數(shù)錯誤,正確則調(diào)用算子和數(shù)據(jù)集,運(yùn)行后的結(jié)果返回給應(yīng)用端。算子調(diào)用數(shù)據(jù)流如圖6(右)所示。
04 子系統(tǒng)設(shè)計(jì)
4.1 多源異構(gòu)引接匯聚子系統(tǒng)
多源異構(gòu)引接匯聚子系統(tǒng)主要由數(shù)據(jù)引接、數(shù)據(jù)轉(zhuǎn)接和數(shù)據(jù)預(yù)處理3部分組成,用于將各種實(shí)時或者歷史多源異構(gòu)數(shù)據(jù)接入到大數(shù)據(jù)分析服務(wù)的存儲模塊中。數(shù)據(jù)轉(zhuǎn)接模塊將數(shù)據(jù)轉(zhuǎn)存到kafka組件和ftp文件系統(tǒng)里實(shí)現(xiàn)本地持久化;數(shù)據(jù)預(yù)處理模塊將暫存的數(shù)據(jù)獲取后經(jīng)過數(shù)據(jù)清理和數(shù)據(jù)融合,得到格式規(guī)范的數(shù)據(jù),然后存入超融合共享存儲子系統(tǒng)。多源異構(gòu)引接匯聚子系統(tǒng)架構(gòu)如圖7所示。
4.2 海洋大數(shù)據(jù)治理子系統(tǒng)
海洋大數(shù)據(jù)治理子系統(tǒng)包含元數(shù)據(jù)管理、數(shù)據(jù)質(zhì)量管理、數(shù)據(jù)標(biāo)準(zhǔn)等,用于提升異構(gòu)環(huán)境下海洋數(shù)據(jù)(海洋環(huán)境、海洋目標(biāo)、風(fēng)力發(fā)電設(shè)備運(yùn)行數(shù)據(jù)、船舶動力數(shù)據(jù)、水下裝備運(yùn)行效能數(shù)據(jù)、JJ適配性數(shù)據(jù)、海洋資源探測)的管理水平和使用效率。海洋大數(shù)據(jù)治理子系統(tǒng)架構(gòu)圖如圖8所示。
4.3 超融合共享存儲子系統(tǒng)
超融合共享存儲子系統(tǒng)針對多源異構(gòu)數(shù)據(jù)在存儲上的多樣性特征,實(shí)現(xiàn)了對海量多源數(shù)據(jù)的引接、存儲、管理和組織。其底層支持結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)的承載組織,將結(jié)構(gòu)化數(shù)據(jù)存儲在本地關(guān)系數(shù)據(jù)庫或分布式存儲系統(tǒng)中,將非結(jié)構(gòu)化數(shù)據(jù)存儲在共享文件系統(tǒng)中,并對數(shù)據(jù)的存儲進(jìn)行優(yōu)化,使數(shù)據(jù)存儲子系統(tǒng)具備并發(fā)訪問性能及存儲規(guī)模的強(qiáng)可擴(kuò)展性。數(shù)據(jù)存儲子系統(tǒng)架構(gòu)如圖9所示。
4.4 海洋大數(shù)據(jù)分析子系統(tǒng)
海洋大數(shù)據(jù)分析子系統(tǒng)對多元異構(gòu)數(shù)據(jù)進(jìn)行分析建模處理,主要包括3個部分:大數(shù)據(jù)分析服務(wù)、高性能計(jì)算服務(wù)和可視化分析服務(wù)。
1) 大數(shù)據(jù)分析服務(wù)
大數(shù)據(jù)分析服務(wù)是一個自助式建模分析服務(wù),利用數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、包括深度神經(jīng)網(wǎng)絡(luò)等分析技術(shù)對相應(yīng)數(shù)據(jù)集進(jìn)行挖掘建模。服務(wù)架構(gòu)主要分為3層,最底層的是一個由HDFS,MapReduce和Spark等大數(shù)據(jù)框架組成的一個大數(shù)據(jù)引擎;中間層是一個算子庫,服務(wù)提供高效豐富、支持分布式的算子,并提供統(tǒng)一的對外提供服務(wù)接口方式,支持上層應(yīng)用;最上層是一個大數(shù)據(jù)可視化建模應(yīng)用層,用戶可通過創(chuàng)建、配置、提交和監(jiān)督來搭建自己的業(yè)務(wù)邏輯和分析模型,并且支持列表、折線圖、柱狀圖和餅圖等多種形式的分析結(jié)果展示及保存。
大數(shù)據(jù)分析服務(wù)的架構(gòu)如圖10所示。
大數(shù)據(jù)分析服務(wù)模塊由數(shù)據(jù)管理、分析任務(wù)管理、系統(tǒng)管理、ETL模塊、算子庫、數(shù)據(jù)可視化模塊構(gòu)成,如圖11所示。
2) 高性能計(jì)算服務(wù)
高性能計(jì)算(HPC)服務(wù)是一個軟硬件一體的架構(gòu),采用存算一體化、混合異構(gòu)計(jì)算等多種并行策略,結(jié)合深度學(xué)習(xí)等手段實(shí)現(xiàn)海量數(shù)據(jù)全自動、高效率、高精度的快速處理和智能分析解譯,實(shí)現(xiàn)海量數(shù)據(jù)快速處理和實(shí)時響應(yīng),如圖12所示。
HPC服務(wù)的主要組件如圖13所示。
3) 可視化分析服務(wù)
可視化分析服務(wù)為三維全球可視化子系統(tǒng)提供數(shù)據(jù)處理的功能,服務(wù)架構(gòu)如圖14所示。
4.5 行業(yè)分析子系統(tǒng)
通過數(shù)據(jù)挖掘、分析處理、云計(jì)算等技術(shù),以多源異構(gòu)海洋與船舶數(shù)據(jù)的存儲與管理、海洋與船舶高通量實(shí)時流數(shù)據(jù)處理、目標(biāo)關(guān)聯(lián)與異常預(yù)警、海上航線智能規(guī)劃、船舶動力裝備故障自動診斷與趨勢分析、海洋與船舶動態(tài)目標(biāo)高效渲染及實(shí)時展示等實(shí)際應(yīng)用技術(shù),形成船舶裝備和航行信息保障、水下裝備環(huán)境適應(yīng)性保障、軍民融合海洋信息綜合保障以及風(fēng)力發(fā)電綜合保障等行業(yè)應(yīng)用專用分析模型庫,為同類行業(yè)應(yīng)用研制提供可復(fù)用的行業(yè)專用模型資源保障。
4.6 多維數(shù)據(jù)可視化子系統(tǒng)
1)基于組件圖表動態(tài)監(jiān)視可視化
在分布式計(jì)算的基礎(chǔ)上,封裝可視化分析算子、可視化圖形組件、可視化交互組件等,使得所有分析功能、展示方式以拖拽式開發(fā),所見即所得。利用PC機(jī)、大屏等終端,通過瀏覽器即可實(shí)現(xiàn)訪問和分享??傮w架構(gòu)如圖15所示。
2)三維全球可視化
三維全球可視化子系統(tǒng)基于地理空間可視化技術(shù),采用“服務(wù)+插件”的架構(gòu),封裝標(biāo)準(zhǔn)的三維渲染可視化引擎,實(shí)現(xiàn)數(shù)據(jù)、行業(yè)產(chǎn)品數(shù)據(jù)的接入、渲染、分析和可視化功能。三維全球可視化子系統(tǒng)包括三維可視化支撐、三維基礎(chǔ)應(yīng)用和業(yè)務(wù)數(shù)據(jù)可視化3個模塊組成,如圖16所示。
可視化展示子系統(tǒng)服務(wù)以GEOVIS iExplorer空天大數(shù)據(jù)可視化服務(wù)為基礎(chǔ),其架構(gòu)主要包括引擎層、框架層和應(yīng)用層,如圖17所示。
其中引擎層用于創(chuàng)建三維、實(shí)現(xiàn)各種數(shù)據(jù)、符號、圖形等在三維球上繪制;服務(wù)層實(shí)現(xiàn)框架集成、界面配置、工具擴(kuò)展、數(shù)據(jù)調(diào)度、交互控制以及數(shù)據(jù)緩存優(yōu)化機(jī)制等;應(yīng)用層在引擎層、服務(wù)層的基礎(chǔ)上,構(gòu)建基礎(chǔ)應(yīng)用,實(shí)現(xiàn)了基礎(chǔ)數(shù)據(jù)可視化、專題數(shù)據(jù)可視化、空間分析、基礎(chǔ)標(biāo)繪等功能,以及在此基礎(chǔ)上構(gòu)建應(yīng)用系統(tǒng)的能力。
4.7 統(tǒng)一訪問門戶子系統(tǒng)
統(tǒng)一訪問門戶平臺將各種分散的、異構(gòu)的常用應(yīng)用和數(shù)據(jù)資源集成到信息管理平臺之上,并以統(tǒng)一的用戶界面提供給用戶,為用戶提供一個支持信息訪問、傳遞、以及協(xié)作化一站式個性化服務(wù)的統(tǒng)一門戶平臺。統(tǒng)一訪問門戶子系統(tǒng)可實(shí)現(xiàn)數(shù)據(jù)統(tǒng)一查詢、分析任務(wù)交互和標(biāo)準(zhǔn)接口及API等服務(wù),如圖18所示。
05 關(guān)鍵技術(shù)及解決途徑
5.1 多源異構(gòu)數(shù)據(jù)超融合共享存儲
1) 結(jié)構(gòu)化數(shù)據(jù)存儲
大規(guī)模并行空間信息數(shù)據(jù)庫通過MPP架構(gòu)實(shí)現(xiàn)了數(shù)據(jù)的分載及計(jì)算的并行加速;同時通過對傳統(tǒng)關(guān)系數(shù)據(jù)庫計(jì)算引擎擴(kuò)展,可內(nèi)置支持對GIS及空間數(shù)據(jù)的豐富計(jì)算函數(shù)UDF,同時在語法上支持SQL標(biāo)準(zhǔn),并兼容OLAP即席分析模式。并行空間數(shù)據(jù)庫架構(gòu)分層由交互接口組件、狀態(tài)維護(hù)組件、元數(shù)據(jù)管理組件、計(jì)算組件和存儲組件組成,如圖19所示。
2) 非結(jié)構(gòu)化數(shù)據(jù)存儲
非結(jié)構(gòu)化數(shù)據(jù)的存儲通過超融合共享存儲系統(tǒng)實(shí)現(xiàn),其主要提供分布式文件系統(tǒng)功能。用來存儲大規(guī)模遙感影像、音視頻、中間處理結(jié)果數(shù)據(jù)、第三方數(shù)據(jù)源等非結(jié)構(gòu)化數(shù)據(jù),同時還可作為大規(guī)模并行空間信息數(shù)據(jù)庫、海量柵格數(shù)據(jù)庫、歷史軌跡數(shù)據(jù)庫及第三方Hadoop及Spark等大數(shù)據(jù)計(jì)算服務(wù)的底層存儲,與文件存儲拉通,共享命名空間及存儲資源池,形成同一套硬件支撐多個應(yīng)用出口的融合存儲能力。
3) 半結(jié)構(gòu)化數(shù)據(jù)存儲
對于專題數(shù)據(jù)庫中大量的文本數(shù)據(jù)、消息類數(shù)據(jù)、日志數(shù)據(jù)、配置數(shù)據(jù)等弱結(jié)構(gòu)化數(shù)據(jù)或freeschema類數(shù)據(jù),其存儲格式可為文本文件、xml文件或json數(shù)據(jù)串,相比數(shù)據(jù)庫表其數(shù)據(jù)格式更為靈活,相比音視頻、圖片等非結(jié)構(gòu)化數(shù)據(jù)其又是可解析的。針對此類廣泛存在的半結(jié)構(gòu)化數(shù)據(jù),本項(xiàng)目采用分布式KV列式數(shù)據(jù)庫進(jìn)行存儲。本數(shù)據(jù)庫技術(shù)優(yōu)勢主要體現(xiàn)在多維索引SQL適配上,圖20為KV數(shù)據(jù)庫具備的關(guān)鍵技術(shù)特性。
5.2 高通量實(shí)時流數(shù)據(jù)處理
使用Spark Streaming分布式的大數(shù)據(jù)實(shí)時計(jì)算框架,提供動態(tài)、高吞吐量的、可容錯的流式數(shù)據(jù)處理。可以從多個數(shù)據(jù)Kafka,F(xiàn)lume,Kinesis,Twitter,Tcp scokets中獲取數(shù)據(jù),然后使用復(fù)雜的算法和高級的函數(shù)算子如map,reduce,join,window,進(jìn)行數(shù)據(jù)處理加工。最后可以將處理后的數(shù)據(jù)輸出到文件系統(tǒng),數(shù)據(jù)庫,和可視化界面,同樣也可以在數(shù)據(jù)流上使用機(jī)器學(xué)習(xí)和圖形計(jì)算算法。Spark Streaming同Spark sql一樣在核心RDD上封裝一種數(shù)據(jù)集DStream,用于適應(yīng)實(shí)時計(jì)算的特點(diǎn),類似于Spark sql的Dataset和DataFrame用于方便交互式查詢操作,如圖21所示。
5.3 高并發(fā)接口訪問保障
高并發(fā)接口訪問保障的實(shí)現(xiàn)通過2個層面來實(shí)現(xiàn),一個是Nginx對訪問接口的負(fù)載均衡管理,另一個是并發(fā)多線程處理任務(wù)機(jī)制。
1)Nginx負(fù)載均衡
Nginx動態(tài)負(fù)載均衡通過對于后端接口服務(wù)集群的狀態(tài)監(jiān)測,量化不同接口服務(wù)的性能差異來周期性調(diào)整服務(wù)器的比重,實(shí)現(xiàn)訪問接口分配權(quán)重的動態(tài)調(diào)整。負(fù)載均衡的原理如圖22所示。
2)并發(fā)多線程處理任務(wù)
數(shù)據(jù)分析服務(wù)后端對于高并發(fā)的接口訪問請求會啟動多線程去處理任務(wù)作業(yè),每一個線程都會處理一個訪問請求生成的任務(wù)。在內(nèi)存等硬件資源足夠情況下,線程數(shù)足夠支持高并發(fā)訪問接口產(chǎn)生的任務(wù),這些線程將按照順序拿到CPU資源執(zhí)行。原理如圖23所示。
3)彈性資源調(diào)度機(jī)制
使用YARN資源調(diào)度器,通過隊(duì)列、優(yōu)先級設(shè)置以及資源分配原則對資源分配進(jìn)行管理。
06 結(jié) 語
本文構(gòu)建了一種海洋大數(shù)據(jù)智能分析系統(tǒng),該系統(tǒng)具有如下優(yōu)勢特征:
1)多源異構(gòu)引接匯聚子系統(tǒng)具有可擴(kuò)展性,子中心數(shù)量、數(shù)據(jù)種類都可以擴(kuò)展;
2)海洋領(lǐng)域行業(yè)分析子系統(tǒng)包括船舶裝備和航行信息保障行業(yè)分析模型模板、水下裝備環(huán)境適應(yīng)性保障行業(yè)分析模型模板、海洋信息綜合保障行業(yè)分析模型模板、風(fēng)力發(fā)電綜合保障行業(yè)分析模型模板,并且行業(yè)分析模板具有可擴(kuò)展性,領(lǐng)域分析算法可以進(jìn)一步進(jìn)行擴(kuò)充集成,同一算法可具備多個版本;
3)領(lǐng)域自助建模工作跟外部應(yīng)用訪問可無縫銜接,領(lǐng)域構(gòu)建的特定模型保存在領(lǐng)域分析子系統(tǒng)中,外部應(yīng)用系統(tǒng)直接可以授權(quán)共享方式請求模型訪問分析并獲得執(zhí)行結(jié)果;
4)所有海洋領(lǐng)域數(shù)據(jù)和分析算法,外部應(yīng)用可以在源代碼中通過API接口調(diào)用發(fā)生進(jìn)行訪問,降低應(yīng)用訪問難度。