楊博文+汪子炎+劉曉峰+朱正禮
摘要:基于南京某森林TB量級(jí)關(guān)于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)持續(xù)記錄的森林的大氣溫度、土壤濕度以及土壤溫度的大數(shù)據(jù),利用Google公司的Hadoop云計(jì)算平臺(tái)對(duì)數(shù)據(jù)進(jìn)行分析,進(jìn)而研究氣溫、土壤濕度對(duì)土壤溫度的影響。利用Hadoop平臺(tái)下的MapReduce框架對(duì)傳感器傳回的數(shù)據(jù)進(jìn)行噪聲處理、二次排序等操作,并綜合利用MATLAB、SPSS等軟件對(duì)數(shù)據(jù)進(jìn)行綜合處理分析,進(jìn)而研究氣溫土壤濕度對(duì)土壤溫度的影響,而土壤溫度對(duì)植株處于良好的生長(zhǎng)狀態(tài)具有重要現(xiàn)實(shí)意義[1]。
關(guān)鍵詞:大數(shù)據(jù);云計(jì)算;物聯(lián)網(wǎng);Hadoop;MapReduce
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)30-0200-04
Research on Relevance between Multiple Environmental Parameters in Internet of Things for Forest Based on Hadoop
YANG Bo-wen,WANG Zi-yan,LIU Xiao-feng,ZHU Zheng-li
(School of Information Science and Technology, Nanjing Forestry University, Nanjing 210037, China)
Abstract: The TB level of data about the atmospheric temperature, soil moisture, and soil temperature in Nanjings forest is measured by Wireless Sensor Networks. Researchers use Googles Hadoop cloud computing platform to analyze these data, and then study the effect of temperature and soil moisture on soil temperature. Researchers use framework of the MapReduce to carry out the data of the sensor data processing, sorting. In the end, researchers use MATLAB, SPSS and other software to analyze the data, and then to study the effect of temperature and soil moisture on soil temperature, which is considered of strategic importance for plant growth.
Key words:big data; cloud computing; Internet of Things; Hadoop; MapReduce
1 概述
Hadoop是Google公司提出的一個(gè)針對(duì)大量數(shù)據(jù)進(jìn)行分布式處理的軟件框架,并且實(shí)現(xiàn)了高吞吐率的數(shù)據(jù)讀寫(xiě)以及強(qiáng)大的數(shù)據(jù)處理能力[2]。針對(duì)南京某森林TB量級(jí)關(guān)于傳感器持續(xù)記錄的森林的大氣溫度、土壤濕度、以及土壤溫度的大數(shù)據(jù),要對(duì)這大量的數(shù)據(jù)進(jìn)行處理,研究它們之間的關(guān)系,使用傳統(tǒng)的數(shù)據(jù)處理方法已不太適用。另外,傳感器本身較脆弱,由于儀器損壞、電量不足等問(wèn)題會(huì)產(chǎn)生大量的噪聲數(shù)據(jù),而對(duì)大量的噪聲數(shù)據(jù)的處理,也是傳統(tǒng)數(shù)據(jù)分析方法的難題。應(yīng)用Hadoop平臺(tái)對(duì)大量數(shù)據(jù)的處理具有十分大的優(yōu)勢(shì)。
該研究首先會(huì)利用Hadoop平臺(tái)的MapReduce框架對(duì)數(shù)據(jù)進(jìn)行初步去噪、去重操作,去除一部分無(wú)效數(shù)據(jù)。然后會(huì)對(duì)數(shù)據(jù)按氣溫遞增的方式進(jìn)行排序,如果氣溫相同,則按土壤相對(duì)濕度遞增的方式排序。對(duì)數(shù)據(jù)排序的目的是為了方便取出氣溫相同的數(shù)據(jù),進(jìn)而研究土壤濕度和土壤溫度之間的關(guān)系。接下來(lái),則按一定方式取出部分?jǐn)?shù)據(jù),進(jìn)行數(shù)據(jù)擬合。該研究會(huì)利用MATLAB進(jìn)行數(shù)據(jù)擬合,從而對(duì)氣溫、土壤濕度與土壤溫度的關(guān)系進(jìn)行回歸分析,以及會(huì)使用SPSS等軟件對(duì)數(shù)據(jù)進(jìn)行分析。
2 數(shù)據(jù)處理方法
2.1 MapReduce編程模型
MapReduce是Hadoop平臺(tái)下的一種處理大數(shù)據(jù)的并行編程模型框架,對(duì)于處理TB級(jí)及以上的大規(guī)模數(shù)據(jù)效果顯著,并且它是一種標(biāo)準(zhǔn)的函數(shù)式編程模型[3]。MapReduce模型大致分為3個(gè)階段,分別是數(shù)據(jù)初始階段,Map和Reduce階段,以及數(shù)據(jù)匯總階段。MapReduce使用的是“分而治之”的處理思想,它把對(duì)大規(guī)模數(shù)據(jù)集的處理操作“分而治之”,處理思想是先把數(shù)據(jù)分發(fā)給一個(gè)主節(jié)點(diǎn)管理下的各個(gè)分節(jié)點(diǎn),這個(gè)過(guò)程一般被稱(chēng)為Map過(guò)程。接下來(lái),各個(gè)分節(jié)點(diǎn)完成數(shù)據(jù)的處理,然后將各自的結(jié)果整合,這個(gè)過(guò)程一般被稱(chēng)為Reduce過(guò)程。最后匯總為最終的結(jié)果。
MapReduce數(shù)據(jù)的處理方法是始終以
在Reduce階段,各個(gè)Reducer把Map過(guò)程的輸出
2.2基于 MapReduce的數(shù)據(jù)去噪、去重
由于傳感器損壞、電量不足等會(huì)產(chǎn)生大量的錯(cuò)誤數(shù)據(jù),并且會(huì)產(chǎn)生一些和其他數(shù)據(jù)不相一致的數(shù)據(jù),即噪聲數(shù)據(jù)。去除噪聲數(shù)據(jù)在研究過(guò)程中十分必要。
在這里,該研究只需要對(duì)數(shù)據(jù)進(jìn)行初步去噪。利用MapReduce初步去噪過(guò)程十分簡(jiǎn)單,只需要在map過(guò)程中初步判斷數(shù)據(jù)的正確與否。由于氣溫、土壤濕度、土壤溫度在正常情況下具有一定的取值范圍。在map過(guò)程中,如果數(shù)據(jù)超出了該范圍,則在map過(guò)程直接舍棄該數(shù)據(jù)即可,不必輸出鍵值對(duì)。
數(shù)據(jù)去重的宗旨是讓初始數(shù)據(jù)中出現(xiàn)一次或多次的數(shù)據(jù)在輸出結(jié)果中只出現(xiàn)一次。利用MapReduce的解決辦法是將同一個(gè)數(shù)據(jù)的所有記錄都交給同一個(gè)reduce節(jié)點(diǎn),這個(gè)數(shù)據(jù)最后無(wú)論出現(xiàn)了多少次,只需要在最終結(jié)果中輸出一次。具體就是讓reduce的輸入應(yīng)該以數(shù)據(jù)作為K值,V值不作討論,即任意。當(dāng)reduce接收到一個(gè)
數(shù)據(jù)的去噪、去重在MapReduce中可以同時(shí)進(jìn)行操作。具體實(shí)現(xiàn)偽代碼如圖2:
2.3基于 MapReduce的二次排序
對(duì)單個(gè)關(guān)鍵字的排序在該研究中并不能滿(mǎn)足需求。針對(duì)大量數(shù)據(jù)的研究,需要對(duì)氣溫和土壤濕度進(jìn)行排序,先按氣溫的升序排列數(shù)據(jù),如果氣溫相同則按土壤濕度升序排序。以此進(jìn)一步研究數(shù)據(jù)間的關(guān)系以及滿(mǎn)足下一步分析的需要。
基于MapReduce二次排序,其基本思想是將兩個(gè)數(shù)據(jù)組合抽象成一個(gè)數(shù)據(jù),也就是把兩個(gè)數(shù)據(jù)當(dāng)成一個(gè)K值來(lái)處理,這就需要用戶(hù)自定義一個(gè)針對(duì)此類(lèi)型的排序方法[6]。在該map過(guò)程中,鍵值對(duì)的表現(xiàn)形式為<
2.4數(shù)據(jù)分析
2.4.1氣溫、土壤濕度與土壤溫度之間的關(guān)系
為了能較直觀(guān)地反映出三者之間的關(guān)系,擬通過(guò)三維圖像來(lái)反應(yīng)它們之間的關(guān)系。又由于數(shù)據(jù)量過(guò)于龐大,不便于直接分析,利用MapReduce編程模型,隨機(jī)取出經(jīng)過(guò)初步去噪、去重的5萬(wàn)組數(shù)據(jù)。再利用MATLAB軟件進(jìn)行三維圖像擬合,繪畫(huà)出了圖像。圖4是數(shù)據(jù)擬合后基于南京某森林關(guān)于氣溫、土壤溫度、土壤濕度三者間的關(guān)系,土壤數(shù)據(jù)取自地表下5cm。
2.4.2氣溫對(duì)土壤溫度的影響
進(jìn)一步地研究大氣溫度對(duì)土壤溫度的影響,將圖4在氣溫和土壤溫度間進(jìn)行投影,得出氣溫和土壤溫度間的關(guān)系,見(jiàn)圖5。
由圖5可見(jiàn),土壤溫度和氣溫間幾乎呈現(xiàn)一次線(xiàn)性關(guān)系,氣溫越高,土壤溫度也就越高。并且土壤溫度在氣溫一定范圍內(nèi)波動(dòng)。
2.4.3土壤濕度對(duì)土壤溫度的影響
進(jìn)一步研究發(fā)現(xiàn),在氣溫一定的條件下,土壤濕度和土壤溫度間有一定的關(guān)系。針對(duì)排序后的數(shù)據(jù),首先分為多組相同氣溫下的數(shù)據(jù),每組再隨機(jī)取出10組數(shù)據(jù)進(jìn)行處理,利用MATLAB軟件,對(duì)一定氣溫下土壤濕度和土壤溫度間的數(shù)據(jù)進(jìn)行擬合分析。為了保證獲取的關(guān)于土壤濕度溫度間的數(shù)據(jù)的多樣性,擬把R±0.1℃作為R℃。分別取R=15,R=20,R=25,R=30,畫(huà)出其擬合圖像如圖6、圖7、圖8、圖9。
結(jié)果表明,在氣溫一定的條件下,土壤溫度與土壤濕度具有較高的關(guān)聯(lián)性,其回歸方程式如表1。此回歸方程在土壤濕度為10%~50%范圍內(nèi)時(shí)結(jié)果較為準(zhǔn)確。
3 結(jié)論
1)在該研究區(qū)內(nèi)地表下5cm處的土壤溫度和氣溫密切相關(guān),土壤溫度和氣溫呈線(xiàn)性關(guān)系,氣溫越高,土壤溫度相應(yīng)也會(huì)越高。土壤溫度在一定程度上趨近于氣溫。
2)在氣溫一定的條件下,土壤溫度是關(guān)于土壤濕度的二次函數(shù)關(guān)系,且土壤相對(duì)濕度在35%左右時(shí),土壤溫度達(dá)到最大值。
該研究在進(jìn)行數(shù)據(jù)分析時(shí)處理方法較為簡(jiǎn)單,所以探索如何使用Hadoop平臺(tái)進(jìn)行大數(shù)據(jù)的相關(guān)數(shù)據(jù)前期處理工作是本研究的工作重點(diǎn)。此外,該研究對(duì)森林日常數(shù)據(jù)進(jìn)行處理,缺乏極端天氣情況下的數(shù)據(jù),對(duì)極端氣溫土壤濕度對(duì)土壤溫度的影響難以討論。因此,長(zhǎng)期收集森林相關(guān)數(shù)據(jù)顯得很有必要,利用Hadoop平臺(tái)討論極端天氣條件下氣溫土壤濕度對(duì)土壤溫度的影響是將來(lái)研究工作的方向之一。
參考文獻(xiàn):
[1] 陳紹蘭. 土壤溫度對(duì)植物生長(zhǎng)發(fā)育的影響[J].農(nóng)業(yè)科技情報(bào), 1990(2):12-14.
[2] 劉鵬. 實(shí)戰(zhàn)Hadoop[M]. 北京:電子工業(yè)出版社,2011:4-5,60-61.
[3] Dean J, Ghemawat S. MapReduce:simplified data processing on large clusters[J].Communications of the ACM,2008,51(1):107-112.
[4] 徐文龍. 基于Hadoop分布式系統(tǒng)的重復(fù)數(shù)據(jù)監(jiān)測(cè)技術(shù)研究與應(yīng)用[D]. 長(zhǎng)沙:湖南大學(xué),2013:16-17.
[5] 俞善海. 基于Hadoop的重復(fù)數(shù)據(jù)刪除技術(shù) [D]. 上海:華東理工大學(xué),2014: 24-26.
[6] 路秋瑞. 基于Hadoop的大規(guī)模數(shù)據(jù)排序算法的研究[J]. 信息與電腦,2015(17):110-112.
[7] 崔杰,李陶深,蘭紅星. 基于Hadoop的海量數(shù)據(jù)存儲(chǔ)平臺(tái)設(shè)計(jì)與開(kāi)發(fā)[J]. 計(jì)算機(jī)研究與發(fā)展,2012(S1).
[8] 陳康,鄭緯民. 云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J]. 軟件學(xué)報(bào), 2009(5).