周腳根,雷秋良,李 勇,張?zhí)禊i
(1.江蘇省塘庫(kù)智能觀測(cè)與水環(huán)境生態(tài)管控工程研究中心,江蘇 淮安 223300;2.淮陰師范學(xué)院城市與環(huán)境學(xué)院,江蘇 淮安 223300;3.中國(guó)科學(xué)院亞熱帶農(nóng)業(yè)生態(tài)研究所,湖南 長(zhǎng)沙 410125;4.農(nóng)業(yè)農(nóng)村部面源污染控制重點(diǎn)實(shí)驗(yàn)室,北京 100081;5.中國(guó)農(nóng)業(yè)科學(xué)院農(nóng)業(yè)資源與農(nóng)業(yè)區(qū)劃研究所,北京 100081)
數(shù)字土壤制圖是以空間分析和數(shù)學(xué)方法為技術(shù)手段,高效表達(dá)土壤屬性空間分布的土壤調(diào)查和制圖技術(shù)[1,2]?;跀?shù)字土壤制圖技術(shù)產(chǎn)生的各類土壤專題圖可為生態(tài)環(huán)境、土壤、水資源、農(nóng)業(yè)規(guī)劃等基礎(chǔ)性學(xué)科研究以及國(guó)土資源調(diào)查和保護(hù)提供基礎(chǔ)數(shù)據(jù)支撐[3-5],具有非常重要的意義。數(shù)字土壤制圖技術(shù)可分為空間自相關(guān)理論和土壤景觀模型理論兩大方法??臻g自相關(guān)理論假設(shè)土壤屬性的空間分布服從空間自相關(guān),故未知位點(diǎn)土壤屬性可用與其鄰近的已知樣點(diǎn)估算[2]?;谠摾碚摰目臻g插值技術(shù)有很多,如反距離加權(quán)(IDW)[6]、普通克里格(OK)[7]、協(xié)同克里格[8]、回歸克里格[2]、地理加權(quán)回歸(GWR)[9]等。土壤景觀模型理論的核心是經(jīng)典的土壤發(fā)生和形成理論。直觀上,土壤景觀模型理論可表述為:相似地理環(huán)境要素組合下有相似的土壤;環(huán)境組合越相似,其土壤越相似[10,11]。無論數(shù)字土壤制圖技術(shù)采用何種支撐技術(shù),其核心過程依舊是實(shí)現(xiàn)土壤屬性的點(diǎn)源數(shù)據(jù)向面源數(shù)據(jù)的空間拓展。該過程被稱為空間插值或空間估值。傳統(tǒng)空間插值方法采用與未知的待插值位點(diǎn)空間上鄰近的一定數(shù)量觀測(cè)樣點(diǎn),估算未知點(diǎn)的目標(biāo)屬性值。這種思路遵循了地理學(xué)第一定律:空間對(duì)象越鄰近,其屬性越相似[12]。不過,由于地形地貌、氣候、植被、成土母質(zhì)以及人類活動(dòng)等成土因素的復(fù)雜性,客觀地理世界中土壤屬性的空間異質(zhì)非常強(qiáng)。復(fù)雜地理環(huán)境下空間對(duì)象空間鄰近,但對(duì)象屬性未必相似[13]。Zhou 等[14,15]研究結(jié)果表明:復(fù)雜地理環(huán)境下用非空間屬性比空間屬性更利于表征土壤樣點(diǎn)之間的相似性。隨著數(shù)字土壤制圖應(yīng)用對(duì)區(qū)域空間分辨率及研究尺度的需求不斷提升[16],中大尺度上數(shù)字土壤制圖所面臨的海量數(shù)據(jù),使得傳統(tǒng)集中式空間插值的計(jì)算模式逐漸遇到瓶頸[17]。以輸出空間分辨率30m*30m 的土壤養(yǎng)分分布圖為例:輸出一個(gè)市(如長(zhǎng)沙)的柵格圖需要計(jì)算0.13 億個(gè)網(wǎng)格,輸出一個(gè)?。ê希┑臇鸥駡D則需要計(jì)算2.35 億個(gè)網(wǎng)格,當(dāng)范圍擴(kuò)大到全中國(guó)和整個(gè)全球(陸地)時(shí),計(jì)算量則分別急劇擴(kuò)增到107億和1 656億。如用傳統(tǒng)集中式IDW算法,計(jì)算一個(gè)網(wǎng)格用時(shí)0.253ms(假定CPU為Intel 2.27GHz、單核),理論上完成上述市、省及全國(guó)的柵格計(jì)算分別耗時(shí)約1h、16.5h 及30d??梢?,隨著實(shí)際數(shù)據(jù)規(guī)模擴(kuò)大,傳統(tǒng)的集中計(jì)算模式已經(jīng)很難適應(yīng)海量的數(shù)據(jù)處理要求,尤其是對(duì)計(jì)算有實(shí)時(shí)性要求時(shí)。
為了高效處理海量數(shù)據(jù),目前信息技術(shù)領(lǐng)域的主流方法是引入分布式計(jì)算技術(shù)在多臺(tái)計(jì)算機(jī)上同時(shí)執(zhí)行計(jì)算,減少程序的運(yùn)行時(shí)間[18][21]。但是傳統(tǒng)的分布式計(jì)算技術(shù)有3 個(gè)明顯缺點(diǎn):(1)需專用并行編程接口對(duì)原串行算法進(jìn)行并行化處理,應(yīng)用靈活性?。唬?)對(duì)集群計(jì)算節(jié)點(diǎn)的故障問題處理欠佳;(3)缺乏節(jié)點(diǎn)計(jì)算資源動(dòng)態(tài)平衡的調(diào)控能力,尤其是當(dāng)各計(jì)算節(jié)點(diǎn)性能差別較大時(shí),更容易出現(xiàn)節(jié)點(diǎn)交互的通訊瓶頸[17]。云計(jì)算平臺(tái)Hadoop是一種面向云計(jì)算的分布式計(jì)算模型框架,其核心框架是MapReduce[20]。和傳統(tǒng)分布式計(jì)算技術(shù)一樣,Hadoop 平臺(tái)讓程序自動(dòng)分布到一個(gè)由多個(gè)計(jì)算節(jié)點(diǎn)組成的計(jì)算集群上并行執(zhí)行。Hadoop 平臺(tái)的優(yōu)勢(shì)在于:Hadoop 會(huì)跨越機(jī)器集群的程序執(zhí)行調(diào)度和處理機(jī)器失效,以及管理機(jī)器之間的通訊請(qǐng)求[21]。這種模式大大降低用戶對(duì)并發(fā)處理或者分布式系統(tǒng)的處理難度。由于Hadoop 云計(jì)算平臺(tái)具備算法移植簡(jiǎn)單、系統(tǒng)可靠性高及各節(jié)點(diǎn)負(fù)載動(dòng)態(tài)平衡的優(yōu)勢(shì),當(dāng)前Hadoop 平臺(tái)成為當(dāng)前云計(jì)算的主流技術(shù),廣泛應(yīng)用于各個(gè)研究領(lǐng)域[22-24]。
鑒于當(dāng)前數(shù)字土壤制圖領(lǐng)域的空間插值方法依舊以傳統(tǒng)集中式計(jì)算為主,文章旨在將LASWR 空間插值方法[14]從集中式計(jì)算拓展為分布式計(jì)算,建立一種基于Hadoop 平臺(tái)的分布式空間插值算法,并評(píng)估測(cè)試數(shù)據(jù)規(guī)模對(duì)分布式空間插值算法計(jì)算性能的影響。該算法可為數(shù)字土壤制圖領(lǐng)域當(dāng)前應(yīng)用的空間插值方法,由傳統(tǒng)集中式計(jì)算拓展為分布式計(jì)算提供技術(shù)參考。
對(duì)流域尺度土壤屬性的空間插值案例表明:LASWR 算法的插值精度優(yōu)于經(jīng)典的IDW、OK 及GWR,且空間插值的輸出圖更能精細(xì)表征土壤目標(biāo)屬性與其影響因子之間的空間互作關(guān)系[14]。LASWR 算法的基本原理是:用非空間屬性而不是空間屬性評(píng)估未知土壤樣點(diǎn)與土壤觀測(cè)樣點(diǎn)之間的相似性;鄰近樣點(diǎn)對(duì)未知樣點(diǎn)的影響權(quán)重由樣點(diǎn)之間非空間屬性的相似性衡量。這種思路本質(zhì)上符合Zhu等[11]提出的地理相似理論。LASWR 算法的關(guān)鍵點(diǎn)在于:一是,在非空間屬性上搜索與未知樣點(diǎn)的鄰近觀測(cè)樣本;二是,基于非空間屬性相似加權(quán)計(jì)算鄰近樣點(diǎn)對(duì)未知樣點(diǎn)的影響權(quán)重,并由此估算未知樣點(diǎn)的目標(biāo)屬性值。未知點(diǎn)目標(biāo)屬性值的估算過程可具體參考文獻(xiàn)。總體上,LASWR算法的主要實(shí)現(xiàn)步驟如下。
(1)將數(shù)據(jù)集劃分為訓(xùn)練樣本集(觀測(cè)樣點(diǎn))及待估值樣點(diǎn)集;給定土壤目標(biāo)屬性,提取與目標(biāo)屬性相關(guān)聯(lián)的土壤景觀環(huán)境因子;
(2)對(duì)待估值樣點(diǎn)集中任何一點(diǎn),基于非空間屬性相似度量于訓(xùn)練樣本集中搜索k個(gè)鄰近觀測(cè)樣點(diǎn);
(3)計(jì)算鄰近樣本對(duì)未知樣點(diǎn)的影響權(quán)重,并輸出估算值;重復(fù)過程(2)和(3)直至遍歷所有未知點(diǎn)。
該文選擇將LASWR 算法進(jìn)行分布式計(jì)算拓展,構(gòu)建出分布式局部屬性相似加權(quán)空間插值算法,簡(jiǎn)稱分布式空間插值算法(DLASWR)。DLASWR 是基于Hadoop 的MapReduce 框架實(shí)現(xiàn)。MapReduce 是負(fù)責(zé)Hadoop平臺(tái)的海量數(shù)據(jù)計(jì)算處理框架[20-23]。MapReduce是一個(gè)將大規(guī)模分布式計(jì)算表示成一個(gè)對(duì)鍵/值對(duì)數(shù)據(jù)集作分布式操作的序列化編程范例。MapReduce 計(jì)算分為Map 和Reduce 兩個(gè)階段,輸入數(shù)據(jù)是一個(gè)鍵/值對(duì)數(shù)據(jù)集。在Map 階段,框架根據(jù)用戶指定的方式將輸入的數(shù)據(jù)集拆分成片段,并且將每個(gè)片段分配給一個(gè)Map 任務(wù),每個(gè)Map 任務(wù)由集群中的一個(gè)節(jié)點(diǎn)執(zhí)行。對(duì)于每個(gè)輸入的鍵/值對(duì)(K,V),Map 任務(wù)調(diào)用用戶定義的映射函數(shù),將輸入轉(zhuǎn)變成一個(gè)不同的鍵/值(K',V')。Map 階段之后,框架對(duì)中間數(shù)據(jù)(K',V')鍵值對(duì)排序,使所有與每個(gè)特定鍵值有關(guān)的值出現(xiàn)在一起,生成一個(gè)(K',V'*)元組集合;然后將這個(gè)元組分解,片段數(shù)量和Reduce 任務(wù)的數(shù)量相等。和Map 任務(wù)一樣,在Reduce 階段,框架會(huì)將每一個(gè)(K',V'*)元組片段分配給一個(gè)Reduce任務(wù)執(zhí)行,每個(gè)Reduce任務(wù)由集群中的某個(gè)節(jié)點(diǎn)執(zhí)行。每個(gè)Reduce 任務(wù)讀取分配給它的(K',V'*)元組片段,并調(diào)用用戶定義的Reduce 函數(shù),將其轉(zhuǎn)變成一個(gè)輸出(K,V)鍵/值對(duì)。
概括起來,MapReduce計(jì)算任務(wù)分為Map和Reduce兩個(gè)處理階段。在Map階段,MapReduce框架將計(jì)算任務(wù)拆分成大量的Map 任務(wù)并自動(dòng)分配給各個(gè)節(jié)點(diǎn)執(zhí)行;Reduce 階段將各個(gè)Map 任務(wù)的輸出結(jié)果分配給Reduce任務(wù),最終由Reduce任務(wù)輸出結(jié)果。
基于MapReduce 框架的邏輯計(jì)算流程,DLASWR 算法的核心計(jì)算流程是:將整個(gè)空間插值任務(wù)拆分成無數(shù)個(gè)子任務(wù),每個(gè)子任務(wù)遵循集中式LASWR 算法計(jì)算流程。簡(jiǎn)單講,在MapReduce 框架下DLASWR算法的實(shí)現(xiàn)流程為:為待估值樣點(diǎn)分配Map任務(wù),每個(gè)Map任務(wù)執(zhí)行一次LASWR運(yùn)算;而在Reduce階段將每個(gè)Map任務(wù)的結(jié)果進(jìn)行匯總,作為插值結(jié)果輸出。
需要注意的是,Map 任務(wù)對(duì)每個(gè)未知點(diǎn)執(zhí)行LASWR 算法時(shí)都會(huì)讀取觀測(cè)樣本數(shù)據(jù),并將結(jié)果輸出到執(zhí)行Reduce 任務(wù)的計(jì)算節(jié)點(diǎn)。該過程所涉及的讀寫磁盤數(shù)據(jù)及網(wǎng)絡(luò)數(shù)據(jù)傳輸操作耗時(shí)比較大。同時(shí),Map任務(wù)的啟動(dòng)和結(jié)束,也需要耗時(shí)。因此,Map任務(wù)的多少影響DLASWR算法的計(jì)算效率,需要給Map任務(wù)分配的待估值點(diǎn)數(shù)量設(shè)置一個(gè)參數(shù)Nmap,以調(diào)控DLASWR 算法的計(jì)算效率。Nmap決定給每個(gè)map任務(wù)分配的待估值樣點(diǎn)數(shù)量。給定一個(gè)空間插值任務(wù),可以通過評(píng)估隨Nmap變化DLASWR 的計(jì)算效率,選擇合理的Nmap值。另外,受人力和物力的影響,實(shí)際所獲取的觀測(cè)樣點(diǎn)數(shù)量遠(yuǎn)小于未知點(diǎn)數(shù)量。因此,無需將觀測(cè)樣本數(shù)據(jù)分配給每個(gè)Map任務(wù),而是直接存儲(chǔ)到各計(jì)算節(jié)點(diǎn)上,以減少數(shù)據(jù)訪問的耗時(shí)。
總體上,MapReduce框架下DLASWR算法的主要步驟如下。
(1)將訓(xùn)練樣本集分發(fā)到各個(gè)節(jié)點(diǎn)上,設(shè)置初始參數(shù)Nmap。
(2)依據(jù)參數(shù)Nmap,將待估值點(diǎn)集分割成一定數(shù)量的子數(shù)據(jù)集。每個(gè)子集數(shù)量固定為Nmap,并被分配給各Map任務(wù)。
(4)給定任意未知點(diǎn),計(jì)算節(jié)點(diǎn)上的Map 任務(wù)執(zhí)行一次LASWR 算法操作,此過程不斷重復(fù)直至遍歷整個(gè)待估值點(diǎn)子集。
(5)執(zhí)行Reduce 任務(wù)的各節(jié)點(diǎn)歸并源自Map 任務(wù)的輸出結(jié)果后,將其傳輸?shù)郊褐鞴?jié)點(diǎn),作為最終結(jié)果輸出。
試驗(yàn)采用的云計(jì)算平臺(tái)Hadoop 集群,由22 個(gè)配置相似的計(jì)算節(jié)點(diǎn)(PC 機(jī))組成。每個(gè)計(jì)算節(jié)點(diǎn)的主要硬件配置為:Inter 雙核處理器(2.93GHz、3GB 內(nèi)存),運(yùn)行環(huán)境配置了Linux 操作系統(tǒng)及Hadoop 1.2.1 軟件包;集群節(jié)點(diǎn)間以千兆局域網(wǎng)連接和通訊。給定待估值點(diǎn)集數(shù)據(jù)總量為Tdata、集群節(jié)點(diǎn)數(shù)N,每個(gè)Map任務(wù)分配的待估值子集數(shù)量為Nmap,則分發(fā)給每個(gè)計(jì)算節(jié)點(diǎn)的Map任務(wù)Tmap為:
Nmap過大,則Tmap過小,這可能直接造成Map 任務(wù)過少,集群部分節(jié)點(diǎn)分配不到任務(wù)從而降低整體計(jì)算效率。Nmap過小,則Tmap過大,則導(dǎo)致Map 任務(wù)過多,同樣會(huì)增加節(jié)點(diǎn)間的通信開銷,降低計(jì)算效率。鑒于分布式計(jì)算廣義屬于并行處理計(jì)算,為有效反映參數(shù)Nmap取值變化對(duì)DLASWR算法性能的影響,該文采用加速比(Speedup)指標(biāo)以表征DLASWR 算法的計(jì)算效率。加速比是同一個(gè)任務(wù)在單處理器系統(tǒng)和并行處理系統(tǒng)中運(yùn)行時(shí)間的比率[25,26]為:
式(2)中,Ts是單處理器系統(tǒng)中的運(yùn)行時(shí)間,Tp是P個(gè)節(jié)點(diǎn)的運(yùn)行時(shí)間。計(jì)算效率越接近1,算法的效率越高。
試驗(yàn)數(shù)據(jù)源自湖南省長(zhǎng)沙縣金井流域。金井流域?qū)儆诘湫偷膩啛釒Ъt壤丘陵地貌,土地利用類型以農(nóng)田及林地為主[27],年降雨1 200~1 500mm 左右,面積105km2。試驗(yàn)數(shù)據(jù)集分為土壤觀測(cè)樣點(diǎn)集及待估值樣點(diǎn)集。土壤觀測(cè)樣點(diǎn)集有1 023 個(gè)樣本,每個(gè)樣本包含地理坐標(biāo)(X、Y)、土壤有機(jī)碳含量及與土壤有機(jī)碳含量相關(guān)的4 個(gè)環(huán)境協(xié)變量[28](高程、坡度、濕地指數(shù)、土地利用類型)共7 個(gè)屬性字段,觀測(cè)樣點(diǎn)及協(xié)變量空間分布見圖1 所示。待估值樣點(diǎn)集有20 萬個(gè)待估值點(diǎn),每個(gè)點(diǎn)包含2 個(gè)地理坐標(biāo)字段及高程、坡度、濕地指數(shù)和土地利用4個(gè)環(huán)境協(xié)變量字段,總共大小近10M。
圖1 土壤樣點(diǎn)有機(jī)碳含量及環(huán)境協(xié)變量的空間分布
中、大尺度上真實(shí)的訓(xùn)練樣本數(shù)據(jù)很難獲取,同時(shí)待估值數(shù)據(jù)集的大小是影響估值計(jì)算效率的關(guān)鍵因素。因此,該文保持上述土壤觀測(cè)樣點(diǎn)集不變,通過多次復(fù)制待估值數(shù)據(jù)集,生成3個(gè)不同大小尺度的數(shù)據(jù):100M、1G、10G,以評(píng)估DLASWR的計(jì)算性能。
對(duì)3 個(gè)不同規(guī)模測(cè)試數(shù)據(jù)集(100M、1G 及10G)的試驗(yàn)結(jié)果表明,待估值數(shù)據(jù)量、分配給Map 任務(wù)的數(shù)據(jù)子集大小以及參與運(yùn)算的節(jié)點(diǎn)數(shù)量影響DLASWR算法的計(jì)算性能。
在小規(guī)模測(cè)試數(shù)據(jù)集案例中(圖2),隨分配給Map 任務(wù)的子集數(shù)量Nmap增加,DLASWR 算法的運(yùn)行時(shí)間消耗逐漸減少;不過隨參與計(jì)算的節(jié)點(diǎn)數(shù)增加,DLASWR 算法完成插值任務(wù)的耗時(shí)也在減少(由峰值638s降到54s)。這表明Nmap過小導(dǎo)致Map任務(wù)過多,過多的Map任務(wù)增加了節(jié)點(diǎn)間的通訊消耗,從而拉低了分布式算法的運(yùn)算性能。不過,隨計(jì)算節(jié)點(diǎn)的增加,整個(gè)分布式算法整體性能趨向加速。實(shí)際上,圖2a顯示:當(dāng)Nmap=5 000且計(jì)算節(jié)點(diǎn)數(shù)為2和4以及Nmap=10 000且計(jì)算節(jié)點(diǎn)數(shù)為2時(shí),DLASWR算法的運(yùn)行耗時(shí)(平均耗時(shí)511s)反而高于集中式LASWR 的。這實(shí)際上反證了Map任務(wù)過多拉低算法的計(jì)算性能。在計(jì)算效率方面(圖2b),由于100M數(shù)據(jù)量相對(duì)偏小,分布式計(jì)算的計(jì)算效率優(yōu)勢(shì)并未體現(xiàn)。DLAS‐WR 效率較低,各處理的加速比均值為0.21,變化范圍為0.1~0.51。與上述耗時(shí)分布趨勢(shì)相似,DLASWR算法的計(jì)算效率隨Map任務(wù)增加而下降。但是隨參與計(jì)算節(jié)點(diǎn)數(shù)增加,DLASWR效率程下降趨勢(shì)。
圖2 100M測(cè)試數(shù)據(jù)集對(duì)分布式DLAWR算法計(jì)算性能的影響
在中等規(guī)模1G 測(cè)試數(shù)據(jù)集案例中(圖3),DLASWR 算法完全凸顯對(duì)集中式LASWR 算法的計(jì)算性能優(yōu)勢(shì)。不同Nmap處理下DLASWR 平均耗時(shí)517s,變化范圍為294~1 502s,遠(yuǎn)小于集中式LASWR 算法的2 652s。中等規(guī)模數(shù)據(jù)處理下,DLASWR 算法的計(jì)算性能與小規(guī)模數(shù)據(jù)集處理案例類似:算法的耗時(shí)總體上與參數(shù)Nmap取值成反比;節(jié)點(diǎn)數(shù)的增加降低DLASWR 算法的耗時(shí)(圖3a)。與小規(guī)模數(shù)據(jù)集處理不同,Nmap=1 000 000 及Nmap=2 000 000 處理下,DLASWR 算法的耗時(shí)以節(jié)點(diǎn)數(shù)14 為界,呈現(xiàn)先減后增加的趨勢(shì)。在計(jì)算效率方面,中等規(guī)模1G 測(cè)試數(shù)據(jù)處理下DLASWR 算法的計(jì)算效率明顯優(yōu)于小規(guī)模100M 數(shù)據(jù)處理的。6 種Nmap取值處理下DLASWR 算法的加速比平均值為0.32,高于小規(guī)模的0.21。與上文小規(guī)模數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果相似,中規(guī)模數(shù)據(jù)處理下DLASWR算法的計(jì)算效率整體呈現(xiàn)隨計(jì)算節(jié)點(diǎn)和Nmap取值增加(Nmap=1 000 000及Nmap=2 000 000處理除外)而減少的變化趨勢(shì)(圖3b)。
圖3 1G測(cè)試數(shù)據(jù)集對(duì)分布式DLAWR算法計(jì)算性能的影響
對(duì)大規(guī)模10G 測(cè)試數(shù)據(jù)集處理(圖4),DLASWR 算法的耗時(shí)及加速比的分布趨勢(shì)有異于上述小和中規(guī)模數(shù)據(jù)處理的。DLASWR 算法的計(jì)算耗時(shí)隨Nmap取值的增加而減少。并且以節(jié)點(diǎn)數(shù)14 為界,算法耗時(shí)先減后增。相對(duì)小和中規(guī)模數(shù)據(jù)處理,算法的計(jì)算效率進(jìn)一步提升,平均值達(dá)0.47,變化范圍為0.1~0.91。并且,算法的計(jì)算效率隨Nmap取值增加而增加但隨計(jì)算節(jié)點(diǎn)的增加而減少。
圖4 10 G測(cè)試數(shù)據(jù)集對(duì)分布式DLAWR算法計(jì)算性能的影響
綜合3 個(gè)不同規(guī)模測(cè)試數(shù)據(jù)集的試驗(yàn)處理結(jié)果可知,數(shù)據(jù)規(guī)模、節(jié)點(diǎn)數(shù)量及Nmap取值影響分布式DLASWR 算法的計(jì)算性能。數(shù)據(jù)規(guī)模小時(shí)(如100M 小規(guī)模案例),DLASWR 算法處理的性能不如集中式DLASWR 算法,但是隨數(shù)據(jù)規(guī)模擴(kuò)大,其計(jì)算性能完全超越集中式算法,且算法的計(jì)算效率也提升明顯。
計(jì)算節(jié)點(diǎn)數(shù)增加整體上提升DLASWR 算法的計(jì)算性能。不過,在1G 和10G 兩個(gè)測(cè)試數(shù)據(jù)處理案例中,DLASWR 算法性能都出現(xiàn)了以節(jié)點(diǎn)數(shù)14 為界先減后增的現(xiàn)象。這主要是因?yàn)殡S著節(jié)點(diǎn)增多,雖然發(fā)給每個(gè)節(jié)點(diǎn)的任務(wù)減少、計(jì)算時(shí)間縮短,但是節(jié)點(diǎn)增加會(huì)引發(fā)網(wǎng)絡(luò)通信量的顯著提升,從而拉低計(jì)算效率[20]。
Nmap取值大小決定Map 任務(wù)量,從而影響DLASWR 算法計(jì)算性能。不過,Nmap取值大小與DLAS‐WR算法計(jì)算性能并不是簡(jiǎn)單的線性關(guān)系。例如,上述試驗(yàn)結(jié)果顯示:數(shù)量為100M時(shí),Nmap取值增加提升算法的計(jì)算性能(圖2);但是數(shù)據(jù)量為10G時(shí),Nmap取值增加則降低算法的計(jì)算性能(圖4)。造成這種現(xiàn)象的主要原因是:Hadoop 框架中Map 任務(wù)的切換存在額外的時(shí)間開銷。當(dāng)數(shù)據(jù)量比較小時(shí),Map 任務(wù)的時(shí)間開銷將占總耗時(shí)的絕大部分。當(dāng)數(shù)據(jù)量足夠大時(shí),Map任務(wù)的時(shí)間開銷在總耗時(shí)中所占比例將變得較小。通常,Nmap取值原則是以每個(gè)節(jié)點(diǎn)分配1~2 個(gè)Map 任務(wù)為宜;當(dāng)數(shù)據(jù)集較大時(shí),可適當(dāng)增加Map任務(wù)數(shù)[26]。
海量數(shù)據(jù)處理是現(xiàn)代數(shù)字土壤制圖技術(shù)向精細(xì)化、大尺度化發(fā)展所面臨的技術(shù)挑戰(zhàn)。該文構(gòu)建了一個(gè)基于云計(jì)算平臺(tái)Hadoop 的分布式空間插值算法DLASWR。對(duì)流域土壤樣點(diǎn)屬性的空間插值測(cè)試結(jié)果表明,DLASWR 算法的計(jì)算效率比集中式LASWR 算法顯著升。數(shù)據(jù)規(guī)模、節(jié)點(diǎn)數(shù)量及Map任務(wù)數(shù)量是影響DLASWR 算法計(jì)算性能的主要因素。該算法可為數(shù)字土壤制圖領(lǐng)域當(dāng)前應(yīng)用的空間插值方法由傳統(tǒng)的集中式計(jì)算拓展成分布式計(jì)算提供技術(shù)參考。受現(xiàn)有研究條件限制,未來需要在更大規(guī)模數(shù)據(jù)條件下對(duì)DLASWR算法進(jìn)行計(jì)算性能驗(yàn)證。
中國(guó)農(nóng)業(yè)資源與區(qū)劃2022年5期