黎玲萍 毛克彪 付秀麗 馬 瑩 王 芳* 劉 勍
(*北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院 北京 100029)(**中國農(nóng)業(yè)科學(xué)院農(nóng)業(yè)資源與農(nóng)業(yè)區(qū)劃研究所,呼倫貝爾草原生態(tài)系統(tǒng)國家野外科學(xué)觀測研究站 北京 100081)(***北京石油化工學(xué)院信息工程學(xué)院 北京 102617)(****湖南科技大學(xué)地理空間信息技術(shù)國家地方聯(lián)合工程實驗室 湘潭 411201)
?
國內(nèi)外農(nóng)業(yè)大數(shù)據(jù)應(yīng)用研究分析①
黎玲萍②****毛克彪③**付秀麗***馬 瑩**王 芳****劉 勍**
(*北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院 北京 100029)(**中國農(nóng)業(yè)科學(xué)院農(nóng)業(yè)資源與農(nóng)業(yè)區(qū)劃研究所,呼倫貝爾草原生態(tài)系統(tǒng)國家野外科學(xué)觀測研究站 北京 100081)(***北京石油化工學(xué)院信息工程學(xué)院 北京 102617)(****湖南科技大學(xué)地理空間信息技術(shù)國家地方聯(lián)合工程實驗室 湘潭 411201)
針對農(nóng)業(yè)領(lǐng)域數(shù)據(jù)規(guī)模大、數(shù)據(jù)結(jié)構(gòu)復(fù)雜、空間數(shù)據(jù)挖掘能力不足等問題,研究了大數(shù)據(jù)開源技術(shù)在農(nóng)業(yè)領(lǐng)域的數(shù)據(jù)分析體系中的應(yīng)用。借鑒國內(nèi)外學(xué)者在農(nóng)業(yè)大數(shù)據(jù)的研究成果,基于農(nóng)業(yè)數(shù)據(jù)時空屬性的特征,結(jié)合農(nóng)業(yè)數(shù)據(jù)的特點分析了Hadoop 、Storm和Spark開源大數(shù)據(jù)挖掘技術(shù),歸納性闡述了如何開發(fā)適合農(nóng)業(yè)需求的大數(shù)據(jù)系統(tǒng)。最后,簡要分析了農(nóng)業(yè)大數(shù)據(jù)技術(shù)所面臨的挑戰(zhàn)和研究難題,指出需要加大力度進一步深入理論和應(yīng)用研究,從而推動和實現(xiàn)基于數(shù)據(jù)的科學(xué)決策,為國家糧食提供安全保障。
大數(shù)據(jù), 農(nóng)業(yè)大數(shù)據(jù), Hadoop, Storm, Spark
大數(shù)據(jù)是結(jié)構(gòu)復(fù)雜、內(nèi)容多樣的海量數(shù)據(jù),具有數(shù)據(jù)規(guī)模大、數(shù)據(jù)種類多、處理速度要求高、數(shù)據(jù)價值密度低等特征[1],對其處理遠遠超出了現(xiàn)有傳統(tǒng)的計算技術(shù)和信息系統(tǒng)的能力,因此,尋求有效的大數(shù)據(jù)處理技術(shù)、方法和手段已經(jīng)成為當(dāng)前的迫切需求。大數(shù)據(jù)技術(shù)是以新數(shù)據(jù)處理技術(shù)為手段,將不同格式、不同領(lǐng)域的大數(shù)據(jù)整合成標(biāo)準統(tǒng)一的數(shù)據(jù)源,經(jīng)研究、分析、挖掘后,為各行業(yè)提供有用的數(shù)據(jù)和知識[2,3]。在2012年3月,美國政府正式啟動“大數(shù)據(jù)發(fā)展計劃”,旨在利用大數(shù)據(jù)技術(shù)在科學(xué)研究、環(huán)境、生物醫(yī)學(xué)等領(lǐng)域進行技術(shù)突破[4]。2013年,Mike Gautlieri 提出了存儲過程訪問(SPA)框架,指出大數(shù)據(jù)是可用于支撐行業(yè)的高效運營、決策選擇、風(fēng)險規(guī)避和服務(wù)用戶,具備高性能存儲、解析和使用所有數(shù)據(jù)的前沿領(lǐng)域技術(shù)[5]。 Aaron McKenna應(yīng)用大數(shù)據(jù)分析技術(shù),利用 MapReduce架構(gòu)嵌入基因分析工具集GATK來處理和分析 DNA 序列海量數(shù)據(jù),取得了較好成效[6]。 2013年末,中國計算機學(xué)會(CCF)發(fā)布了《2013年中國大數(shù)據(jù)技術(shù)與產(chǎn)業(yè)發(fā)展白皮書》[7],介紹了大數(shù)據(jù)應(yīng)用現(xiàn)狀并探討了大數(shù)據(jù)技術(shù)研究面臨的科學(xué)問題,針對大數(shù)據(jù)技術(shù)產(chǎn)業(yè)的發(fā)展提供了政策指導(dǎo)和研究建議。
隨著大數(shù)據(jù)相關(guān)技術(shù)的不斷突破、發(fā)展以及公眾對大數(shù)據(jù)的認識加深,大數(shù)據(jù)技術(shù)分析和處理現(xiàn)已成為各個領(lǐng)域的研究熱點,諸如商業(yè)、醫(yī)療行業(yè)、金融行業(yè)等,都取得了相當(dāng)?shù)难芯砍晒?,大?shù)據(jù)的應(yīng)用也在不斷的延伸。農(nóng)業(yè)大數(shù)據(jù)技術(shù)已應(yīng)用于農(nóng)業(yè)信息領(lǐng)域,使用多粒度、多層次、多渠道的分析模型對龐大的數(shù)據(jù)總體進行挖掘分析,為農(nóng)業(yè)信息技術(shù)帶來了革命性進展,促進了農(nóng)業(yè)產(chǎn)業(yè)的整體進步。我國在農(nóng)業(yè)信息化發(fā)展上需要統(tǒng)一規(guī)范數(shù)據(jù)標(biāo)準,迫切需要解決科學(xué)施肥、水肥調(diào)控以及品種選擇、優(yōu)化產(chǎn)業(yè)結(jié)構(gòu)布局,并給出可靠專業(yè)的決策結(jié)果[8]。然而,農(nóng)業(yè)生產(chǎn)周期長,影響因子復(fù)雜,而且在農(nóng)業(yè)生產(chǎn)過程中涉及到育種、種植、培育、管理、收獲、儲藏、運輸以及農(nóng)產(chǎn)品加工和銷售等各環(huán)節(jié),其中蘊藏著大量農(nóng)業(yè)信息動向及市場變化、農(nóng)業(yè)科技發(fā)展等重要數(shù)據(jù)。采用大數(shù)據(jù)技術(shù)的手段與方法,可對采集到的影響農(nóng)業(yè)生產(chǎn)過程的溫度、濕度、光照、水質(zhì)狀況、氣象狀況[9]、市場動態(tài)等信息進行挖掘、分析、應(yīng)用,也包括跨行業(yè)、跨專業(yè)的數(shù)據(jù)分析與挖掘[10],從而有望縮短農(nóng)業(yè)研究的周期,加速科研成果轉(zhuǎn)化推廣的進程,同時為農(nóng)業(yè)生產(chǎn)在各個階段的精準管理和預(yù)測預(yù)警提供信息支持[11]。例如,2012年,土壤抽樣分析服務(wù)商Solum 通過使用大數(shù)據(jù)分析技術(shù)來確定化肥的投入量問題,幫助農(nóng)民提高生產(chǎn)、降低成本??鐕r(nóng)業(yè)生物技術(shù)公司 Monsanto通過分析海量天氣數(shù)據(jù)來預(yù)測未來可能對農(nóng)業(yè)生產(chǎn)造成破壞的各種天氣,農(nóng)民可以根據(jù)這種預(yù)測來選擇相應(yīng)的農(nóng)業(yè)保險,以降低惡劣天氣對農(nóng)業(yè)生產(chǎn)造成的影響[12]。
農(nóng)業(yè)是我國的基礎(chǔ)產(chǎn)業(yè),為了實現(xiàn)精準農(nóng)業(yè)[13]、智慧農(nóng)業(yè)、現(xiàn)代化農(nóng)業(yè)[14],國內(nèi)專家將大數(shù)據(jù)分析技術(shù)與農(nóng)業(yè)緊密結(jié)合,取得了不錯的成效。楊鋒等人為解決海量農(nóng)業(yè)數(shù)據(jù)在傳統(tǒng)分布式數(shù)據(jù)庫架構(gòu)中資源效率不高及存儲能力不足的問題,提出基于Hadoop的大文件分塊存儲方法和海量農(nóng)業(yè)數(shù)據(jù)資源檢索方法。該方法可為構(gòu)建海量農(nóng)業(yè)數(shù)據(jù)資源管理平臺提供支持,實現(xiàn)海量農(nóng)業(yè)數(shù)據(jù)資源高效的組織和管理[15]。而且,為了全面、及時地采集到農(nóng)業(yè)數(shù)據(jù),量子數(shù)聚(北京)科技有限公司搭建了一個農(nóng)業(yè)大數(shù)據(jù)應(yīng)用云平臺,對獲取到的復(fù)雜的多源化的農(nóng)業(yè)數(shù)據(jù)進行處理,該平臺可整合國家權(quán)威機構(gòu)發(fā)布的農(nóng)業(yè)相關(guān)數(shù)據(jù)、共享數(shù)據(jù),匯集政府、企業(yè)、社會三方數(shù)據(jù),打破信息孤島,實現(xiàn)資源互聯(lián)互通,采集的涉農(nóng)企業(yè)數(shù)據(jù),可幫助用戶準確定位企業(yè)以及群體的地理分布。該平臺為科研機構(gòu)、政府等農(nóng)業(yè)管理者提供技術(shù)和決策支持,為農(nóng)業(yè)從業(yè)者提供個性化的生產(chǎn)指導(dǎo)[16]。
大數(shù)據(jù)技術(shù)擁有出色的數(shù)據(jù)分析挖掘能力,在各個領(lǐng)域都有廣泛的應(yīng)用前景。目前能夠進行大數(shù)據(jù)挖掘、分析的工具和軟件很多,功能與使用方法也各有不同。本文分析了國內(nèi)外大數(shù)據(jù)應(yīng)用軟件,同時重點分析了大數(shù)據(jù)技術(shù)在農(nóng)業(yè)領(lǐng)域的應(yīng)用,并對大數(shù)據(jù)技術(shù)在農(nóng)業(yè)領(lǐng)域的應(yīng)用進行了展望。
1.1 Hadoop
2004年,Google發(fā)布了關(guān)于分布式計算框架MapReduce的大規(guī)模數(shù)據(jù)并行處理技術(shù)的論文。Doug Cutting根據(jù)Google提出的設(shè)計思想,用Java設(shè)計出一套與Nutch分布式文件系統(tǒng)(Nutch Distributed File System, NDFS)相結(jié)合且支持Nutch 搜索引擎的并行處理軟件系統(tǒng)。該系統(tǒng)從Nutch中分離出來并被命名為“Hadoop”。 Hadoop作為Apache最大的一個開源項目,是以Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System, HDFS)和MapReduce為核心的大數(shù)據(jù)處理平臺和生態(tài)系統(tǒng),該系統(tǒng)包含了HBase、 Hive 、Zookeeper等一系列相關(guān)子項目。Hadoop的技術(shù)架構(gòu)如圖1所示。
分布式文件系統(tǒng)HDSF作為Hadoop最核心的設(shè)計之一,為Hadoop分布式計算框架提供高性能、高可靠、高可擴展的存儲服務(wù)。HDFS是一個典型的主從架構(gòu),其主要包含一個名字節(jié)點NameNode (主節(jié)點)和多個數(shù)據(jù)節(jié)點DataNode (從節(jié)點),并提供應(yīng)用程序訪問接口。NameNode 是整個文件系統(tǒng)的管理節(jié)點,負責(zé)文件系統(tǒng)名字空間的管理與維護,同時負責(zé)客戶端文件操作的控制以及具體存儲任務(wù)的管理和分配;DataNode提供真實文件數(shù)據(jù)的存儲服務(wù),啟動DataNode 線程同時向NameNode匯報數(shù)據(jù)塊的情況[17],系統(tǒng)架構(gòu)如圖2所示。
在分布式文件系統(tǒng)HDFS中,可能會有多個機架Rack,每個機架上管理多個DataNode。為防災(zāi)容錯,一個數(shù)據(jù)塊Block(數(shù)據(jù)塊大小默認64M)的三個副本通常會保存到兩個或兩個以上的機架中,例如,一個放在機架Rack1中的DataNode1中,一個放在不同機架Rack2的DataNode1中,另一個則放在Rack1的DataNode2中,此分配方法確保系統(tǒng)中的機架掉電或者機架的交換機發(fā)生錯誤時,系統(tǒng)的運行不受到影響,以及數(shù)據(jù)不會遺失。DataNode 通過每3秒向NameNode發(fā)送心跳來保持通信的,一旦心跳停止,將會認為DataNode 錯誤,NameNode會將其上的數(shù)據(jù)塊復(fù)制到其他的DataNode 上。
圖1 Hadoop技術(shù)架構(gòu)
圖2 HDFS架構(gòu)圖
分布式計算框架MapReduce 作為Hadoop另一最核心的設(shè)計,是一個針對大規(guī)模群組中的海量數(shù)據(jù)處理的分布式編程模型。MapReduce 實現(xiàn)兩個功能。其一,Map把一個函數(shù)應(yīng)用于集合中的所有成員,返回一個基于這個處理的結(jié)果集。其二,Reduce把通過多個線程、進程或者獨立系統(tǒng)并行執(zhí)行處理的結(jié)果集進行分類和歸納。Map和 Reduce兩個函數(shù)可并行運行。MapReduce 程序的第一步叫做mapping,將數(shù)據(jù)元素作為Mapper函數(shù)的輸入數(shù)據(jù),每次一個,Mapper把每次mapping得到的結(jié)果單獨傳輸?shù)捷敵鰯?shù)據(jù)元素里。Mapper模型如圖3所示。
Mapping對輸入數(shù)據(jù)列表中的每一個元素應(yīng)用一個函數(shù)創(chuàng)建一個新的輸出數(shù)據(jù)列表,即鍵值對[17]。Reducing具有聚集數(shù)據(jù)功能,Reducer函數(shù)接收來自輸入列表的迭代器,將數(shù)據(jù)聚集在一起,返回一個值。Reducer模型如圖4所示。
Reducing一般用來生成匯總數(shù)據(jù),將大規(guī)模的數(shù)據(jù)轉(zhuǎn)變成更小的總結(jié)數(shù)據(jù)。數(shù)據(jù)通過Reducer的分析處理,最終將結(jié)果輸出。通常作業(yè)的輸入和輸出都存儲在文件系統(tǒng)中,MapReduce 框架和分布式文件系統(tǒng)運行在一組相同的節(jié)點上。MapReduce框架可在已經(jīng)存好數(shù)據(jù)的節(jié)點上高效運行,使整個集群的網(wǎng)絡(luò)帶寬高效利用。
圖4 Reducer模型
Hadoop具有高可靠性,高擴展性,高容錯性,高效性等特點。這些特點符合農(nóng)業(yè)數(shù)據(jù)處理的要求,可將Hadoop用于農(nóng)業(yè)數(shù)據(jù)的處理中,分布式文件系統(tǒng)HDFS可存儲農(nóng)業(yè)數(shù)據(jù),結(jié)合MapReduce 將數(shù)據(jù)處理,輸出處理結(jié)果,為用戶提供技術(shù)支持。Hadoop將海量農(nóng)業(yè)數(shù)據(jù)分割于多個節(jié)點,由每一個節(jié)點并行計算,將得出的結(jié)果歸并到輸出。運用迭代算法的思想,構(gòu)建樹狀結(jié)構(gòu)的分布式計算圖,并行、串行結(jié)合的計算在分布式集群的資源下高效處理。Hadoop數(shù)據(jù)處理方法相對傳統(tǒng)數(shù)據(jù)分析方法不僅快速,而且在處理農(nóng)業(yè)數(shù)據(jù)時將多元化的農(nóng)業(yè)數(shù)據(jù)融合分析,分析出數(shù)據(jù)的相關(guān)性。
Hadoop在農(nóng)業(yè)數(shù)據(jù)的分析處理中具有很多的優(yōu)勢,但是仍存在不足。第一,Hadoop的高可用性。HDFS與MapReduce都采用單主機(master)的處理方式,集群中的其他機器都與中心機器進行通信,一旦中心機器損壞,集群停止工作,可用性降低,即單點失敗。目前,針對這個已研究出初步解決方案,即對master節(jié)點進行鏡像備份,一旦master出現(xiàn)錯誤,即刻換上鏡像備份的機器,提高可用性,但這是基于內(nèi)置的解決方案,不能從根本上解決問題。第二,Hadoop不適用迭代次數(shù)過多的算法(比如:矩陣的奇異值分解)。MapReduce每次迭代都需將數(shù)據(jù)往文件里面讀寫一遍,浪費大量的時間。第三,不能實現(xiàn)實時性,不能響應(yīng)毫秒級響應(yīng),事物型查詢用時較長。農(nóng)業(yè)數(shù)據(jù)中含有海量的非結(jié)構(gòu)數(shù)據(jù),Hadoop處理起來十分的復(fù)雜,處理速度緩慢,一旦發(fā)生單點失敗,機器需重啟重新處理,會導(dǎo)致處理時間過長。而且Hadoop不能實現(xiàn)實時性,導(dǎo)致很多的數(shù)據(jù)不能及時處理,對于需要實時分析數(shù)據(jù)輸出結(jié)果以便作出調(diào)整的指標(biāo)沒有作用。
相對于Hadoop,Storm主要采用全內(nèi)存計算,Storm接收到數(shù)據(jù)就實時處理并分發(fā),因而Storm處理速度快,被廣泛應(yīng)用于實時日志處理、實時統(tǒng)計、實時風(fēng)控、實時推薦等場景中。
1.2 Storm
2011年,Hadoop憑借著高吞吐,方便處理海量數(shù)據(jù)的優(yōu)勢奠定其在大數(shù)據(jù)的主要地位。Hadoop專注于大規(guī)模數(shù)據(jù)存儲和處理,但是Hadoop的MapReduce延遲大,響應(yīng)緩慢,運維復(fù)雜,不適用于實時大數(shù)據(jù)方面。針對業(yè)務(wù)場景中對秒級別甚至毫秒級別響應(yīng)的需求,Twitter公司推出開源分布式、容錯的實時流計算系統(tǒng)Storm,解決了大規(guī)模數(shù)據(jù)實時處理的問題。Storm是一個分布式的、容錯的實時計算系統(tǒng),適用于計算機集群中編寫與擴展復(fù)雜的實時計算。
Storm集群由一個主節(jié)點和多個工作節(jié)點組成,Storm架構(gòu)圖如圖5所示。主節(jié)點運行 Nimbus守護進程,用于分配代碼、布置任務(wù)及故障檢測。每個工作節(jié)點運行Supervisor守護進程,開始并終止工作進程。ZooKeeper 用于管理集群中的不同組件,協(xié)調(diào)Nimbus和Supervisor兩者的工作,topology是由計算節(jié)點組成的圖,節(jié)點包括處理的邏輯。
Storm的工作過程是Nimbus針對該拓撲建立本地的目錄,根據(jù)topology的配置計算作業(yè)、分配作業(yè),在zookeeper上建立任務(wù)節(jié)點assignments存儲作業(yè)task和supervisor機器節(jié)點中worker的對應(yīng)關(guān)系,以及創(chuàng)建作業(yè)節(jié)點taskbeats 來監(jiān)控作業(yè)的心跳,啟動topology。Supervisor從zookeeper上獲取分配的作業(yè)task,啟動多個worker,worker生成作業(yè)task,一個作業(yè)task一個線程;根據(jù)topology信息初始化建立作業(yè)task之間的連接;作業(yè)和作業(yè)之間通過可嵌入的網(wǎng)絡(luò)通訊庫管理,最后整個拓撲運行起來。
圖5 Storm架構(gòu)
Storm有很多的優(yōu)勢。第一,簡單的編程模型。Storm降低實時處理的復(fù)雜性。第二, 可以使用各種編程語言。Storm默認支持Clojure 、Java、Ruby和Python。通過實現(xiàn)一個簡單的Storm通信協(xié)議,可增加對其他語言的支持。第三,容錯性。Storm管理工作進程和節(jié)點的故障。第四,水平擴展。計算在多個線程、進程和服務(wù)器之間并行進行。第五,可靠的消息處理。Storm保證每個消息至少能得到一次完整處理。第六,快速。系統(tǒng)的設(shè)計使用網(wǎng)絡(luò)通訊庫作為其底層消息隊列,保證消息能得到快速的處理。第七,本地模式。Storm “本地模式”可在處理過程中完全模擬Storm集群,可快速進行開發(fā)和單元測試。
Storm也存在一些亟待解決的問題。第一,目前的開源版本中只是單節(jié)點Nimbus,故障只能自動重啟,可考慮實現(xiàn)一個雙Nimbus的布局。第二,Clojure 是一個在Java虛擬機(Java Virtual Machine,JVM)平臺運行的動態(tài)函數(shù)式編程語言,優(yōu)勢在于流程計算, Storm的部分核心內(nèi)容由Clojure 編寫,性能提高的同時也提升維護成本。因此,Storm適合用于需要實時分析的農(nóng)業(yè)數(shù)據(jù),如農(nóng)業(yè)大棚中的溫度、濕度監(jiān)測等,可以迅速地分析出結(jié)果。
1.3 Spark
Spark是起源于美國加州大學(xué)伯克利分校AMPLab 的大數(shù)據(jù)計算平臺,在2010年開源,目前是Apache軟件基金會的頂級項目。2014年11月,Spark在Daytona Gray Sort 100TB Benchmark競賽中利用1/10的節(jié)點數(shù),把100TB數(shù)據(jù)的排序時間從72min提高到了23min,打破了由Hadoop MapReduce 保持的排序記錄。隨著Spark在大數(shù)據(jù)計算領(lǐng)域的嶄露頭角,越來越多的企業(yè)開始關(guān)注和使用。
彈性分布式數(shù)據(jù)集(resilient distributed dataset,RDD)是Spark的最基本抽象,是對分布式內(nèi)存的抽象使用,實現(xiàn)以操作本地集合的方式來操作分布式數(shù)據(jù)集的抽象實現(xiàn)。RDD是Spark最核心的東西,其表示已被分區(qū)、不可變的、可序列化的、能被并行操作的數(shù)據(jù)集合,不同的數(shù)據(jù)集格式對應(yīng)不同的RDD實現(xiàn)。RDD緩存到內(nèi)存中,RDD數(shù)據(jù)集的操作基于內(nèi)存,節(jié)省MapReduce 大量的磁盤IO操作。提升迭代機器學(xué)習(xí)算法、交互式數(shù)據(jù)挖掘的效率。
Spark提供多種數(shù)據(jù)集操作類型,如map, filter, flatMap , sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort, partionBy等操作類型,將這些操作類型稱為Transformations。同時還提供Count, collect, reduce, lookup, save等多種Actions。Transformation操作是通過轉(zhuǎn)換從一個或多個RDD生成新的RDD。Action操作是從RDD生成最后的計算結(jié)果。Spark編程模型相對靈活,用戶可以命名、物化、控制中間結(jié)果的分區(qū)。
Spark架構(gòu)采用Master-Slave模型。Master對應(yīng)集群中的含有Master進程的節(jié)點,Slave是集群中含有Worker進程的節(jié)點。Master作為整個集群的控制器,負責(zé)整個集群的正常運行;Worker是計算節(jié)點,接收主節(jié)點命令與進行狀態(tài)匯報;Executor負責(zé)任務(wù)執(zhí)行;Client作為用戶的客戶端負責(zé)提交應(yīng)用,Driver負責(zé)控制一個應(yīng)用的執(zhí)行,如圖6所示。
圖6 Spark架構(gòu)
Spark集群部署后,主節(jié)點和從節(jié)點分別啟動Master進程和Worker進程,對整個集群進行控制。在Spark應(yīng)用的執(zhí)行過程中, Driver 程序是應(yīng)用邏輯執(zhí)行的起點,負責(zé)作業(yè)的調(diào)度,即Task任務(wù)的分發(fā), Worker管理計算節(jié)點和創(chuàng)建Executor并行處理任務(wù),SparkContext控制應(yīng)用的生命周期。DAG Scheduler是根據(jù)作業(yè)(Job)構(gòu)建基于Stage的DAG,并提交Stage給TaskScheduler。TaskScheduler將任務(wù)(Task)分發(fā)給Executor執(zhí)行。SparkEnv 是線程級別的上下文,創(chuàng)建并包含一些重要組件的引用。ClusterManager控制整個集群,監(jiān)控Worker。在執(zhí)行階段,Executor為執(zhí)行器,是在worker node上執(zhí)行任務(wù)的組件,用于啟動線程運行任務(wù)。Driver將Task、file和jar序列化后傳遞給對應(yīng)的Worker機器,同時Executor對相應(yīng)數(shù)據(jù)分區(qū)的任務(wù)進行處理。
Spark運行的整體流程為:Client 提交應(yīng)用,Master找到一個Worker啟動Driver,Driver向Master或者資源管理器申請資源,將應(yīng)用轉(zhuǎn)化為RDD Graph,由DAGS cheduler將RDD Graph轉(zhuǎn)化為Stage的有向無環(huán)圖提交給TaskScheduler,由TaskScheduler提交任務(wù)給Executor執(zhí)行。在任務(wù)執(zhí)行的過程中,其他組件協(xié)同工作,確保整個應(yīng)用順利執(zhí)行。
Spark采用了內(nèi)存計算。從多迭代批處理出發(fā),允許將數(shù)據(jù)載入內(nèi)存作反復(fù)查詢,此外還融合數(shù)據(jù)倉庫、流處理和圖形計算等多種計算方式。Spark構(gòu)建在HDFS上,能與Hadoop緊密結(jié)合。Spark可用一個技術(shù)堆棧解決云計算大數(shù)據(jù)中流處理、圖技術(shù)、機器學(xué)習(xí)、交互式查詢、誤差查詢等所有的問題,可以快速地處理農(nóng)業(yè)非結(jié)構(gòu)數(shù)據(jù),處理速度比Hadoop要快。Spark正在逐漸走向成熟,并在農(nóng)業(yè)大數(shù)據(jù)分析這個領(lǐng)域扮演更加重要的角色。
大數(shù)據(jù)在IT等行業(yè)已經(jīng)有了相當(dāng)?shù)难芯砍晒?,大?shù)據(jù)與農(nóng)業(yè)等傳統(tǒng)行業(yè)結(jié)合是未來的研究熱點。農(nóng)業(yè)大數(shù)據(jù)作為大數(shù)據(jù)的重要分支,包括氣象數(shù)據(jù)、生物信息數(shù)據(jù)、環(huán)境數(shù)據(jù)、農(nóng)業(yè)生產(chǎn)數(shù)據(jù)、管理數(shù)據(jù)、市場數(shù)據(jù)和統(tǒng)計數(shù)據(jù)等,涉及種植、養(yǎng)殖、加工等方面。面對復(fù)雜、多源化、大量的農(nóng)業(yè)數(shù)據(jù),傳統(tǒng)的數(shù)據(jù)分析方法已經(jīng)不能滿足現(xiàn)代農(nóng)業(yè)的要求,存在著數(shù)據(jù)分析不到位、數(shù)據(jù)存儲空間不足、數(shù)據(jù)分析不及時等問題。隨著大數(shù)據(jù)與農(nóng)業(yè)的深度融合發(fā)展,依靠傳統(tǒng)方法不能解決的諸多問題也會迎刃而解。通過農(nóng)業(yè)大數(shù)據(jù)技術(shù),對農(nóng)業(yè)領(lǐng)域的糧食安全、生態(tài)環(huán)境、病蟲害預(yù)防、動植物育種、農(nóng)業(yè)結(jié)構(gòu)調(diào)整、農(nóng)產(chǎn)品市場預(yù)測等諸多問題進行預(yù)測和提升。用大數(shù)據(jù)技術(shù)整合分析農(nóng)業(yè)領(lǐng)域數(shù)據(jù),改變傳統(tǒng)農(nóng)業(yè)生產(chǎn)缺少量化數(shù)據(jù)支撐的問題,針對農(nóng)業(yè)高度分散、生產(chǎn)規(guī)模小、時空變異大、規(guī)?;潭炔?、穩(wěn)定性和可控程度低等行業(yè)性弱點,通過對歷史數(shù)據(jù)和現(xiàn)實數(shù)據(jù)進行挖掘,很有可能發(fā)現(xiàn)和解決新的農(nóng)業(yè)科學(xué)問題,拓展人類探索農(nóng)業(yè)科學(xué)的廣度和深度,提升農(nóng)業(yè)創(chuàng)新水平;另一方面挖掘農(nóng)業(yè)大數(shù)據(jù)技術(shù)的發(fā)展前景,豐富了大數(shù)據(jù)的應(yīng)用功能,增強了農(nóng)業(yè)與其他領(lǐng)域之間的聯(lián)系。
通過農(nóng)業(yè)大數(shù)據(jù)技術(shù)與互聯(lián)網(wǎng)絡(luò)、計算機技術(shù)的結(jié)合,農(nóng)業(yè)信息化已經(jīng)融入農(nóng)業(yè)產(chǎn)業(yè),對于加快轉(zhuǎn)變農(nóng)業(yè)發(fā)展方式,建設(shè)現(xiàn)代農(nóng)業(yè)具有重要的推動作用。目前,大力發(fā)展農(nóng)業(yè)大數(shù)據(jù)技術(shù),加快推進信息化發(fā)展,促進信息化和現(xiàn)代化融合,已經(jīng)成為各國發(fā)展農(nóng)業(yè)的重要趨勢。在英國,提出將大數(shù)據(jù)技術(shù)應(yīng)用于農(nóng)業(yè)領(lǐng)域,農(nóng)業(yè)向“精準農(nóng)業(yè)”邁進,與數(shù)字技術(shù)、傳感技術(shù)和空間地理技術(shù)結(jié)合,更為精準地進行種植和養(yǎng)殖作業(yè);另一方面,通過農(nóng)業(yè)大數(shù)據(jù)技術(shù)數(shù)據(jù)搜集和分析處理平臺,提升農(nóng)業(yè)生產(chǎn)部門和市場需求的對接,加強其對于市場的理解。在2013年,英國政府正式啟動“農(nóng)業(yè)技術(shù)戰(zhàn)略”,提出高度重視利用“大數(shù)據(jù)”和信息技術(shù)提升農(nóng)業(yè)生產(chǎn)效率。在美國,為推進信息化以支撐農(nóng)業(yè)發(fā)展,美國政府提出利用農(nóng)業(yè)大數(shù)據(jù)技術(shù),采取政府投入與資本市場運營相結(jié)合的投資模式,從農(nóng)業(yè)信息技術(shù)應(yīng)用、農(nóng)業(yè)信息網(wǎng)絡(luò)建設(shè)和農(nóng)業(yè)信息資源開發(fā)利用等方面全方位推進和完善農(nóng)業(yè)信息化建設(shè),構(gòu)建規(guī)模和影響力較大的涉農(nóng)信息數(shù)據(jù)中心,有力促進農(nóng)業(yè)整體水平的提高。在法國,農(nóng)業(yè)部門完備農(nóng)業(yè)信息數(shù)據(jù)庫,結(jié)合農(nóng)業(yè)大數(shù)據(jù)技術(shù),分析整合各項農(nóng)業(yè)數(shù)據(jù),通過互聯(lián)網(wǎng)絡(luò),定期公布農(nóng)業(yè)生產(chǎn)信息,管控農(nóng)業(yè)生產(chǎn)銷售環(huán)節(jié)的正常秩序,向農(nóng)民提供更為詳盡與專業(yè)的農(nóng)業(yè)信息資訊,更好地服務(wù)于農(nóng)業(yè)生產(chǎn)。目前,德國正致力于發(fā)展更高水平的“數(shù)字農(nóng)業(yè)”。通過大數(shù)據(jù)和云技術(shù)的應(yīng)用,將天氣、土壤、降水、溫度、地理位置等數(shù)據(jù)上傳到云端進行處理,結(jié)果數(shù)據(jù)發(fā)送到智能化的大型農(nóng)業(yè)機械上,指揮機器進行精細作業(yè)。但是,德國農(nóng)業(yè)數(shù)字化建設(shè)面臨農(nóng)村地區(qū)寬帶覆蓋率不夠高,以及數(shù)據(jù)安全等問題[18-20]。在農(nóng)業(yè)大數(shù)據(jù)的應(yīng)用方面,我國已經(jīng)初步構(gòu)建基于物聯(lián)網(wǎng)技術(shù)的數(shù)據(jù)采集,基于互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)及GPRS的信息傳輸,基于數(shù)據(jù)挖掘技術(shù)的分析及可視化技術(shù)的數(shù)據(jù)展示技術(shù)體系,其應(yīng)用正向著產(chǎn)前、產(chǎn)中、產(chǎn)后的整個農(nóng)業(yè)生產(chǎn)過程延伸[21]。由此可知,發(fā)展農(nóng)業(yè)大數(shù)據(jù)技術(shù)有利于構(gòu)建面向農(nóng)業(yè)的綜合信息服務(wù)體系,為農(nóng)業(yè)生產(chǎn)提供綜合、高效、便捷的信息服務(wù)。加強農(nóng)業(yè)大數(shù)據(jù)技術(shù)建設(shè),完善農(nóng)業(yè)生產(chǎn)數(shù)據(jù)采集、傳輸、共享基礎(chǔ)設(shè)施,建立農(nóng)業(yè)生產(chǎn)數(shù)據(jù)采集、運算、應(yīng)用、服務(wù)體系,推動農(nóng)業(yè)信息化快速發(fā)展。統(tǒng)籌國內(nèi)國際農(nóng)業(yè)數(shù)據(jù)資源,強化農(nóng)業(yè)資源要素數(shù)據(jù)的集聚利用,提升預(yù)測預(yù)警能力。整合構(gòu)建國家涉農(nóng)大數(shù)據(jù)中心,推進各地區(qū)、各行業(yè)、各領(lǐng)域涉農(nóng)數(shù)據(jù)資源的共享開放,加強數(shù)據(jù)資源發(fā)掘運用。加快農(nóng)業(yè)大數(shù)據(jù)關(guān)鍵技術(shù)研發(fā),加大示范力度,提升生產(chǎn)智能化、經(jīng)營網(wǎng)絡(luò)化、管理高效化、服務(wù)便捷化能力和水平。
農(nóng)業(yè)科學(xué)中因果關(guān)系較為復(fù)雜,大數(shù)據(jù)技術(shù)可以突破傳統(tǒng)數(shù)據(jù)分析方法的局限,對農(nóng)業(yè)領(lǐng)域中的相關(guān)關(guān)系進行分析。動態(tài)流數(shù)據(jù)[22]和非結(jié)構(gòu)化數(shù)據(jù)是大數(shù)據(jù)技術(shù)分析的重點,Hadoop、Storm、Spark等作為開源的大數(shù)據(jù)處理平臺,在大數(shù)據(jù)領(lǐng)域起到至關(guān)重要的作用。Hadoop[23]作為一種開源的架構(gòu)適合在廉價機器上對各種資源數(shù)據(jù)進行分布式存儲和分布式管理,具有可伸縮性和高容錯性。在Hadoop分布式文件系HDFS的基礎(chǔ)上,對目前傳統(tǒng)的云存儲架構(gòu)進行適當(dāng)?shù)母倪M,可以實現(xiàn)對海量農(nóng)業(yè)數(shù)據(jù)的存儲管理。Storm適用于在線實時數(shù)據(jù)流的處理,在農(nóng)業(yè)領(lǐng)域可用于分析大棚濕度、溫度、二氧化碳含量等實時數(shù)據(jù)的處理,及時快速地將大棚內(nèi)的狀況反饋給用戶,方便用戶調(diào)節(jié)大棚內(nèi)的各項指標(biāo)。Spark是離線的大數(shù)據(jù)處理技術(shù),可以在離線的情況下快速的處理農(nóng)業(yè)數(shù)據(jù)。Spark是基于內(nèi)存計算的開源項目,其處理速度相比Hadoop更快,將Hadoop和Spark結(jié)合,即將數(shù)據(jù)存儲在分布式文件系統(tǒng)HDFS中,采用Spark內(nèi)存計算的方式,提高數(shù)據(jù)的處理速度,及時地處理數(shù)據(jù)。
然而,想要農(nóng)業(yè)大數(shù)據(jù)挖掘工具在農(nóng)業(yè)中發(fā)揮實際的功效,我們還有許多具體的內(nèi)容需要研究和實踐,主要包括數(shù)據(jù)存儲方面和數(shù)據(jù)挖掘分析方面。在數(shù)據(jù)存儲方面,由于農(nóng)業(yè)數(shù)據(jù)具有時空屬性,如土壤類型眾多,農(nóng)作物病蟲害次數(shù)頻繁且癥狀變化,受氣候、肥水等相互之間關(guān)系和影響較大[24],因而農(nóng)業(yè)數(shù)據(jù)具有多維、動態(tài)、非線性等特征,導(dǎo)致在數(shù)據(jù)存儲方面?zhèn)鹘y(tǒng)關(guān)系數(shù)據(jù)庫難以滿足農(nóng)業(yè)大數(shù)據(jù)的存儲需求,難以對非結(jié)構(gòu)的農(nóng)業(yè)大數(shù)據(jù)進行加工和管理。在數(shù)據(jù)挖掘分析方面,由于農(nóng)業(yè)基礎(chǔ)數(shù)據(jù)存在數(shù)據(jù)資源薄弱、數(shù)據(jù)結(jié)構(gòu)不合理、數(shù)據(jù)粒度不夠、數(shù)據(jù)標(biāo)準化與規(guī)范化程度低等問題,數(shù)據(jù)分析過程中會要求考慮時間因素、經(jīng)濟學(xué)因素等要求,為保證數(shù)據(jù)分析的精度,大數(shù)據(jù)分析技術(shù)不僅要具備對非結(jié)構(gòu)數(shù)據(jù)高吞吐量,而且還需多角度分析數(shù)據(jù)。因而要加快我國現(xiàn)代化農(nóng)業(yè)的建設(shè)步伐,完成海量農(nóng)業(yè)數(shù)據(jù)存儲、管理和分析,建立適合于農(nóng)業(yè)體系的大數(shù)據(jù)系統(tǒng)。
大數(shù)據(jù)的產(chǎn)生給海量信息處理技術(shù)帶來新的挑戰(zhàn),大數(shù)據(jù)技術(shù)的方法、手段的運用,促進了金融、證券、保險等領(lǐng)域的信息化發(fā)展。同時,在科學(xué)研究領(lǐng)域,將大數(shù)據(jù)技術(shù)架構(gòu)到傳統(tǒng)的研究方法中,進一步推進了實驗研究的準確性和快速性。大數(shù)據(jù)技術(shù)在我國農(nóng)業(yè)領(lǐng)域的應(yīng)用研究剛剛起步,擁有市場和發(fā)展的潛力,農(nóng)業(yè)朝著信息化和智能化的方向發(fā)展。農(nóng)業(yè)大數(shù)據(jù)技術(shù)從復(fù)雜的海量農(nóng)業(yè)數(shù)據(jù)中,分析獲得有價值的信息,對提高農(nóng)戶決策水平和提高農(nóng)業(yè)科技含量、農(nóng)業(yè)生產(chǎn)效率等都有著重大意義。文中分析了Hadoop 、Storm、Spark開源的大數(shù)據(jù)挖掘技術(shù),將這些開源的大數(shù)據(jù)技術(shù)應(yīng)用到農(nóng)業(yè)中,通過采集數(shù)據(jù)、分析數(shù)據(jù)、發(fā)布有價值信息,從而為農(nóng)業(yè)服務(wù)。但由于大數(shù)據(jù)挖掘技術(shù)軟件在農(nóng)業(yè)領(lǐng)域的應(yīng)用尚不成熟,數(shù)據(jù)分析過程不穩(wěn)定,可能會導(dǎo)致分析結(jié)果達不到預(yù)期的目標(biāo),因而需要加大力度改造大數(shù)據(jù)技術(shù)軟件在農(nóng)業(yè)方面的應(yīng)用。農(nóng)業(yè)大數(shù)據(jù)技術(shù)以數(shù)據(jù)流引領(lǐng)農(nóng)業(yè)信息化發(fā)展方向,深刻影響農(nóng)業(yè)分工的組織模式,促進農(nóng)業(yè)生產(chǎn)組織方式的集約和創(chuàng)新。農(nóng)業(yè)大數(shù)據(jù)技術(shù)推動農(nóng)業(yè)生產(chǎn)要素的網(wǎng)絡(luò)化共享、集約化整合、協(xié)作化開發(fā)和高效化利用,改變了傳統(tǒng)農(nóng)業(yè)的生產(chǎn)方式,可顯著提升農(nóng)業(yè)生產(chǎn)運行水平和效率。在農(nóng)業(yè)現(xiàn)代化建設(shè)中,夯實農(nóng)業(yè)大數(shù)據(jù)在智慧農(nóng)業(yè)中的應(yīng)用,加強農(nóng)業(yè)大數(shù)據(jù)采集分析、共享開放和開發(fā)利用,提升以農(nóng)業(yè)大數(shù)據(jù)為支撐的農(nóng)業(yè)信息化,開拓智慧農(nóng)業(yè)新局面,實現(xiàn)農(nóng)業(yè)供應(yīng)鏈的改造、農(nóng)產(chǎn)品流通體系的再造以及價值體系的再造,實現(xiàn)與農(nóng)民的交互、滿足農(nóng)業(yè)研究的專業(yè)化和個性化需求,促進農(nóng)業(yè)信息化的發(fā)展。
[1] 建光,姜巍. 大數(shù)據(jù)的概念、特征及其應(yīng)用.國防科技,2013,34(2):10-17
[2] 蔡書凱. 大數(shù)據(jù)與農(nóng)業(yè):現(xiàn)實挑戰(zhàn)與對策.電子商務(wù), 2014,1:3-4
[3] 官建文,劉振興,劉揚. 國內(nèi)外主要互聯(lián)網(wǎng)公司大數(shù)據(jù)布局與應(yīng)用比較研究. 中國傳媒科技, 2012,17:45-49
[4] 孟小峰,慈祥. 大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn). 計算機研究與發(fā)展, 2013,50(1):146-169
[5] Mike G. Big data in 2013:What to expect.Information&Management,2013,3/4:20-25
[6] McKenna A, Hanna M, Banks E, et al. The genome analysis toolkit: A MapReduce framework for analyzing next-generation DNA sequencing data.Genomeresearch, 2010,20(9): 1297-1303
[7] CCF大數(shù)據(jù)專家委員會. 中國大數(shù)據(jù)技術(shù)與產(chǎn)業(yè)發(fā)展白皮書. http://www.ccf.org.cn/sites/ccf/ccfziliao.jsp?contentId=2774793649105:中國計算機學(xué)會,2013
[8] 王儒敬. 我國農(nóng)業(yè)信息化發(fā)展的瓶頸與應(yīng)對策略思考. 中國科學(xué)院院刊,2013,28(3):337-343
[9] 覃志豪,唐華俊,李文娟等. 氣候變化對農(nóng)業(yè)和糧食生產(chǎn)影響的研究進展與發(fā)展方向. 中國農(nóng)業(yè)資源與區(qū)劃,2013, 34(5): 1-7
[10] 溫孚江. 農(nóng)業(yè)大數(shù)據(jù)研究的戰(zhàn)略意義與協(xié)同機制. 高等農(nóng)業(yè)教育,2013,11:3-6
[11] 郭承坤,劉延忠,陳英義等. 發(fā)展農(nóng)業(yè)大數(shù)據(jù)的主要問題及主要任務(wù). 安徽農(nóng)業(yè)科學(xué),2014,42(27): 9642-9645
[12] Monsanto Company. Monsanto Acquires The Climate Corporation. http://www.monsanto.com/features/pages/Monsanto-acquires-the-climate-corporation.aspx: Monsanto Company, 2002
[13] 徐可英. 國內(nèi)外精確農(nóng)業(yè)發(fā)展現(xiàn)狀與對策. 中國農(nóng)業(yè)資源與區(qū)劃,2000,21(2):53-56
[14] Li D. Internet of things and smart agriculture.AgriculturalEngineering, 2012,2(1): 1-7
[15] 楊鋒,吳華璃,朱華吉等. 基于Hadoop的海量農(nóng)業(yè)數(shù)據(jù)資源管理平臺.計算機工程,2013,37(12):242-244
[16] 量子數(shù)聚(北京)科技有限公司. 農(nóng)業(yè)大數(shù)據(jù)應(yīng)用云平臺. http://www.dataagri.com/agriculture/index.action: 量子數(shù)聚(北京)科技有限公司,2013
[17] 劉剛. Hadoop應(yīng)用開發(fā)技術(shù)詳解. 北京:機械工業(yè)出版社,2014. 40-126
[18] Chute C, Ullman-Cullere M, Wood G . Some experiences and opportunities for big data in translational research.GENETICSinMedicie, 2013,15(10):802-809
[19] Gu M, Li X P, Cao Y Y. Optical storage arrays: a perspective for future big data storage .Light:Science&Applications,2014,58:1-11
[20] Haluk D, Dursun D. Leveraging the capabilities of service-oriented decision support systems: putting analytics and big data in cloud.DecisionSupportSystems,2013, 55:412-421
[21] 宋長青,高明秀,周虎等. 農(nóng)業(yè)大數(shù)據(jù)與現(xiàn)代農(nóng)業(yè)發(fā)展探析.http://www.cnki.net/kcms/detail/11.4922.S.20150104.1322.002.html:中國農(nóng)業(yè)信息. 2015
[22] 孫忠富,杜克明,尹首一. 物聯(lián)網(wǎng)發(fā)展趨勢與農(nóng)業(yè)應(yīng)用展望. 農(nóng)業(yè)網(wǎng)絡(luò)信息, 2010, (5):5-8
[23] White T. Hadoop:The Definitive Guide. O’ReilllyMedia, 2009. 200-345
[24] 邢平平,施鵬飛,熊范綸. 數(shù)據(jù)挖掘技術(shù)在農(nóng)業(yè)數(shù)據(jù)中的有效應(yīng)用. 計算機工程與應(yīng)用, 2001,37(2) :4-6
Analysis of the research on agricultural big data applications at home and abroad
Li Lingping****, Mao Kebiao**, Fu Xiuli***, Ma Ying**, Wang Fang****, Liu Qing**
(*College of Information Science & Technology, Beijing University of Chemical Technology, Beijing 100029)(**National Hulunber Grassland Ecosystem Observation and Research Station, Institute of Agricultural Resources and Regional Planning, Chinese Academy of Agricultural Sciences, Beijing 100081)(***Information Engineering Institute, Beijing Institute of Petrochemical Technology, Beijing 102617)(****National-Local Joint Engineering Laboratory of Geo-spatial Information Technology, Hunan University of Science and Technology, Xiangtan 411201)
In view of the problems of large scale, complicated structure and scarce data mining of agricultural data, the application of big data open source technologies to the agricultural data analysis system is investigated. Based on the characteristics of the agricultural data’s spatio-temporal attribution, the classical big data mining technologies of Hadoop, Storm and Spark are analyzed under the consideration of the features of agricultural data. Then, how to develop a big data system for agriculture is described summarily. Finally, the challenges and research problems to agricultural big data are concisely analyzed and summarized. It is pointed that it is necessary to do further research on the related theory and applications to boost and realize the scientific decision based on data to provide the secure guarantee for national food.
big data, agricultural big data, Hadoop, Storm, Spark
10.3772/j.issn.1002-0470.2016.04.012
①國家自然科學(xué)基金(41571427),中央級公益性科研院所專項資金(IARRP-2015-26)和農(nóng)業(yè)部農(nóng)業(yè)信息預(yù)警專項(614-1)資助項目。
,E-mail: maokebiao@126.com(
2015-12-23)
②女,1991年生,碩士;研究方向:地層剖面數(shù)據(jù)建模;E-mail: 823947116@qq.com