文燕
(成都農業(yè)科技職業(yè)學院,成都 611130)
基于Hadoop農業(yè)大數據管理平臺的設計①
文燕
(成都農業(yè)科技職業(yè)學院,成都 611130)
信息技術的高速發(fā)展使得每天的數據量以TB級速度暴增,如何有效利用和管理這些爆炸式增長的大數據呢?是當前亟待處理的問題.大數據已經滲透到包括農業(yè)領域在內的各個領域,隨著農業(yè)信息化建設以及物聯網技術在農業(yè)生產中的應用,產生了海量的農業(yè)大數據待存儲、管理和處理.本文以成都農業(yè)科技職業(yè)學院彭州葛仙山農業(yè)示范基地的農業(yè)信息化建設為背景,根據農業(yè)物聯網和信息化建設要求,構建高性能基于Hadoop農業(yè)大數據管理的平臺,實現農業(yè)大數據的安全可靠存儲、智能管理與應用,最終達到對農業(yè)生產的智能預警、智能決策和智能分析的目的,并為農戶提供專業(yè)的指導.為我國進入精細化種植、精準化控制、可視化管理、智能化決策的智慧農業(yè)時代奠定基礎.
農業(yè)大數據;Hadoop;Map/Reduce;HDFS;智慧農業(yè)
“大數據”的相關概念,早在1980年由阿爾文.托夫勒出版的《第三次浪潮》[1]中已經提出.隨著物聯網、云計算等技術的迅猛發(fā)展,大數據再次吸引了人類的眼球.2015年中央一號文件再次聚焦農業(yè),主題為進一步深化農村改革加快推進農業(yè)現代化、信息化,這也是中央連續(xù)12年一號文件關注農業(yè).農業(yè)作為一個國家的基礎產業(yè),也緊隨著時代的步伐,加強現代化大農業(yè)發(fā)展,加快科技創(chuàng)新,實施重大農業(yè)科技創(chuàng)新,積極開展應用基礎和前沿高技術領域自主創(chuàng)新[2],傳統(tǒng)的農業(yè)生產方式應向數據驅動的智慧化生產方式轉變,標志著進入農業(yè)大數據時代.
隨著農業(yè)信息化的不斷推進,在長期的研究和實踐過程中,通過觀察、測量、實驗等方式積累了大量的對農業(yè)生產經營過程具有實際指導意義的農業(yè)數據,而且這些數據還在呈幾何級飛速增長.這些飛速增長的數據形成了農業(yè)大數據,它是由結構化和非結構化的數據組成,它涉及到農業(yè)生產經營過程中的方方面面,比如育種、耕種、收割等[3].農業(yè)的快速發(fā)展和農業(yè)物聯網的應用,非結構化數據在農業(yè)數據的比重的逐漸上升,將很快會遠遠超過農業(yè)數據中結構化數據.
如何管理和利用蘊含大量的價值的數據,是人類亟待解決的問題.目前,在管理和處理農業(yè)大數據方面存在一些凸顯的問題:
(1)各級農業(yè)部門信息孤立,各自為陣,主要以結構化的關系型數據存儲方式來存儲.
(2)農業(yè)大數據具有自身的特點,如:土壤類型眾多,作物品種復雜,病蟲害發(fā)生頻繁且癥狀不斷變化,肥水、氣候相互之間的關系和影響,就使得關于它們的數據庫與知識庫具有大型、多維、動態(tài)、不完全、不確定等特征[3].
(3)各級部門對農業(yè)生產和經營過程中采集的數據的重視程度不夠.對于花費了大量的人力、物力和財力建立起來的農業(yè)大棚,采集來的數據不夠全面,數據類型過少,并且對于采集來的數據也沒有得到及時的處理與存儲和有效的管理,就更別說有效的利用,因此農業(yè)的智能化程度不高[4].
(4)對于農業(yè)大數據集中管理和利用效率不高.
(5)在農業(yè)大數據的存儲和價值挖掘方面,對傳統(tǒng)存儲方式和計算平臺已遠遠不能夠滿足農業(yè)大數據的處理需要.
隨著農業(yè)信息技術的普及,成都農業(yè)科技職業(yè)學院依托智能化農業(yè)大大背景,在彭州葛仙山農業(yè)示范試驗基地進行了一系列信息化和智能化建設,為了方便對彭州葛仙山農業(yè)產業(yè)示范園所采集的農業(yè)大數據更好的管理和更高效的利用,真正發(fā)揮示范基地的作用,因此,迫切的要構建針對彭州葛仙山農業(yè)產業(yè)示范基地的海量數據的存儲和管理的大數據處理平臺.針對農業(yè)大數據自身的特征,搭建基于Hadoop的農業(yè)大數據管理應用平臺,對采集的結構化和非結構化的農業(yè)大數據進行并行處理,挖掘出有價值的數據為農業(yè)生產和科研服務,充分發(fā)揮大數據在智能化、現代化農業(yè)產業(yè)中的作用.
Hadoop平臺是由Apache開發(fā)的一個運行在廉價機器上的開放式、可擴展的分布式計算框架,是一種底層細節(jié)透明的分布式集群系統(tǒng)架構,即用戶在不了解底層是實現的基礎上,可以根據自身需求,通過函數編程和操作接口進行應用開發(fā)的分布式系統(tǒng)[5].
2.1 Hadoop分布式結構模型
Hadoop分布式數據處理框架包括HDFS(分布式文件系統(tǒng))和Map/Reduce(分布式處理模型)兩個核心的引擎,還包括了HBase(非關系型數據庫)、Hive等大量的組件,其結構模型如圖1所示.
圖1 Hadoop分布式結構模型
圖2 HDFS架構模型
2.2 HDFS(分布式文件系統(tǒng))
HDFS(Hadoop Distributed File System)是Hadoop分布式結構中非常的核心部件,主要是對數據進行存儲和管理,優(yōu)點是容錯性高、高吞吐量、有一定的硬件故障檢測能力.因此,HDFS即使部署在廉價的硬件平臺上,都能夠通過流式數據訪問的方式提供高吞吐量的數據訪問能力,從而提高整個應用系統(tǒng)的性能,對于海量的農業(yè)大數據的應用系統(tǒng)非常適合.
HDFS采用主從架構(Master/Salve)的結構模式,包括一個控制節(jié)點負責管理和存儲Hadoop系統(tǒng)數據信息的位置和名稱空間,處理客戶端的請求,一般定義為NameNode(名稱節(jié)點);一定數量的數據節(jié)點,主要負責存儲實際數據,告訴主節(jié)點存儲信息,一般定義為DataNode(數據節(jié)點),需要存儲的切分文件為: Client.HDFS架構如圖2所示.
2.3 Map/Reduce并行計算框架
Map/Reduce是一種新的分布式環(huán)境下的并行計算模型,由谷歌實驗室于2004年發(fā)表的論文中提出的,主要適用于大于 1TB的大規(guī)模數據集計算分析. Map/Reduce是Map函數和Reduce函數兩個核心操作組成,其中Map函數對Client傳來的熱切文件按照一定的規(guī)則映射成一組相關的中間文件;Reduce函數則是對Map函數傳來的中間文件按照規(guī)約進行合并或縮減,得到最終的結果.Map/Reduce架構模型如圖3所示.該模型由Job Tracker總調度,把每一個任務分配給Task Tracker執(zhí)行,運行在HDFS上的各數據節(jié)點的Task Tracker.
圖3 Map/Reduce架構模型
2.4 HBase分布式數據庫
HBase是Hadoop分布式結構中的一個重要組件,其理論基礎來源于名為《Bigtable:一個結構化的數據庫分布式系統(tǒng)》Google的論文,是當下最為流行的分布式數據庫系統(tǒng).與傳統(tǒng)的關系型數據庫相比,HBase最大的不同之處存儲格式采用的是列式存儲格式,對于非結構化的數據庫存儲特別適合列式存儲格.HBase底層為HDFS分布式文件系統(tǒng),使用ZooKeeper實現分布式協同機制,利用Hadoop的Map/Reduce組建來處理海量數據存儲在數據庫.
Hadoop分布式架構平臺對于解決異構農業(yè)大數據的存儲管理,挖掘有效資源提供非常重要的開源架構平臺,主要優(yōu)點:可靠性高、可擴展性好、高效性、容錯性高、低成本.
針對現有農業(yè)數據處理平臺的數據處理和存儲存在不足.一是現有農業(yè)數據處理平臺采用的集中式數據庫架構,隨著數據的不斷增多,數據庫的性能會受到嚴峻的影響,這也是集中式數據庫成為整個平臺架構的瓶頸,而對于海量的非結構化農業(yè)大數據更是無法解決.二是針對海量非結構化的農業(yè)大數據,現有解決平臺的順序計算耗時長,不能夠滿足農業(yè)大數據時間要求.因此,要解決農業(yè)大數據的計算處理、存儲和挖掘問題,需要在現有農業(yè)大數據管理平臺的基礎上構建以Hadoop為計算處理中心,HDFS和HBase為數據存儲中心的農業(yè)大數據管理平臺.主要借助于Hadoop分布式并行計算的數據處理能力以及HDFS和HBase分布式大數據存儲能力,為農業(yè)大數據的處理和存儲提供了保障.
3.1 Hadoop農業(yè)大數據管理平臺架構
通過對成都農業(yè)科技職業(yè)學院彭州葛仙山農業(yè)信息化示范園的實際情況分析,結合Hadoop的體系結構的研究,提出如圖4所示基于Hadoop農業(yè)大數據管理平臺架構.該農業(yè)大數據平臺從底層往上依次農業(yè)大數據采集層、數據存儲中心、計算處理中心、交互層與智能農業(yè)終端應用系統(tǒng).各部分之間通過網絡通信和數據傳輸保證整個系統(tǒng)正常運行.
圖4 Hadoop農業(yè)大數據管理平臺架構
下面對平臺各部分的功能進行介紹:
已經建成的農業(yè)大數據采集網絡,利用各類智能終端采集設備傳感器、RFID和攝像頭等,采集農業(yè)生長環(huán)境所有的各類環(huán)境參數信息、圖片和視頻信息,這些信息構成了農業(yè)大數據的主要數據來源,通過網絡傳輸到數據中心.
② 統(tǒng)一的農業(yè)大數據存儲中心
數據存儲中心,是對農業(yè)大數據的管理和存儲.各級農業(yè)部門都擁有自己的數據存儲中心,而這些數據存儲中心部署在不同的地域,因此這些數據中心之間不能夠統(tǒng)一數據存儲格式,也無法實現信息的共享,容易形成信息孤島,這使得農業(yè)數據的計算、處理和價值挖掘不便.針對于農業(yè)大數據具有結構化和非結構化的特點,該數據存儲中心是采用統(tǒng)一農業(yè)數據存儲中心,以Hadoop中的HBase分布式數據庫和HDFS分布式文件系統(tǒng)為數據管理框架,不僅可以為上層提供并行的數據訪問,還能夠提供高效、安全和易擴展的存儲服務.當系統(tǒng)現有存儲能力達到一定極值時,能夠便捷的擴充新的存儲節(jié)點,新增存儲節(jié)點后不會影響原有的數據存儲.與此同時,為保證數據存儲的安全,該數據管理框架還具有良好的副本機制,即當存儲節(jié)點上的數據出現存儲異常時,通過副本機制將數據轉移到其他節(jié)點.
③ 計算處理中心
計算處理中心是整個系統(tǒng)的核心部分,為用戶提供動態(tài)的資源控制、帶寬分配、程序開發(fā)運行環(huán)境,實現各業(yè)務邏輯的功能,為系統(tǒng)數據處理和數據挖掘提供基礎的計算模型,并為上層提供任務調度模塊.該平臺中的計算處理框架以Hadoop中的Map/Reduce并行計算數據處理平臺為基礎,結合CART算法實現對農業(yè)數據的價值進行挖掘.
④ 農業(yè)示范應用
農業(yè)示范應用是對該平臺的整合和各功能的完備性、正確性的有效驗證.該應用系統(tǒng)平臺主要有農業(yè)核心應用、農業(yè)數據挖掘和智慧農業(yè)的應用三類.農業(yè)核心應用主要是基于Map/Reduce并行計算框架實現,包括作物病蟲害檢查算法、病蟲害診斷算法、作物生長情況的分析算法等對原始農業(yè)數據進行快速處理的一系列相關算法,并將處理結果進行存儲處理,以便對事實數據進行查詢.智慧農業(yè)的基于農業(yè)核心應用中的計算結果,面向用戶需求而設計的,包括農業(yè)數據查詢、分析、統(tǒng)計、預測、智能控制、搜索等功能的一系列農業(yè)市場的應用.
3.2 農業(yè)大數據存儲中心解決方案
各級部門數據存儲中心通過各種類型傳感器、RFID和視頻采集等采集手段獲取海量農業(yè)數據,這些數據以不同形式和結構存儲在不同地理位置的數據庫中.數據存儲中心對分散數據源和異構數據進行有機整合,并對存儲在不同系統(tǒng)的農業(yè)原始數據進行高效管理、有效組織和存儲,再通過大數據處理技術解決數據計算的問題.
3.2.1 農業(yè)大數據存儲中心架構
農業(yè)大數據存儲中心對于不同地域的各級農業(yè)數據中心進行統(tǒng)一組織和管理.平臺通過創(chuàng)建服務實例的方式管理各級數據中心,每個服務實例對應一個各級的分數據中心,服務實例記錄了原始數據存儲中心的地址以及訪問的權限等信息,以及各個數據中心所使用的數據庫類型、中心地址、數據庫名稱、表名稱、用戶名、登陸密碼、訪問權限等內容,從而實現數據中心的資源共享和統(tǒng)一管理.如用戶需要對某個數據中心的數據進行訪問時,只需要通過Hadoop平臺的中央查詢集群中的服務實例就可以查詢到對應數據中心的數據.各數據中心節(jié)點和Hadoop集群分布式架構如圖5所示.分布式集群架構的底層除了部署Hadoop集群和HBase集群外,還有Hadoop分布式結構模型中的一系列的子項目Sqoop、Hive等.
圖5 農業(yè)大數據存儲中心集群架構
3.2.2 農業(yè)大數據并行集群整合服務實例
Hadoop結構和HBase架構都采用的Master/Slave結構,其中Hadoop架構是由負責Map/Reduce任務調度的Job Tracker和負責HDFS數據管理節(jié)點的Name Node構成Master;HBase框架中的Master由HMaster組件構成.整個集群能否正常運行Master起著決定性的作用,較的好穩(wěn)定性,因此對外只提供一個地址服務信息,即Master主機所在地址.
針對農業(yè)大數據的并行存儲,各級各地的農業(yè)數據存儲中心通過創(chuàng)建一個并行集群整合服務實例來實現與Hadoop中心訪問存儲,實例創(chuàng)建流程如下所示:
1)用戶通過應用命令行終端向服務網關發(fā)起創(chuàng)建服務實例的請求.
2)服務網關接到服務實例創(chuàng)建請求后,根據平臺系統(tǒng)中每個服務節(jié)點當前的資源利用情況查找出最優(yōu)節(jié)點,并通知其創(chuàng)建服務實例.
3)服務節(jié)點在接到服務實例的創(chuàng)建請求后,記錄Hadoop、HBase集群地址并記錄在對應的服務實例中,向服務網關返回服務實例創(chuàng)建成功的消息.
4)服務網關在得到服務實例創(chuàng)建成功的消息后,在數據庫中記錄服務實例與服務節(jié)點的相關信息,用于后續(xù)與應用的綁定.
客戶端應用通過綁定服務實例后,即可獲取分布式集群地址,與集群進行通信.通過開放接口輸入相關數據,即可完成HBase數據庫中表的相關操作以及獲取分布式運算和存儲環(huán)境,而無需再訪問服務數據節(jié)點.
3.3 農業(yè)大數據計算處理中心的設計
基于Hadoop的農業(yè)大數據管理平臺是一個功能足夠強大、便捷、快速的大數據處理平臺,整個平臺從數據采集、加工、處理分析、存儲、運營和維護提供一條龍服務,終端用戶無須知曉或關注底層如何實現和運維.
3.3.1 基于Map/Reduce并行計算框架農業(yè)大數據計算處理中心的設計
在Hadoop農業(yè)大數據平臺的數據計算處理中心以Map/Reduce并行計算框架作為基礎框架,在基礎框架上移植各種算法,可以實現各種業(yè)務邏輯,以此來滿足平臺大規(guī)模數據集的計算速度和進行數據挖掘.計算處理中心的結構如圖6所示.
圖 6 計算處理中心結構
Map/Reduce并行計算數據處理是各種數據處理和挖掘算法應用在平臺可在不知底層處理細節(jié)的情況下,提供簡易交互接口,實現多種并行計算.有很好的伸縮性和擴展性,當系統(tǒng)某一計算節(jié)點崩潰時,該計算框架會自動將崩潰節(jié)點的任務分配給其他計算節(jié)點;在平臺并行計算處理能力不足的情況下,可以便捷的增加計算節(jié)點,從而提高整個平臺的計算能力.
3.3.2 基于Map/Reduce農業(yè)數據挖掘解決方案
針對大數據具有海量性,多樣性,不規(guī)則性等特征,而對于特殊的農業(yè)領域的大數據來源于農作物的從生產到餐桌的整個過程,由于這些數據有類型眾多的土壤、品種復雜的農作物、頻發(fā)的病蟲害、不確定的氣候等諸多影響因素,因此,采集到的相關農業(yè)大數據具有不確定、不完全(數據隨機噪音)和稀疏性(數據的實用價值不高)等特征.要讓農業(yè)大數據在農業(yè)生產過程中的起到智能預警、智能決策、智能分析的作用,需要對農業(yè)大數據進行精準、高效的數據挖掘.對農業(yè)領域的數據常見的挖掘主要有:相關性分析、分類描述、聚類分析、偏差分析等,而在實際應用中最多的就是數據的分類.針對農業(yè)大數據的特征,一般選擇分類回歸樹CART(Classification and Regression Trees)算法.
CART算法是以統(tǒng)計學為理論基礎,采用的非參數方法,以典型的二叉樹結構為決策樹,即由一個根節(jié)點和若干屬性節(jié)點、葉結點組成,其分類結果易于理解和掌握.首先所有的樣本集都在根節(jié)點內,然后按照一定的分割方法,根節(jié)點被分割成兩個子節(jié)點,樣本集也被分割到兩個子節(jié)點內,在相同的分割規(guī)則下,遞歸的對子節(jié)點進行分割,直到不可以再分割為止[12].
基于Map Reduce框架農業(yè)核心應用以及提取價值數據,關鍵在于各種算法的應用,當然有一些算法如果直接移植到Map/Reduce分布式計算框架,是沒有辦法完成,則需要對某些算法做一定的改進.例如要進行數據的價值挖掘所使用的CART算法,需要改進后才能夠將CART算法移植到Map/Reduce分布式計算框架.
CART算法本是為解決串行運算問題而設計的,因具有其特殊性,在此根據農業(yè)大數據的特性可以將CART算法并行設計,基于Hadoop平臺的農業(yè)數據挖掘CART算法的并行化設計如下:
1)計算各個屬性Gini指數(是判斷最佳分裂屬性的度量)時的并行,屬性的并行可以通過Hadoop中Map階段對定義Partitioner來實現,因為只有相同節(jié)點上的相同屬性表才會被分發(fā)到同一個Reducer進行處理.
2)構建決策樹時節(jié)點的并行,從屬性的并行設計可知,同一個節(jié)點的所有屬性表是一個整體,一起分割的,節(jié)點分割完成后屬性表則會附在新的節(jié)點上,并繼續(xù)進行分割.而處在同一層節(jié)點之間的產生是不存在相互關聯的,由此在構造決策樹時可以對位于樹的同一層的所有節(jié)點進行并行處理.
3)排序的并行,在Hadoop平臺中,Map/Reduce在每次分發(fā)數據時都會對其進行排序,CART算法對連續(xù)值進行預排序處理,相鄰兩個屬性值的中間點作為計算Gini指數值,計算時先判斷連續(xù)性,再根據屬性值的大小進行排序.對于農業(yè)大數據而言,數據連續(xù)值的分布情況以及排序算法的選擇對數據挖掘的最終效果會產生很大的影響,在通過CART算法并行設計和改進后,使其成為并行的算法再結合Hadoop中的Map/Reduce并行計算框架并行化實現,使得整個基于Hadoop的農業(yè)大數據平臺良好的并行化,具有較高的數據處理和數據挖掘的能力,系統(tǒng)的性能也能發(fā)揮極致.
本文對Hadoop分布式架構以及其兩個核心的引擎HDFS(分布式文件系統(tǒng))和Map/Reduce(分布式處理模型)、HBase進行詳細的分析研究,提出了Hadoop分布式架構大數據平臺.結合成都農業(yè)科技職業(yè)學院彭州葛仙山示范園實際情況,對農業(yè)大數據的特點進行分析研究,針對現有農業(yè)大數據在存儲和處理過程中存在具體問題,構建出高性能的基于Hadoop農業(yè)大數據管理平臺,以實現農業(yè)大數據的安全可靠存儲、智能化管理與應用,最終達到對農業(yè)生產過程的智能預警、智能決策和智能分析的目的,同時為農戶提供專業(yè)指導.在以后的研究工作中,將在Hadoop的農業(yè)大數據平臺下對有關業(yè)務功能算法的研究,將其中的作物病蟲害檢查算法、病蟲害診斷算法、價值挖掘算法(CART)等算法進行分析、設計并實現并行化運行.
1阿爾文托夫勒.第三次浪潮.北京:新華出版社,2006.
2農業(yè)部農業(yè)科技發(fā)展“十二五”規(guī)劃(2011-2015年). http://www.ccfc.zju.edu.cn/a/zhengcefagui/2012/0406/9978.h tml.[2012-04-06].
3李秀峰,陳守合,郭雷風.大數據時代農業(yè)信息服務的技術創(chuàng)新.中國農業(yè)科技導報,2014,(4):10–15.
4孫忠富,杜克明,鄭飛翔,尹首一.大數據在智慧農業(yè)中研究與應用展望.中國農業(yè)科技導報,2013,(6):63–71.
5張永軍.Hadoop分布式架構的研究與實際應用[碩士學位論文].北京:北京郵電大學,2015.
6 Fan R.Hadoop capacity scheduler.Hadoop Taiwan User Group meeting2009,Yahoo!2009.
7 Dean J.Experiences with MapReduce,an abstraction for LargeScale computation.Proc.15th International Conference on ParallelArchitectures and Compilation Techniques.2006.
8 Hadoop.The apache software foundation.http://Hadoop. apache.org/core.
9周俊清.基于Hadoop平臺的分布式任務調度算法研究[碩士學位論文].長沙:湖南大學,2012.
10溫孚江.農業(yè)大數據研究的戰(zhàn)略意義與協同機制.高等農業(yè)教育,2013,(11):3–6.
11 Lam C.Hadoop in action.Manning Publications Company, 2010.
12柴進.基于Hadoop農業(yè)數據挖掘系統(tǒng)的研究與實現[碩士學位論文].北京:北京工業(yè)大學,2015.
13 Bennett JML.Agricultural big data:utilisation to discover the unknown and instigate practice change.Farm Policy Journal,2015,12(1):43–50.
14戴小文,漆雁斌,陳文寬.農業(yè)現代化背景下大數據分析在農業(yè)經濟中的應用研究.四川師范大學學報(社會科學版), 2015,(2):70–77.
Design of the Management Platform forAgriculture Big Data Based on Hadoop
WEN Yan
(ChengduAgricultural Science and Technology Vocational College,Chengdu 611130,China)
The rapid development of modern information technology makes the amount of every day data increase at the speed of TB,how to effectively use and manage the big data with explosive growth?It is a problem need to be solved urgently.Big data has penetrated into various fields including agriculture,with the agricultural informatization construction and the application of Internet technology in agricultural production,resulting in a large amount of agricultural data to be stored,managed and processed.Based on the background of the construction of agricultural informatization in Pengzhou Gexian mountain agricultural demonstration base of Chengdu agricultural science and technology vocational college,according to the demand of informatization construction of agriculture,we build high performance agricultural big data management platform based on Hadoop,realizing the agricultural big data safe and reliable storage,intelligent management and application.And ultimately we achieve the purpose of early intelligent warning of agricultural production,intelligent decision-making and intelligent analysis,providing professional guidance to farmers.This lays the foundation for China to enter the intelligent agricultural era based on fine planting,precise control,visual management and intelligent decision-making.
agriculture big data;Hadoop;Map/Reduce;HDFS;wisdom agriculture
四川省教育廳2016年四川省高校人文社科學重點研究基地科研項目(TCCSJY-2016-C16);成都農業(yè)科技職業(yè)學院科研項目(成農院[2016]1-24)
2016-08-10;收到修改稿時間:2016-09-23
10.15888/j.cnki.csa.005737