• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于NoSQL數(shù)據(jù)庫的農(nóng)田物聯(lián)網(wǎng)云存儲系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2019-01-17 08:19:58馬新明
      農(nóng)業(yè)工程學(xué)報 2019年1期
      關(guān)鍵詞:海量事務(wù)結(jié)構(gòu)化

      許 鑫,時 雷,何 龍,張 浩※,馬新明,3

      ?

      基于NoSQL數(shù)據(jù)庫的農(nóng)田物聯(lián)網(wǎng)云存儲系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      許 鑫1,2,時 雷1,何 龍1,張 浩1,2※,馬新明1,2,3

      (1. 河南農(nóng)業(yè)大學(xué)信息與管理科學(xué)學(xué)院,鄭州 450002;2. 河南糧食作物協(xié)同創(chuàng)新中心,鄭州 450002; 3.農(nóng)業(yè)部黃淮海農(nóng)業(yè)信息技術(shù)科學(xué)觀測實(shí)驗(yàn)站,鄭州 450002)

      為了解決農(nóng)田物聯(lián)網(wǎng)大量圖像、視頻和傳感器等結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)實(shí)時處理與寫入問題,該文基于分布式存儲與NoSQL(Not Only SQL)技術(shù),結(jié)合農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)特征,利用HDFS(Hadoop Distributed File System)和HBase(Hadoop Database)存儲非結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù),基于Redis緩存服務(wù),設(shè)計(jì)了三層物聯(lián)網(wǎng)數(shù)據(jù)云存儲框架,實(shí)現(xiàn)了海量農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)存儲中的業(yè)務(wù)處理、事務(wù)處理、圖片打包與索引、負(fù)載均衡等關(guān)鍵技術(shù)。面對復(fù)雜業(yè)務(wù)下的事務(wù)數(shù)據(jù)一致性,該文采用基于HLock的樂觀鎖機(jī)制,實(shí)現(xiàn)了HBase對強(qiáng)事務(wù)性的支持,經(jīng)過與傳統(tǒng)MySQL集群事務(wù)對比測試,當(dāng)數(shù)據(jù)量級在500萬時,數(shù)據(jù)讀取效率提升達(dá)35.75%。為了提高農(nóng)田物聯(lián)網(wǎng)中大量的小圖片和小文件處理效率,基于圖片打包合并策略,利用SequenceFile技術(shù)實(shí)現(xiàn)物聯(lián)圖片的快速索引讀寫技術(shù),與原生HDFS存儲效率相比,讀寫效率提升30%以上。該研究可以為海量農(nóng)業(yè)物聯(lián)網(wǎng)數(shù)據(jù)的存儲和管理提供技術(shù)參考和理論支撐。

      農(nóng)田;數(shù)據(jù)存儲系統(tǒng);管理;物聯(lián)網(wǎng);NoSQL;Hadoop;HBase;云存儲

      0 引 言

      隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,物聯(lián)網(wǎng)在農(nóng)田數(shù)據(jù)采集、環(huán)境監(jiān)測、智能灌溉、災(zāi)害和苗情診斷、精細(xì)作業(yè)等生產(chǎn)過程中得到了廣泛應(yīng)用[1-7]。學(xué)界對農(nóng)田物聯(lián)網(wǎng)系統(tǒng)的設(shè)計(jì)、組網(wǎng)、數(shù)據(jù)傳輸、實(shí)現(xiàn)等方面也有了長足的發(fā)展[8-14],同時農(nóng)田物聯(lián)網(wǎng)中的光、溫、土壤墑情、pH值等傳感器和視頻監(jiān)控設(shè)備產(chǎn)生了海量的數(shù)據(jù),如何高效存儲和管理海量數(shù)據(jù)是當(dāng)前農(nóng)業(yè)物聯(lián)網(wǎng)研究的核心[15-21]。

      農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)融合了作物生長的地域性和季節(jié)性等特征,導(dǎo)致農(nóng)田物聯(lián)網(wǎng)在應(yīng)用層面上需考慮地域、天氣、續(xù)航、傳輸接口與設(shè)備等因素的影響。尤其是在農(nóng)田物聯(lián)網(wǎng)系統(tǒng)的設(shè)計(jì)上,需要兼顧作物產(chǎn)前、產(chǎn)中和產(chǎn)后的各個環(huán)節(jié)。其系統(tǒng)的動態(tài)擴(kuò)展性要求較高,對數(shù)據(jù)存儲模型的通用性要求也較高。目前,農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)的海量、異構(gòu)及非結(jié)構(gòu)趨勢明顯[22]。

      在存儲農(nóng)田物聯(lián)網(wǎng)中的海量數(shù)據(jù)方面,縱向增加數(shù)據(jù)節(jié)點(diǎn)擴(kuò)容能力有限,且在海量數(shù)據(jù)處理會造成性能瓶頸,而采用分布式云存儲方案,通過橫向擴(kuò)展動態(tài)接入新的存儲節(jié)點(diǎn),是一種理想的解決方案。以Hadoop生態(tài)圈為代表的開源分布式存儲與計(jì)算平臺逐漸被各行業(yè)認(rèn)可和應(yīng)用,其具有海量存儲、高容錯性、高性能、高擴(kuò)展性等特點(diǎn),可滿足當(dāng)前農(nóng)田物聯(lián)網(wǎng)海量數(shù)據(jù)存儲與管理的需求。

      農(nóng)田物聯(lián)網(wǎng)中產(chǎn)生的大量小文件,如圖像、傳感器文本和視頻等非結(jié)構(gòu)化數(shù)據(jù)的實(shí)時處理與寫入,是傳統(tǒng)關(guān)系數(shù)據(jù)庫難以解決的問題。以HBase為代表的NoSQL(Not Only SQL)數(shù)據(jù)庫產(chǎn)品的分布式、面向列、可伸縮的特點(diǎn),對圖片、視頻等非結(jié)構(gòu)化數(shù)據(jù)的存儲具有天然的優(yōu)勢,同時,農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)天然的異構(gòu)性,關(guān)系型數(shù)據(jù)庫的關(guān)系模型難以滿足新傳感器的接入,不利于系統(tǒng)擴(kuò)展,而NoSQL技術(shù)支持動態(tài)的數(shù)據(jù)模型,可以應(yīng)對農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)采集設(shè)備種類繁多、類型繁雜以及后期擴(kuò)展問題[23]。

      本文基于Hadoop生態(tài)圈,利用分布式云存儲及NoSQL技術(shù),構(gòu)建海量存儲、高性能、安全可靠、易擴(kuò)展的農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)云存儲系統(tǒng),并深入剖析了農(nóng)田物聯(lián)網(wǎng)的存儲事務(wù)一致性、小文件處理等問題,以期為海量農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)存儲提供解決方案。

      1 系統(tǒng)框架設(shè)計(jì)

      從農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)特征出發(fā),結(jié)合Hadoop平臺,考慮系統(tǒng)的安全可靠、高效讀寫、數(shù)據(jù)轉(zhuǎn)換、事務(wù)處理、小文件處理、緩存策略、負(fù)載均衡、成本及擴(kuò)容等關(guān)鍵因素[24]。自下而上將系統(tǒng)分為3層:存儲層、服務(wù)層及應(yīng)用層。系統(tǒng)總體結(jié)構(gòu)如圖1所示。

      圖1 農(nóng)田物聯(lián)網(wǎng)云存儲系統(tǒng)框架

      存儲層是農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)存儲模型的最底層,其主要作用是用來持久化存儲數(shù)據(jù)。該層包括分布式文件系統(tǒng)HDFS、面向列的HBase數(shù)據(jù)庫以及Redis緩存模塊。HDFS用來存儲農(nóng)田物聯(lián)網(wǎng)系統(tǒng)中圖片、視頻等非結(jié)構(gòu)化數(shù)據(jù);HBase數(shù)據(jù)庫用來存儲農(nóng)田物聯(lián)網(wǎng)系統(tǒng)中氣象、墑情等結(jié)構(gòu)化數(shù)據(jù);Redis數(shù)據(jù)庫用來作為底層存儲的緩存服務(wù)器[25]。

      服務(wù)層位于存儲層和應(yīng)用層的中間,作用是為上層的業(yè)務(wù)處理和下層數(shù)據(jù)存儲訪問提供服務(wù)。服務(wù)層包括事務(wù)處理模塊、數(shù)據(jù)轉(zhuǎn)換模塊、圖片合并與索引模塊。事務(wù)處理模塊用來優(yōu)化HBase數(shù)據(jù)庫對事務(wù)ACID(atomicity,consistency, isolation,durability)特性的支持;數(shù)據(jù)轉(zhuǎn)換模塊是對物聯(lián)網(wǎng)設(shè)備元數(shù)據(jù)信息的轉(zhuǎn)換,由于多源傳感器數(shù)據(jù)格式不一定一致,尤其是隨業(yè)務(wù)發(fā)展新增的傳感器,利用數(shù)據(jù)轉(zhuǎn)換模塊將傳感器的元數(shù)據(jù)信息轉(zhuǎn)換成存儲模型能夠接受的格式,可以有效提高系統(tǒng)的后期擴(kuò)展性能。圖片合并與索引模塊用來解決Hadoop在處理海量小文件時的不足,在設(shè)計(jì)數(shù)據(jù)存儲模型時針對農(nóng)田物聯(lián)網(wǎng)采集的海量圖片進(jìn)行合并,并構(gòu)建合并后的索引方案,將圖片元數(shù)據(jù)信息寫到HBase中[26],方便圖片的查詢。

      應(yīng)用層主要面向農(nóng)田物聯(lián)網(wǎng)系統(tǒng)中的各種業(yè)務(wù)處理并提供統(tǒng)一的數(shù)據(jù)訪問接口。業(yè)務(wù)處理模塊對統(tǒng)一數(shù)據(jù)訪問接口傳遞過來的指令信息進(jìn)行判斷并確定業(yè)務(wù)類型。根據(jù)農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)特征將具體業(yè)務(wù)分為結(jié)構(gòu)化數(shù)據(jù)讀寫、文本文件讀寫、圖像讀寫及視頻讀寫4大類。將應(yīng)用層單獨(dú)獨(dú)立于其他層之上,可以達(dá)到業(yè)務(wù)與服務(wù)解耦的目的。

      負(fù)載均衡模塊部署在整個農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)存儲模型中。負(fù)載均衡模塊在應(yīng)用層的作用是將前端用戶的高并發(fā)請求分載到多個服務(wù)器上;在服務(wù)層作用于MapReduce實(shí)現(xiàn)大文件分割與小文件合并等并行處理場景;在存儲層的作用是平衡農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)分配存儲節(jié)點(diǎn)問題。設(shè)計(jì)負(fù)載均衡模塊可以保證服務(wù)器集群在處理極端問題時穩(wěn)定高效的運(yùn)行[27]。

      2 關(guān)鍵技術(shù)設(shè)計(jì)

      2.1 業(yè)務(wù)流程設(shè)計(jì)

      針對結(jié)構(gòu)化數(shù)據(jù)、文本、圖像及視頻4大類數(shù)據(jù)的讀寫業(yè)務(wù)需要不同的流程來處理。

      1)數(shù)據(jù)寫入業(yè)務(wù)處理

      業(yè)務(wù)處理模塊需要對統(tǒng)一數(shù)據(jù)訪問接口寫入的數(shù)據(jù)進(jìn)行類型判斷。農(nóng)田物聯(lián)網(wǎng)系統(tǒng)中的數(shù)據(jù)類型主要包括氣象和墑情等結(jié)構(gòu)化數(shù)據(jù)、圖片、視頻及文本文件4大類。其中文本文件又包括Excel文件、XML文件與TXT文件等。數(shù)據(jù)寫入業(yè)務(wù)處理流程如圖2所示。

      當(dāng)寫入數(shù)據(jù)類型為圖片時,采取圖片“合并”策略存儲。首先把文件寫入圖片隊(duì)列,然后判斷圖片隊(duì)列累計(jì)文件大小是否夠一個“Block”的大小,如果不夠一個“Block”的大小,等待后續(xù)圖片寫入;如果大于一個“Block”的大小,進(jìn)行圖片合并,建立索引信息并把圖片元數(shù)據(jù)信息寫入HBase中,圖片數(shù)據(jù)寫入HDFS和Redis緩存服務(wù)器中[28]。

      當(dāng)寫入數(shù)據(jù)類型為視頻時,判斷其大小是否超過一個“Block”的大小,如果小于一個“Block”的大小,直接按照一個“Block”來處理;如果大于一個“Block”的大小,采用Hadoop提供的“分塊”策略進(jìn)行處理,并將索引信息直接寫入NameNode主節(jié)點(diǎn)中。視頻數(shù)據(jù)最終寫入HDFS和Redis緩存服務(wù)器中。

      當(dāng)寫入數(shù)據(jù)類型為文本文件時,需要服務(wù)層數(shù)據(jù)轉(zhuǎn)換模塊中相應(yīng)的Parser解析進(jìn)行處理。

      當(dāng)寫入數(shù)據(jù)類型為氣象、墑情等結(jié)構(gòu)化數(shù)據(jù)時,通過結(jié)構(gòu)化數(shù)據(jù)訪問接口(structured data access interface)直接將數(shù)據(jù)寫入HBase數(shù)據(jù)庫及Redis緩存服務(wù)器中。

      圖2 數(shù)據(jù)寫入業(yè)務(wù)處理流程

      2)數(shù)據(jù)讀取業(yè)務(wù)處理

      業(yè)務(wù)處理模塊在處理數(shù)據(jù)讀取業(yè)務(wù)時流程優(yōu)先訪問Redis緩存數(shù)據(jù),并進(jìn)行判斷是否需要需要訪問HBase和HDFS數(shù)據(jù),如圖3所示。

      圖3 數(shù)據(jù)讀取業(yè)務(wù)處理流程

      從模型存儲層可以看出,農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)都是存儲在HDFS、HBase及Redis緩存服務(wù)器中,其中Redis緩存服務(wù)器讀取效率最高,所以優(yōu)先訪問Redis緩存數(shù)據(jù)庫中的數(shù)據(jù);若Redis數(shù)據(jù)庫中沒有數(shù)據(jù),再訪問HBase數(shù)據(jù)庫中的數(shù)據(jù);若HBase中也沒有要讀取的數(shù)據(jù),則訪問Hadoop底層HDFS中的數(shù)據(jù)。

      2.2 事務(wù)處理

      由于HBase一般搭建在分布式集群環(huán)境下,其在跨行事務(wù)及長事務(wù)處理的可靠性上受到了制約,只能提供基礎(chǔ)級別的弱事務(wù)性處理,無法對跨行事務(wù)及長事務(wù)精準(zhǔn)有序地處理,很難保證像海量數(shù)據(jù)分析等復(fù)雜業(yè)務(wù)下的數(shù)據(jù)一致性。目前,解決NoSQL數(shù)據(jù)庫跨行事務(wù)及長事務(wù)處理的方法主要有2種方案:一種是分布式有鎖方案,如Google公司為了解決BigTable海量數(shù)據(jù)的增量更新操作開發(fā)的Percolator[29]框架;另一種是集中式無鎖方案,如為分布式key-value數(shù)據(jù)庫提供強(qiáng)事務(wù)性支持的Omid開源框架[30]。

      分布式有鎖方案通過侵入數(shù)據(jù)方式在表結(jié)構(gòu)中增加鎖協(xié)議算法,采用該方案可以保證事務(wù)執(zhí)行的強(qiáng)ACID特性,但很難避免因?yàn)槟硞€事務(wù)鎖阻塞影響其他事務(wù)的正常運(yùn)行,在性能及時效性上會受到影響。因此,在不改變HBase底層存儲的基礎(chǔ)上,采用犧牲部分性能保證整個存儲系統(tǒng)可靠性的分布式有鎖方案。分布式有鎖方案又分為悲觀鎖和樂觀鎖2種。

      悲觀鎖是大部分關(guān)系型數(shù)據(jù)庫提供的鎖機(jī)制,實(shí)現(xiàn)了事務(wù)的完全串行化。但是由于悲觀鎖的弱并發(fā)性能,尤其是在高并發(fā)的情況下,悲觀鎖的額外開銷是無法承受的。樂觀鎖在一定程度上解決了悲觀鎖的弊端,通過樂觀鎖機(jī)制可以有效降低長事務(wù)中加鎖的額外開銷,可以有效提高系統(tǒng)的整體性能,增加系統(tǒng)的整體吞吐量。所以,在對性能及吞吐量要求較高 HBase數(shù)據(jù)庫事務(wù)處理中,樂觀鎖方案是較好的選擇。

      本文通過樂觀鎖來保證HBase長事務(wù)的ACID特性,需要在HBase表結(jié)構(gòu)中添加一個HLock列,HLock列是一種結(jié)構(gòu)體,其結(jié)構(gòu)設(shè)計(jì)如表1所示。

      通過設(shè)計(jì)的HLock鎖結(jié)構(gòu)體,可以在不修改HBase底層存儲結(jié)構(gòu)的前提下通過事務(wù)處理模塊保證農(nóng)田物聯(lián)網(wǎng)系統(tǒng)中對強(qiáng)事務(wù)性的要求,事務(wù)處理模塊包括讀數(shù)據(jù)和寫數(shù)據(jù)2個流程。

      表1 基于樂觀鎖的HLock結(jié)構(gòu)體

      讀數(shù)據(jù)流程如下:

      1)先處理單元讀取事務(wù)中所需數(shù)據(jù)的HLock列,若其State狀態(tài)值為FREE,取得并返回數(shù)據(jù)結(jié)果;

      2)若HLock列的State狀態(tài)值不為FREE,查看鎖結(jié)構(gòu)體中ExpiryTime的值,若ExpiryTime值還未過期,則回滾本事務(wù);

      3)若ExpiryTime值已經(jīng)過期,則回滾此HLock所屬的上一個版本事務(wù)數(shù)據(jù),清除過期事務(wù)所有HLock值,然后執(zhí)行當(dāng)前事務(wù)。

      寫數(shù)據(jù)流程如下:

      1)先處理單元讀取事務(wù)中所需數(shù)據(jù)的HLock列,若其State狀態(tài)值為FREE,則跳轉(zhuǎn)到4中;

      2)若HLock列的State狀態(tài)值不為FREE,查看鎖結(jié)構(gòu)體中ExpiryTime的值,若ExpiryTime值還未過期,則回滾本事務(wù);

      3)若ExpiryTime值已經(jīng)過期,則回滾此HLock所屬的上一個版本事務(wù)數(shù)據(jù),清除過期事務(wù)所有HLock值,然后執(zhí)行當(dāng)前事務(wù);

      4)在ExpiryTime值未過期的情況下,把寫入的數(shù)據(jù)先存入緩存模塊中,等待寫入數(shù)據(jù)庫;

      5)在事務(wù)提交階段,若操作數(shù)據(jù)的HLock鎖沒有被改變,則把緩存中的待寫入數(shù)據(jù)存儲到HBase數(shù)據(jù)庫中。

      事務(wù)處理模塊的完整流程如圖4所示。

      整個事務(wù)提交過程分2個階段:Prewrite階段與ChangeState階段。事務(wù)提交詳細(xì)流程如下:

      1)在Prewrite階段,事務(wù)處理模塊隨機(jī)選擇本事務(wù)中的一行數(shù)據(jù),將其設(shè)置為主鎖,其余行設(shè)置為副鎖;

      2)事務(wù)處理模塊生成PrewriteTimestamp及CurrentTimestamp 2個時間戳;

      3)事務(wù)處理模塊將所有PUT操作的行數(shù)據(jù)從緩存中寫入HBase,更新其HLock的狀態(tài)State為PREWRITTERN;

      4)事務(wù)處理模塊將所有REMOVE操作的行數(shù)據(jù)HLock的狀態(tài)State為PREWRITTERN,此時不做DELETE操作;

      5)在ChangeState階段,事務(wù)處理模塊先將主鎖所在行鎖狀態(tài)State改為COMMITTED狀態(tài);

      6)事務(wù)處理模塊遍歷本事務(wù)涉及的所有行,如果Operation類型為REMOVE,進(jìn)行DELETE操作,刪除REMOVE標(biāo)志行所有版本的數(shù)據(jù),不可恢復(fù),因此將REMOVE操作放在COMMITTED之后;

      7)將所有非主鎖所在行狀態(tài)State改為FREE;

      8)改變主鎖State狀態(tài)為FREE;

      9)完成事務(wù)。

      圖4 事務(wù)處理流程

      在宕機(jī)處理上,通過HLock鎖的設(shè)計(jì),可以保證HBase在長事務(wù)讀寫過程中的事務(wù)性,為了降低線程阻塞帶來的額外開銷,事務(wù)處理模塊并不需要定時主動清理壞死的HLock鎖,而是將該任務(wù)交給新事務(wù)去處理。通過可配置ExpiryTime屬性可以獲取舊事務(wù)是否為線程阻塞事務(wù)。如果ExpiryTime超時,新事務(wù)會首先檢查超時事務(wù)的主鎖,若主鎖狀態(tài)為COMMITTED,則說明超時事務(wù)已經(jīng)提交,事務(wù)處理模塊可以根據(jù)超時事務(wù)HLock列的副鎖信息完成整個事務(wù)的提交過程;若主鎖State標(biāo)志為其他狀態(tài),則事務(wù)處理模塊根據(jù)主鎖信息完成超時事務(wù)的回滾。

      在集群時間同步上,由于所有的TimeStamp都是由系統(tǒng)機(jī)器的本地時間生成,在一個龐大的集群系統(tǒng)中,很難保證所有機(jī)器節(jié)點(diǎn)時間的一致,這就有可能因?yàn)闀r間混亂造成事務(wù)的錯誤。針對事務(wù)對時間的高準(zhǔn)確性與高統(tǒng)一性要求,在本文設(shè)計(jì)方案中,采用在Hadoop集群中搭建NTP服務(wù)器[31]的方式為集群提高全局唯一的時間戳服務(wù),以保證各個機(jī)器節(jié)點(diǎn)的時間一致性。

      2.3 圖片合并索引設(shè)計(jì)

      由于農(nóng)田物聯(lián)網(wǎng)圖片中大多是比較小的文件,針對海量小文件圖片合并算法有4種處理方法,分別是TextInputFormat、CombineFileInputFormat、SequenceFile和Harballing[32]。由于這4種處理方法的應(yīng)用場景不同,考慮到需要重新設(shè)計(jì)海量圖片的索引信息,選擇了更為合適的SequenceFile技術(shù)。SequenceFile是序列化后的二進(jìn)制文件,使用該技術(shù)的優(yōu)點(diǎn)是它記錄的是形式的鍵值對列表,使用SequenceFile技術(shù)將多張圖片合并成一個“Block”時,key可以用來記錄圖片的名稱,value可以用來記錄圖片的內(nèi)容。并且SequenceFile技術(shù)支持?jǐn)?shù)據(jù)壓縮,有利于節(jié)省磁盤空間,同時還能減少網(wǎng)絡(luò)傳輸?shù)臅r間。圖片合并流程如圖5所示。

      由于SequenceFile中使用FileName作為key,F(xiàn)ile contents作為value,每一個文件都可以通過FileName映射到SequenceFile中,所以針對圖片的FileName進(jìn)行編碼設(shè)計(jì)。將FileName分為3個部分:BlockID、FileID與offset。

      圖5 圖片合并流程

      BlockID代表合并后的SequenceFile所在的“Block”,也代表著DataNode上的一個數(shù)據(jù)塊,NameNode可以根據(jù)BlockID信息確定DataNode的地址,一個“Block”中可能包含有多個SequenceFile,每一個SequenceFile又包含這多張圖片。所以采用FileID來表示一個“Block”中的哪一個具體的SequenceFile,使用offset來表示圖片在一個SequenceFile中的偏移量。

      當(dāng)客戶端通過圖片文件名向服務(wù)端發(fā)起讀取請求時,首先通過前端處理解析圖片文件名,傳給服務(wù)端BlockID、FileID與offset的值;Master主機(jī)可以根據(jù)BlockID確定到DataNode主機(jī)中的某個“Block”文件并把DataNode地址發(fā)送給客戶端;根據(jù)FileID可以確定該“Block”文件中的某個SequenceFile;根據(jù)offset偏移量的值可以確定所要讀取圖片在該SequenceFile中的位置;最后客戶端通過前端解析內(nèi)容與DataNode地址完成圖片的讀取。

      這樣設(shè)計(jì)可以有效減少HBase數(shù)據(jù)庫中圖片元數(shù)據(jù)的信息,將圖片存儲信息以編碼的方式保存到文件名中,并通過前端文件名解析代碼直接實(shí)現(xiàn)對DataNode節(jié)點(diǎn)的數(shù)據(jù)訪問,可以減少一次去HBase數(shù)據(jù)庫中讀取圖片存儲信息的過程,通過offset偏移量的值可以將磁頭直接定位到SequenceFile中圖片位置開始讀取。

      3 系統(tǒng)實(shí)現(xiàn)與性能測試

      在系統(tǒng)設(shè)計(jì)的基礎(chǔ)上,利用Web Service和物聯(lián)網(wǎng)數(shù)據(jù)采集技術(shù),于2016年研發(fā)了河南省農(nóng)田物聯(lián)網(wǎng)監(jiān)控系統(tǒng),系統(tǒng)在許昌長葛、滑縣、漯河、南陽方城等縣市農(nóng)田布設(shè)60余個農(nóng)田物聯(lián)網(wǎng)監(jiān)測站點(diǎn),系統(tǒng)實(shí)現(xiàn)了小麥生產(chǎn)的全過程物聯(lián)網(wǎng)實(shí)時土壤溫濕度、空氣溫濕度、降雨、風(fēng)速風(fēng)向等田間小氣候和長勢圖片的實(shí)時監(jiān)測,其中田間小氣候數(shù)據(jù),系統(tǒng)運(yùn)行以來數(shù)據(jù)規(guī)模在30 TB以上,實(shí)現(xiàn)了各個站點(diǎn)及設(shè)備的管理、物聯(lián)網(wǎng)數(shù)據(jù)管理、數(shù)據(jù)統(tǒng)計(jì)分析、可視化展示等功能,數(shù)據(jù)監(jiān)控管理界面如圖6所示。

      圖6 河南省農(nóng)田物聯(lián)網(wǎng)監(jiān)控系統(tǒng)界面

      該系統(tǒng)利用文中設(shè)計(jì)存儲模型,實(shí)現(xiàn)了物聯(lián)網(wǎng)數(shù)據(jù)的高效存儲和事務(wù)控制,同時利用設(shè)計(jì)的圖片打包策略,為后續(xù)的數(shù)據(jù)檢索、分析提供了快速有效的數(shù)據(jù)查詢機(jī)制。

      另外,為了驗(yàn)證該文技術(shù)方案的性能,基于不同數(shù)量級的數(shù)據(jù)對存儲模型,圖片合并策略進(jìn)行了性能測試。測試環(huán)境:千兆網(wǎng)絡(luò)、Inter Xeon(R) E5-4603V2處理器、32 GB內(nèi)存、5TB硬盤組成6節(jié)點(diǎn)Hadoop2.8集群環(huán)境下,搭建3節(jié)點(diǎn)HBase數(shù)據(jù)庫。

      3.1 結(jié)構(gòu)化數(shù)據(jù)存儲方案性能驗(yàn)證

      農(nóng)田物聯(lián)網(wǎng)中的土壤墑情和氣象傳感器數(shù)據(jù)多是結(jié)構(gòu)化的數(shù)據(jù),基于不同數(shù)量級數(shù)據(jù)與傳統(tǒng)關(guān)系型數(shù)據(jù)庫集群的性能進(jìn)行了對比測試,測試步驟如下:

      1)從物聯(lián)網(wǎng)監(jiān)測系統(tǒng)中隨機(jī)抽取氣象數(shù)據(jù),將數(shù)據(jù)分為5組,數(shù)據(jù)量分別是5萬條、50萬條、150萬條、300萬條、500萬條;

      2)將數(shù)據(jù)通過Structured Data Access Interface存儲接口寫入存儲系統(tǒng)中;

      3)將數(shù)據(jù)寫入相同硬件配置的3節(jié)點(diǎn)MySQL集群中;

      4)分別對MySQL集群和本文Hadoop存儲系統(tǒng)進(jìn)行10次查詢操作的查詢時間取平均值。

      MySQL與Hadoop集群查詢性能對比如圖7所示。

      可以看出,當(dāng)數(shù)據(jù)規(guī)模較小時,Hadoop集群效率無法體現(xiàn),甚至還落后于相同硬件配置下的MySQL集群。在300萬條數(shù)據(jù)級別時,MySQL集群與Hadoop集群效率基本持平。在500萬條數(shù)據(jù)級別時,Hadoop集群的效率就明顯高于MySQL集群,數(shù)據(jù)查詢效率提升達(dá)35.75%。

      圖7 MySQL集群與Hadoop集群數(shù)據(jù)查詢性能對比

      由于HBase是基于HDFS的NoSQL數(shù)據(jù)庫,在請求提交和處理過程中涉及到Hadoop的初始化、調(diào)度等因素,導(dǎo)致其在處理小數(shù)據(jù)量優(yōu)勢不明顯。但在高吞吐量、高并發(fā)的情況下,Hadoop集群處理海量數(shù)據(jù)的優(yōu)勢得以充分體現(xiàn),其平滑擴(kuò)容能力可以實(shí)時動態(tài)地增加集群機(jī)器數(shù)量。因此,基于NoSQL的農(nóng)田物聯(lián)網(wǎng)結(jié)構(gòu)化數(shù)據(jù)存儲方案在處理高并發(fā)量數(shù)據(jù)場景中是可行的。

      3.2 非結(jié)構(gòu)化數(shù)據(jù)存儲方案性能驗(yàn)證

      在非結(jié)構(gòu)化數(shù)據(jù)存儲方案性能驗(yàn)證部分,針對圖片合并策略性能驗(yàn)證,即驗(yàn)證原生HDFS與本文使用圖片合并索引的HDFS在讀寫效率上的對比測試。

      1)取物聯(lián)網(wǎng)系統(tǒng)采集的苗情圖像共計(jì)10萬張,大小在200~300 kB之間;

      2)將這些圖片以不同數(shù)量規(guī)模存入原生HDFS和采用圖片合并索引的HDFS中;

      3)分別進(jìn)行10次隨機(jī)讀寫操作,取10次平均值為最終時間消耗。讀操作時間記錄為sort,寫操作時間記錄為store,讀寫次數(shù)記錄為,平均讀寫時間計(jì)算規(guī)則為=(sort+store)/。

      原生HDFS與本文方案平均讀寫性能驗(yàn)證對比如圖8所示。

      圖8 圖片讀寫性能對比

      可以看出,隨著圖片數(shù)量的不斷增加,原生HDFS與本文方案讀寫平均時間差距逐漸增大?;赟equenceFile文件合并技術(shù)、圖片文件名的設(shè)計(jì)及索引優(yōu)化策略后的HDFS讀寫平均速度相比未優(yōu)化的原生HDFS性能提升30%以上,更適用于農(nóng)田物聯(lián)網(wǎng)中海量圖片存儲的場景。

      目前系統(tǒng)在河南省農(nóng)田物聯(lián)網(wǎng)監(jiān)測中進(jìn)行了應(yīng)用,在小麥生產(chǎn)過程中,提供實(shí)時的數(shù)據(jù)入庫存儲、管理、可視化,接入物聯(lián)網(wǎng)監(jiān)測站點(diǎn)60余個,每天產(chǎn)生農(nóng)田空氣、土壤溫濕度等數(shù)據(jù)量達(dá)10 000余條,產(chǎn)生物聯(lián)網(wǎng)圖片文件每天8 000余個,并在考慮接入更多的傳感器和監(jiān)測站點(diǎn),系統(tǒng)運(yùn)行狀況良好。

      系統(tǒng)可以廣泛應(yīng)用于農(nóng)田環(huán)境監(jiān)測,考慮的在以后的研究中,可以結(jié)合分布式計(jì)算與機(jī)器學(xué)習(xí)技術(shù)對物聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行實(shí)時的計(jì)算,為農(nóng)業(yè)生產(chǎn)提供實(shí)時的災(zāi)害預(yù)警與決策服務(wù)。

      4 結(jié) 論

      本文基于Hadoop生態(tài)圈,利用NoSQL技術(shù),設(shè)計(jì)了海量農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)存儲模型,對農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)存儲中的分布式數(shù)據(jù)讀寫、事務(wù)處理、圖片合并索引等關(guān)鍵技術(shù)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),研發(fā)了海量農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)存儲管理系統(tǒng)。

      考慮農(nóng)田物聯(lián)網(wǎng)實(shí)際應(yīng)用場景,利用HDFS存儲農(nóng)田物聯(lián)網(wǎng)系統(tǒng)中圖片、視頻等非結(jié)構(gòu)化數(shù)據(jù),HBase用來存儲農(nóng)田物聯(lián)網(wǎng)系統(tǒng)中氣象、墑情等結(jié)構(gòu)化數(shù)據(jù),實(shí)現(xiàn)了結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的一體化存儲與管理。

      為了保證海量農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)事務(wù)數(shù)據(jù)的一致性,本文設(shè)計(jì)的基于樂觀鎖的HLock分布式事務(wù)機(jī)制,實(shí)現(xiàn)了HBase對強(qiáng)事務(wù)的支持,經(jīng)過與傳統(tǒng)MySQL集群對比測試發(fā)現(xiàn),當(dāng)數(shù)據(jù)量級達(dá)500萬時,數(shù)據(jù)讀取效率提升達(dá)35.75%。為了提升農(nóng)田物聯(lián)網(wǎng)中大量的小圖片和小文件分布式讀寫效率,利用SequenceFile技術(shù)圖片小文件打包合并存儲策略,實(shí)現(xiàn)農(nóng)田物聯(lián)網(wǎng)圖片的快速存取,經(jīng)測試,采用該技術(shù)的HDFS讀寫速率比原生HDFS提升30%以上。

      綜上所述,基于NoSQL的海量農(nóng)田物聯(lián)網(wǎng)數(shù)據(jù)存儲方案可以滿足農(nóng)業(yè)物聯(lián)網(wǎng)海量、實(shí)時數(shù)據(jù)的存儲管理需求。

      [1] 李瑾,郭美榮,高亮亮. 農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)應(yīng)用及創(chuàng)新發(fā)展策略[J]. 農(nóng)業(yè)工程學(xué)報,2015,31(增刊2):200-209. Li Jin, Guo Meirong, Gao Liangliang. Application and innovation strategy of agricultural Internet of Things[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2015, 31(Supp.2): 200-209. (in Chinese with English abstract)

      [2] 張向飛. 基于農(nóng)業(yè)物聯(lián)網(wǎng)的數(shù)據(jù)智能傳輸與大田監(jiān)測應(yīng)用[D]. 上海:東華大學(xué),2016. Zhang Xiangfei. Intelligent Data Transmission And Field Monitoring Application Based on Agricultural Internet of Things[D]. Shanghai: Donghua University, 2016. (in Chinese with English abstract)

      [3] 杜克明,褚金翔,孫忠富,等. WebGIS在農(nóng)業(yè)環(huán)境物聯(lián)網(wǎng)監(jiān)測系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)[J]. 農(nóng)業(yè)工程學(xué)報,2016,32(4):171-178. Du Keming, Chu Jinxiang, Sun Zhongfu, et al. Design and implementation of monitoring system for agricultural environment based on WebGIS with Internet of Things[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2016, 32(4): 171-178. (in Chinese with English abstract)

      [4] 陳曉棟,原向陽,郭平毅,等. 農(nóng)業(yè)物聯(lián)網(wǎng)研究進(jìn)展與前景展望[J]. 中國農(nóng)業(yè)科技導(dǎo)報,2015,17(2):8-16. Chen Xiaodong, Yuan Xiangyang, Guo Pingyi, et al. Progress and prospect in agricultural internet of things[J]. Journal of Agricultural Science and Technology, 2015, 17(2): 8-16. (in Chinese with English abstract)

      [5] 王萍,趙宏亮,李佩林,等. 農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)在大豆生產(chǎn)中的應(yīng)用[J]. 大豆科學(xué),2018,37 (5):809-813. Wang Ping, Zhao Hongliang, Li Peilin, et al. Application of agricultural internet of things in soybean production[J]. Soybean Science, 2018, 37(5): 809-813. (in Chinese with English abstract)

      [6] 瞿榮錦,韋琮,趙麗娟. 基于物聯(lián)網(wǎng)技術(shù)的農(nóng)田環(huán)境監(jiān)測系統(tǒng)的研究與構(gòu)建[J]. 農(nóng)業(yè)開發(fā)與裝備,2018(9):104-105.

      [7] 琚書存,程文杰,徐建鵬,等. 農(nóng)業(yè)氣象物聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)[J]. 計(jì)算機(jī)與現(xiàn)代化,2018(9):105-109,117. Ju Shucun, Cheng Wenjie, Xu Jianpeng, et al. Data acquisition system for agricultural meteorological IOT[J]. Computer and Modernization, 2018(9): 105-109, 117. (in Chinese with English abstract)

      [8] 宋健瑋. 農(nóng)田灌溉監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 濟(jì)南:山東大學(xué),2017. Song Jianwei. Design and Implementation of Farmland Irrigation Monitoring and Control System[D]. Jinan: Shandong University, 2017. (in Chinese with English abstract)

      [9] 劉藝?yán)? 農(nóng)業(yè)物聯(lián)網(wǎng)監(jiān)控管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2016. Liu Yilei. The Design and Implementation of Agricultural IOT Monitor and Management system[D]. Beijing: Beijing University of Posts and Telecommunications, 2016. (in Chinese with English abstract)

      [10] 薛文龍. 基于物聯(lián)網(wǎng)的農(nóng)田環(huán)境信息采集控制與預(yù)警系統(tǒng)[J]. 江蘇農(nóng)業(yè)科學(xué),2017,45(9):195-198.

      [11] 蔡紹堂,麻碩琪,樂英高,等. 一種農(nóng)田環(huán)境遠(yuǎn)程監(jiān)測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法[J]. 四川理工學(xué)院學(xué)報:自然科學(xué)版,2018,31(2):69-74. Cai Shaotang, Ma Shuoqi, Le Yinggao, et al. Design and realization of remote monitoring system for farmland environment[J]. Journal of Sichuan University of Science & Engineering: Natural Science Edition, 2018, 31(2): 69-74. (in Chinese with English abstract)

      [12] 姜巖,段杰,王茂勵,等. 基于物聯(lián)網(wǎng)技術(shù)的水肥一體化智能管理系統(tǒng)[J]. 現(xiàn)代農(nóng)業(yè)科技,2018(16):279-281. Jiang Yan, Duan Jie, Wang Maoli, et al. Intelligent system of water and fertilizer based on internet of things technology[J]. Modern Agricultural Science and Technology, 2018(16): 279-281. (in Chinese with English abstract)

      [13] 徐識溥,劉勇,李雙喜,等. 基于農(nóng)業(yè)物聯(lián)網(wǎng)的農(nóng)田土壤環(huán)境監(jiān)測系統(tǒng)的研究與設(shè)計(jì)[J]. 中國農(nóng)學(xué)通報,2018,34(23):145-150. Xu Shipu, Liu Yong, Li Shuangxi, et al. Research and design of farmland soil environmental monitoring system based on agricultural IOT[J]. Chinese Agricultural Science Bulletin, 2018, 34(23): 145-150. (in Chinese with English abstract)

      [14] 李雅麗,魏峰遠(yuǎn),陳榮國,等. 基于物聯(lián)網(wǎng)和WebGIS果園監(jiān)測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 測繪與空間地理信息,2018,41(8):75-77,81. Li Yali, Wei Fengyuan, Chen Rongguo, et al. Design and application of orchard environment based on internet of things and WebGIS[J]. Geomatics & Spatial Information Technology, 2018, 41(8): 75-77, 81. (in Chinese with English abstract)

      [15] 郝行軍. 物聯(lián)網(wǎng)大數(shù)據(jù)存儲與管理技術(shù)研究[D]. 合肥:中國科學(xué)技術(shù)大學(xué),2017. Hao Xingjun. Reseach on Technology of Storage and Management of IOT Data[D]. Hefei: University of Science and Technology of China, 2017. (in Chinese with English abstract)

      [16] 陳威,郭書普. 中國農(nóng)業(yè)信息化技術(shù)發(fā)展現(xiàn)狀及存在的問題[J]. 農(nóng)業(yè)工程學(xué)報,2013,29(22):196-205. Chen Wei, Guo Shupu. Current situation and existing problems of agricultural informatization in China[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2013, 29(22): 196-205. (in Chinese with English abstract)

      [17] 趙立波,李凌霞,王旭. 物聯(lián)網(wǎng)海量異構(gòu)傳感器采樣數(shù)據(jù)存儲與查詢處理[J]. 軟件導(dǎo)刊,2017,16(12):182-183,187. Zhao Libo, Li Lingxia, Wang Xu. Storage and query processing of massive heterogeneous sensorsample data in internet of things[J]. Soft Guide, 2017, 16(12): 182-183, 187. (in Chinese with English abstract)

      [18] 鄭建忠,鄭建榮. 一種基于云計(jì)算技術(shù)的物聯(lián)網(wǎng)平臺設(shè)計(jì)[J]. 電力信息與通信技術(shù),2018,16(6):57-61. Zheng Jianzhong, Zheng Jianrong. Design of internet of things platform based on cloud computing technology[J]. Electric Power ICT, 2018, 16(6): 57-61. (in Chinese with English abstract)

      [19] 劉佩增. 面向物聯(lián)網(wǎng)多維度數(shù)據(jù)的多級存儲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2018. Liu Peizeng. The Design and Implementation of Multilevel Storage System Oriented to Multidimensional Data[D]. Beijing: Beijing University of Posts and Telecommunications, 2018. (in Chinese with English abstract)

      [20] 楊鵬,林俊暉. 一種基于MongoDB和Hadoop的海量非結(jié)構(gòu)化物聯(lián)網(wǎng)數(shù)據(jù)處理方案[J]. 微電子學(xué)與計(jì)算機(jī),2018,35(4):68-72,78. Yang Peng, Lin Junhui. A scheme for massive unstructured iot data processingbased on mongodb and hadoop[J]. Microelectronics & Computer, 2018, 35(4): 68-72, 78. (in Chinese with English abstract)

      [21] 李繼蕊,李小勇,高雅麗,等. 物聯(lián)網(wǎng)環(huán)境下數(shù)據(jù)轉(zhuǎn)發(fā)模型研究[J]. 軟件學(xué)報,2018,29(1):196-224. Li Jirui, Li Xiaoyong, Gao Yali, et al. Review on data forwarding model in internet of things[J]. Journal of Software, 2018, 29(1): 196-224. (in Chinese with English abstract)

      [22] 王順. 面向農(nóng)業(yè)物聯(lián)網(wǎng)的異構(gòu)數(shù)據(jù)存儲方法研究[D]. 鄭州:河南農(nóng)業(yè)大學(xué),2016. Wang Shun. Research on the Heterogeneous Data Storage Method for the Agricultural Internet of Things[D]. Zhengzhou: Henan Agricultural University, 2016. (in Chinese with English abstract)

      [23] 龔暢. 大數(shù)據(jù)下的NoSQL數(shù)據(jù)庫技術(shù)分析[J]. 信息記錄材料,2018,19(6):118-119.

      [24] 李林. 基于hadoop的海量圖片存儲模型的分析和設(shè)計(jì)[D]. 杭州:杭州電子科技大學(xué),2011. Li Lin. Design and Analysis of the Mass Image Storage Model Based on Hadoop[D]. Hangzhou: Hangzhou Dianzi University, 2011. (in Chinese with English abstract)

      [25] 盧冬海,何先波. 淺析NoSQL數(shù)據(jù)庫[J]. 中國西部科技,2011,10(2):14,15-16. Lu Donghai, He Xianbo. The analysis of NoSQL database[J]. Science and Technology of West China, 2011, 10(2): 14, 15-16. (in Chinese with English abstract)

      [26] 宋曉東. Hadoop分布式文件系統(tǒng)小文件數(shù)據(jù)存儲性能的優(yōu)化方法研究[D]. 北京:北京交通大學(xué),2017. Song Xiaodong. The Optimization Method Research for Small File Data Storage Performance on Hadoop Distributed File System[D]. Beijing: Beijing Jiaotong University, 2017. (in Chinese with English abstract)

      [27] 宋俊輝,馮巖. 負(fù)載均衡的分布式系統(tǒng)任務(wù)調(diào)度優(yōu)化算法[J]. 吉林大學(xué)學(xué)報:理學(xué)版,2017,55(2):383-387. Song Junhui, Feng Yan. Task Scheduling optimization algorithm in distributed system with load balancing[J]. Journal of Jilin University: Science Edition, 2017, 55(2): 383-387. (in Chinese with English abstract)

      [28] 譚臺哲,向云鵬. Hadoop平臺下海量圖像處理實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2017,38(4):976-980.

      Tan Taizhe, Xiang Yunpeng. Large-scale image processing implementation under hadoop platform[J]. Computer Engineering and Design, 2017,38(4):976-980. (in Chinese with English abstract)

      [29] Daniel Peng, Frank Dabek. Large-scale Incremental Processing Using Distributed Transactions and Notifications[C]// USENIX Symposium on Operating Systems Design and Implementation, October 4-6, 2010, Vancouver, BC: USENIX Association, c2010:251?264.

      [30] 苗星. HBase長事務(wù)實(shí)現(xiàn)方法研究[D]. 北京:北京交通大學(xué),2015. Miao Xing. The Research on Long Transaction Support for HBase[D]. Beijing: Beijing Jiaotong University, 2015. (in Chinese with English abstract)

      [31] 吳龍,唐軍. 一種ntp服務(wù)器時間同步的方法: CN102916799A[P]. 2013-02-06.

      [32] 李三淼,李龍澍. Hadoop中處理小文件的四種方法的性能分析[J]. 計(jì)算機(jī)工程與應(yīng)用,2016,52(9):44-49. Li Sanmiao, Li Longshu. Performance analysis of four methods for handling small files in Hadoop[J]. Computer Engineering and Applications, 2016, 52(9): 44-49. (in Chinese with English abstract)

      Design and implementation of cloud storage system for farmland internet of things based on NoSQL database

      Xu Xin1,2 ,Shi Lei1, He Long1, Zhang Hao1,2※, Ma Xinming1,2,3

      (1.450002,2.450002,; 3. HHH450002,)

      In order to solve the problems of storing large amounts of structured and unstructured data, such as images, video and sensors and so on, and real-time processing and writing, a data cloud storage system for farmland Internet of Things (IOT) with mass storage, high performance and easy expansion is constructed. Based on Hadoop platform, in this paper, we constructed a massive farmland IOT data cloud storage system by combining the characteristics of farmland IOT data, using distributed storage and NoSQL(Not Only SQL) technology. From the security, reliability, efficient reading and writing, data conversion, transaction processing, small file processing, cache strategy, load balancing and other issues of the system, HDFS was used to store unstructured data such as pictures and videos in the farmland IOT system, HBase was used to store structured data such as meteorology and moisture in the farmland IOT system, Redis was used in cache servers. Three layers of data cloud storage architecture for IOT were designed. The system classifies and processes video, image, text and structured data. For large video block storage, small file image packaging and merging storage, text classification and conversion strategy, unstructured data were written to HDFS, structured data were written to HBase, and Redis was used as the system cache to realize the data of the IOT writing and reading business. In distributed cluster environment, the reliability of cross-line transaction and long transaction processing was restricted. It was difficult to process cross-line transaction and long transaction accurately and orderly, and it was difficult to ensure data consistency in complex services such as massive data analysis. In this paper, a distributed transaction mechanism based on optimistic lock was designed. The transaction processing module cooperates with the HLock(optimistic lock) structure to control the state of the transaction. The NTP server guarantees the uniqueness of the transaction timestamp. The transaction ACID features, including reading and writing data, were solved. HBase's strong transactional support has been tested to improve query efficiency by 35.75% compared with traditional MySQL clusters when the data level was 5 million. Thus, NoSQL-based structured data storage scheme was feasible in dealing with high concurrent massive data scenarios. In order to solve the problem of a large number of small pictures and small files in the farmland IOT, the sampled pictures were packaged and measured. The “SequenceFile” technology was used to merge multiple pictures into a "Block" to realize the strategy of merging and storing small files. Fast index reading, compared with the original HDFS storage reading and writing efficiency, image file storage reading and writing efficiency improved by more than 30%. Therefore, based on the “SequenceFile” file merging technology, image file name design and index optimization strategy, it was suitable for large-scale image storage scene in the farmland IOT. The system had been applied to the monitoring system of farmland IOT in China Henan Province. It was distributed in more than 60 monitoring stations in Changge, Huaxian, Luohe and Fangcheng counties and cities, providing real-time data for storage, management and visualization, and considering the incorporation of more sensors and monitoring stations, the system was in good working order. In summary, based on Hadoop platform and NoSQL technology, we designed a massive farmland IOT data storage model, designed and implements the key technologies such as data reading and writing, transaction, picture packaging, index, load balancing module, and develops a massive farmland IOT data storage, management system. Based on NoSQL massive farmland IOT data storage scheme suitable for the storage and management needs of the IOT massive, real-time data, for farmland IOT storage transaction consistency, small file processing and other issues, for massive agricultural IOT data storage solutions. It can combine distributed computing and machine learning technology to compute the data of IOT in real time and provide real-time operation and decision-making services for agricultural production.

      farms; data storage equipment; management; IOT; NoSQL; Hadoop; HBase; cloud storage

      2018-09-25

      2018-11-23

      河南省科技創(chuàng)新杰出人才(184200510008);河南省現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)技術(shù)體系(S2010-01-G04);十三五國家重點(diǎn)研發(fā)計(jì)劃(2016YFD0300609);河南省重大科技專項(xiàng)(171100110600-01)

      許 鑫,河南鄧州人,講師,博士生,主要從事機(jī)器學(xué)習(xí)與精準(zhǔn)栽培技術(shù)研究。Email:xuxin468@163.com

      張 浩,河南鄧州人,副教授,主要從事分布式計(jì)算、數(shù)據(jù)集成與可視化研究。Email:zhanghaohnnd@126.com

      10.11975/j.issn.1002-6819.2019.01.021

      S126

      A

      1002-6819(2019)-01-0172-08

      許 鑫,時 雷,何 龍,張 浩,馬新明. 基于NoSQL數(shù)據(jù)庫的農(nóng)田物聯(lián)網(wǎng)云存儲系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 農(nóng)業(yè)工程學(xué)報,2019,35(1):172-179. doi:10.11975/j.issn.1002-6819.2019.01.021 http://www.tcsae.org

      Xu Xin, Shi Lei, He Long, Zhang Hao, Ma Xinming. Design and implementation of cloud storage system for farmland internet of things based on NoSQL database [J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2019, 35(1): 172-179. (in Chinese with English abstract) doi:10.11975/j.issn.1002-6819.2019.01.021 http://www.tcsae.org

      猜你喜歡
      海量事務(wù)結(jié)構(gòu)化
      “事物”與“事務(wù)”
      基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      一種傅里葉域海量數(shù)據(jù)高速譜聚類方法
      促進(jìn)知識結(jié)構(gòu)化的主題式復(fù)習(xí)初探
      結(jié)構(gòu)化面試方法在研究生復(fù)試中的應(yīng)用
      河湖事務(wù)
      海量快遞垃圾正在“圍城”——“綠色快遞”勢在必行
      一個圖形所蘊(yùn)含的“海量”巧題
      基于圖模型的通用半結(jié)構(gòu)化數(shù)據(jù)檢索
      基于軟信息的結(jié)構(gòu)化轉(zhuǎn)換
      罗山县| 黄浦区| 清镇市| 石棉县| 建宁县| 崇礼县| 洞口县| 昔阳县| 梁山县| 仁怀市| 财经| 穆棱市| 临武县| 邛崃市| 涿州市| 元氏县| 霍州市| 苏尼特右旗| 桂阳县| 即墨市| 合阳县| 湖北省| 嘉荫县| 开江县| 吉安市| 宜兴市| 聂拉木县| 海盐县| 青河县| 金坛市| 黄山市| 沁水县| 陵川县| 蒲城县| 安陆市| 泽库县| 浙江省| 石棉县| 常山县| 鄂托克旗| 漳州市|