嚴(yán)哲 周斌雄 張祥燊 吳君雄
(海南集思勘測規(guī)劃設(shè)計(jì)有限公司 海南海口570203)
地理信息是用于描述地理位置、時(shí)空分布以及其它相關(guān)自然屬性的信息資源,對(duì)于社會(huì)經(jīng)濟(jì)的發(fā)展具有重要推動(dòng)作用。隨著互聯(lián)網(wǎng)技術(shù)的深入發(fā)展,我國的互聯(lián)網(wǎng)普及率已接近60%,由于地理信息在互聯(lián)網(wǎng)中以多種形式廣泛傳播,使得具有特殊敏感地理信息(如軍事基地、重要基礎(chǔ)設(shè)施等的)的保密工作成為一項(xiàng)重要工作[1-4]。
為了加強(qiáng)敏感地理信息的保密工作,需要對(duì)地圖中的敏感要素進(jìn)行準(zhǔn)確識(shí)別。傳統(tǒng)的通過人工檢測的方法不僅效率低下,而且在準(zhǔn)確性和召回率上都較低,這對(duì)于國家涉密敏感地理信息的保護(hù)極為不利[5]。為此,李安波等提出基于多屬性決策及污點(diǎn)跟蹤的敏感地理信息識(shí)別方法,該方法基于灰色關(guān)聯(lián)分析及理想優(yōu)基點(diǎn)法對(duì)敏感度進(jìn)行計(jì)算分析[6];翟東海等提出了基于條件隨機(jī)場的敏感信息檢測模型,并從準(zhǔn)確率、召回率和F 度量值三個(gè)方面證實(shí)該模型的可靠性[7]。
Spark 是當(dāng)前十分流行的大數(shù)據(jù)分析框架,具有運(yùn)行速度快、通用性強(qiáng)、易用性好等諸多優(yōu)點(diǎn),已被廣泛應(yīng)用于人臉圖像檢索、路網(wǎng)核密度檢測等領(lǐng)域,并取得了較好的應(yīng)用效果[8-9]。將Spark 框架運(yùn)用于敏感地理信息檢測,同時(shí)進(jìn)行并行化優(yōu)化[10-11],不僅可以提高檢測運(yùn)行效率,而且還可以大大提升檢測各項(xiàng)指標(biāo),保護(hù)國家的信息安全與利益。
Spark 核心RDD 是指彈性分布式數(shù)據(jù)集,包括內(nèi)存存儲(chǔ)、只讀以及分區(qū)記錄等三個(gè)集合,其依賴關(guān)系包括寬依賴和窄依賴,通過RDD 的依賴關(guān)系可以形成Spark 計(jì)算框架的任務(wù)調(diào)度及操作模式,而Spark 的操作模式又分為轉(zhuǎn)換操作和運(yùn)行操作,轉(zhuǎn)換操作不會(huì)被執(zhí)行,而運(yùn)行操作會(huì)觸發(fā)Spark 提交任務(wù)然后執(zhí)行。
當(dāng)運(yùn)行操作提交任務(wù)后,就會(huì)促使Spark 進(jìn)行執(zhí)行操作。 Spark 的任務(wù)調(diào)度系統(tǒng)包括DAGScheduler 和Task Scheduler,前者主要負(fù)責(zé)對(duì)用戶的交付應(yīng)用進(jìn)行分析,并根據(jù)不同的依賴關(guān)系建立起不同的分析步驟;而Task Scheduler 的主要作用為任務(wù)調(diào)度運(yùn)行,即將任務(wù)分配至工作節(jié)點(diǎn)中。任務(wù)調(diào)度過程主要為:
(1)通過RDD 的依賴關(guān)系構(gòu)建DAG 圖;
(2)系統(tǒng)將DAG 圖交由DAGScheduler 進(jìn)行解析,并分解為相互依賴的stage,形成任務(wù)集Task Set;
(3)DAGScheduler 將 任 務(wù) 集 發(fā) 送 至 Task Scheduler,并通過集管理器將任務(wù)再次分發(fā)至各個(gè)對(duì)應(yīng)的工作節(jié)點(diǎn);
(4)各工作節(jié)點(diǎn)根據(jù)任務(wù)分配進(jìn)行執(zhí)行,然后保存和返回執(zhí)行結(jié)果(見圖1)。
圖1 Spark 任務(wù)調(diào)度流程
Spark 運(yùn)行模式包括local 運(yùn)行模式、Standalone運(yùn)行模式、YARN-Client 運(yùn)行模式和YARN-Cluster運(yùn)行模式。不管是在何種運(yùn)行模式下,其都要經(jīng)過Spark 應(yīng)用程序的整體運(yùn)行。Spark 應(yīng)用程序框架包括驅(qū)動(dòng)程序、集群資源管理器和任務(wù)執(zhí)行進(jìn)程;其中,集群管理器會(huì)根據(jù)不同運(yùn)行模式?jīng)Q定由誰提供資源分配與管理,如在local 運(yùn)行模式和Standalone運(yùn)行模式下,主要由Master 提供,在YARN-Client運(yùn)行模式和YARN-Cluster 運(yùn)行模式下,則由Resource Manager 提供,見圖2。
圖2 Spark 運(yùn)行程序
Spark 大數(shù)據(jù)分析框架的基本前提是對(duì)圖像進(jìn)行敏感度計(jì)算,敏感度檢測計(jì)算流程主要分為四個(gè)部分,即詞法分析提取特征詞集、取特征詞集中敏感詞、文本特征提取和地圖文件敏感度計(jì)算,見圖3。地圖文件的敏感度為地點(diǎn)標(biāo)注信息敏感值與地圖附屬信息的敏感值之和,即:
式中:MS(M)表示地圖敏感度;MS(P)表示地點(diǎn)標(biāo)注信息敏感度;MS(F)表示地圖附屬信息的敏感度;α和β 分別為對(duì)應(yīng)的計(jì)算系數(shù),文中分別取值0.4 和0.6。
式中:ωi表示ci在文本中的TF-IDF 權(quán)重值;Vsj表示sj對(duì)應(yīng)的地理信息敏感系數(shù)值;Lsi表示ci在地點(diǎn)標(biāo)注POI 中的位置屬性;Mij表示ci與sj的相似度值。
圖3 敏感地理信息敏感度計(jì)算
為了驗(yàn)證Spark 算法的合理性,采用仿真模擬手段,對(duì)比分析了Spark 算法、SCRFs 算法以及SW算法的檢測結(jié)果。在分析過程中數(shù)據(jù)集大小為200~1800 個(gè),呈200 等間距遞增,并選取10 次實(shí)驗(yàn)結(jié)果的平均值作為分析結(jié)果,見圖4。從圖中可以看到:隨著數(shù)據(jù)集大小的逐漸增加,所有算法的準(zhǔn)確率、召回率以及F 度量值基本呈先增加后逐步穩(wěn)定的變化趨勢;同一數(shù)據(jù)集下,Spark 算法的準(zhǔn)確率、召回率以及F 度量值最大,其次為SCRFs 算法,最小的為SW算法,這是因?yàn)镾park 算法不僅考慮了特征詞與敏感詞之間的直接匹配度,而且還考慮了兩者之間的相似性敏感信息以及特征詞在文本中的位置屬性和權(quán)值情況等。因此從提取信息完整度來講,Spark 算法更全面,對(duì)敏感詞的檢測覆蓋程度高于SCRFs 算法以及SW 算法,故準(zhǔn)確率和召回率有較大提升。
圖4 不同算法仿真結(jié)果對(duì)比
由于Spark 算法需要提取大量的信息,因此,對(duì)于運(yùn)行內(nèi)存和效率有較高的要求。參考Spark 算法在其它領(lǐng)域的應(yīng)用,對(duì)其進(jìn)行并行化優(yōu)化處理。為了提升運(yùn)行效率,基于Hadoop 和Spark 計(jì)算框架,采用HDFS 分布式文件系統(tǒng)和Hbase 數(shù)據(jù)庫,建立包括數(shù)據(jù)處理層、計(jì)算框架控制層、數(shù)據(jù)預(yù)處理層、文本特征提取層以及地圖敏感度計(jì)算層的由下到上的統(tǒng)一處理結(jié)構(gòu),見圖5。
圖5 并行化結(jié)構(gòu)設(shè)計(jì)
根據(jù)并行化框架處理結(jié)構(gòu),將并行化算法流程分為六個(gè)步驟:一、將HDFS 的數(shù)據(jù)文件轉(zhuǎn)化為RDD格式并將其讀入Spark 計(jì)算框架;二、對(duì)讀入的數(shù)據(jù)進(jìn)行重新分區(qū);三、將重新分區(qū)后的數(shù)據(jù)進(jìn)行mpa 操作,即進(jìn)行數(shù)據(jù)的預(yù)處理;四、使用fiter 算子對(duì)敏感詞進(jìn)行過濾,生成新的敏感詞RDD,并進(jìn)行詞語相似度分析;五、對(duì)位置權(quán)重、文本權(quán)重以及敏感系數(shù)等信息進(jìn)行特征提?。涣?、計(jì)算得到地理信息敏感度,并存儲(chǔ)在分布式文件系統(tǒng)中,見圖6。
圖6 并行化算法流程示意
對(duì)不同模式下的運(yùn)行時(shí)間效率、加速比以及性能指標(biāo)進(jìn)行了仿真分析,結(jié)果見圖7。從圖7 中可以看到:隨著數(shù)據(jù)集個(gè)數(shù)的增加,在單機(jī)模式下,運(yùn)行時(shí)間呈指數(shù)型增大,在mapreduce 和Spark 模式下,運(yùn)行時(shí)間近似呈線性增大,隨著數(shù)據(jù)集的增大,Spark 模式下的運(yùn)行時(shí)間與其它兩種模式下的運(yùn)行時(shí)間差值逐漸加大,當(dāng)數(shù)據(jù)集為4000 個(gè)時(shí),Spark 模式的運(yùn)行時(shí)間僅為單機(jī)模式的42%;加速比與節(jié)點(diǎn)個(gè)數(shù)呈對(duì)數(shù)型函數(shù)關(guān)系變化,當(dāng)節(jié)點(diǎn)數(shù)大于6 后,加速比基本達(dá)到穩(wěn)定狀態(tài),相同節(jié)點(diǎn)數(shù)下,Spark 模式的加速比明顯大于mapreduce 模式,當(dāng)節(jié)點(diǎn)數(shù)為8時(shí),前者加速比為后者的1.6 倍;同理,對(duì)并行化優(yōu)化過后的算法性能指標(biāo)進(jìn)行了對(duì)比,相比于單機(jī)運(yùn)行模式下,Spark 集群模式下的準(zhǔn)確率、召回率和F度量值均有一定程度提高,表明并行優(yōu)化過后,不僅提高了檢測算法的運(yùn)行效率,而且并未對(duì)算法精確度造成影響。
圖7 并行優(yōu)化后仿真結(jié)果
本文以互聯(lián)網(wǎng)地理敏感信息安全為研究背景,將spark 框架運(yùn)用到敏感地理信息檢測中,該算法與其它檢測法相比具有更高的準(zhǔn)確率、召回率和F 度量值,通過并行優(yōu)化處理后,其運(yùn)行效率明顯提高,同時(shí)不影響算法精確度,可為涉密地理信息的高效、準(zhǔn)確檢測提供借鑒。