柴文慧
(山西管理職業(yè)學(xué)院,山西臨汾041051)
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,人們對于信息的智能化和精細化發(fā)展進程要求越來越高。對于不同領(lǐng)域產(chǎn)生的海量數(shù)據(jù)進行實時的采集、傳輸、處理、發(fā)布等操作,能夠促進該領(lǐng)域的高效發(fā)展,如物流行業(yè)、農(nóng)業(yè)等。網(wǎng)絡(luò)信息的大容量存儲管理以及區(qū)域化的分布,給處理大數(shù)據(jù)的過程增加了較大難度。本文采用Hadoop分布式計算框架和MapReduce編程模型對采集到的海量數(shù)據(jù)進行存儲、檢索、管理,以此對采集系統(tǒng)的數(shù)據(jù)云服務(wù)進行研究。
大數(shù)據(jù)是指無法使用常規(guī)的軟件或工具來進行處理分析的數(shù)據(jù)集合,其必須通過新的工具來優(yōu)化海量數(shù)據(jù)的處理、多樣化的信息資產(chǎn)配置等。通常產(chǎn)生的大數(shù)據(jù)擁有容量大、數(shù)據(jù)多樣化、數(shù)據(jù)復(fù)雜等多種特點,因此大數(shù)據(jù)在采集、傳輸、處理、發(fā)布過程中會給管理人員在進行決策過程中造成較大的困難:(1)隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,各個行業(yè)產(chǎn)生的數(shù)據(jù)量越來越大,且部署的傳感器節(jié)點也日益增多,例如物流行業(yè)的物流信息傳感器、攝像頭、紅外線傳感器燈光等。(2)數(shù)據(jù)格式類型多樣化,有文本、圖像、視頻、表格、音頻等復(fù)雜的數(shù)據(jù)形式。(3)單一數(shù)據(jù)成本較低,因此能夠以較低的成本獲得大數(shù)據(jù)。(4)處理速度快,大數(shù)據(jù)必須通過分布式存儲計算來加快數(shù)據(jù)處理的速度[1-3]。
大數(shù)據(jù)通常應(yīng)用數(shù)據(jù)挖掘算法來實現(xiàn)有價值信息的搜索,Hadoop是大數(shù)據(jù)的主要技術(shù),通過MapReduce編程模型來實現(xiàn)并行節(jié)點的信息處理。通過HDFS分布式文件系統(tǒng)來實現(xiàn)數(shù)據(jù)的分布存儲,提高信息的存儲和查找效率。HBase數(shù)據(jù)庫是一個輕量級別的關(guān)系數(shù)據(jù)庫,能夠有效地提高數(shù)據(jù)查找和引用的效率。本文將構(gòu)建一個存儲海量數(shù)據(jù)的Hadoop系統(tǒng)大數(shù)據(jù)云服務(wù)器,以此來實現(xiàn)數(shù)據(jù)在任一地點登陸都能進行數(shù)據(jù)的發(fā)布或分析[4-5]。
基于采集系統(tǒng)的大數(shù)據(jù)云服務(wù)架構(gòu)如圖1所示。應(yīng)用Oracle數(shù)據(jù)庫存儲一些基礎(chǔ)數(shù)據(jù),使用Hadoop集群來存儲和管理采集各類傳感器傳輸過來的數(shù)據(jù),完全發(fā)揮其高容錯性、可擴展性、高可靠性等優(yōu)勢。
圖1 基于采集系統(tǒng)大數(shù)據(jù)的云服務(wù)架構(gòu)
采集系統(tǒng)應(yīng)用鋪設(shè)各類傳感器來實現(xiàn)數(shù)據(jù)的采集,本文以常用的無線低功率通信技術(shù)“ZigBee”來實現(xiàn)數(shù)據(jù)的實時采集和傳輸,如圖2所示。
圖2 采集系統(tǒng)的總體架構(gòu)圖
在監(jiān)測點部署傳感器進行實時的檢測數(shù)據(jù),通過自組織的方式構(gòu)建無線網(wǎng)絡(luò),并將采集到的數(shù)據(jù)經(jīng)過多級的無線路由傳遞到匯聚節(jié)點,然后通過無線/有線方式接入到網(wǎng)絡(luò),傳輸?shù)娇刂浦行?,并將實時采集到的數(shù)據(jù)存儲在云端。通過智能手機可進行查詢,并可上傳文件,這些數(shù)據(jù)都是未來進行數(shù)據(jù)發(fā)布和預(yù)測的基礎(chǔ)[6]。
Hadoop是一個開源的分布式框架,將分布在不同地點的各個監(jiān)測節(jié)點數(shù)據(jù)采集起來進行計算和存儲的框架(圖3)。其中,MapReduce是分布式計算框架,HDFS以及HBase數(shù)據(jù)庫是基于同一集群節(jié)點進行數(shù)據(jù)計算的。
圖3 Hadoop框架圖
搭建PC端服務(wù)器集群環(huán)境,包括主節(jié)點、計算節(jié)點,在全部節(jié)點部署Hadoop環(huán)境集群,將其中兩臺主機定義為主節(jié)點,其中一臺為出現(xiàn)故障時的備用主節(jié)點,其余的幾臺主機作為子節(jié)點。根據(jù)不同情況添加新主機進入集群,使其具備高可擴展性。本文部署的Hadoop生態(tài)集群如圖4所示[7]。
圖4 Hadoop生態(tài)群集部署圖
傳感器采集到的數(shù)據(jù)是多樣化、多來源、異構(gòu)型的,因此鏈接到HBase數(shù)據(jù)庫的方法也是不一樣的。為了在檢索過程中實現(xiàn)持久化存儲,本文應(yīng)用實時讀寫的分布式數(shù)據(jù)庫系統(tǒng)HBase,為了更好地管理云端數(shù)據(jù),將HBase和MySQL數(shù)據(jù)兩者相結(jié)合,在異構(gòu)數(shù)據(jù)采集后,海量數(shù)據(jù)和大量的非結(jié)構(gòu)化數(shù)據(jù)保存在分布式數(shù)據(jù)庫中,其它實時性要求較高的數(shù)據(jù)存放在MySQL數(shù)據(jù)庫中,使用Sqoop等工具有規(guī)律性地將MySQL關(guān)系數(shù)據(jù)庫中實時數(shù)據(jù)信息傳遞到HDFS和HBase中,以此來實現(xiàn)數(shù)據(jù)的快速輸入。
HBase是Hadoop中面向列的分布式數(shù)據(jù)庫,因此可根據(jù)需求設(shè)計數(shù)據(jù)表的存儲方式,有效地將分布在各個傳感器上的信息進行存儲。通常進行數(shù)據(jù)采集時,采用的是HBase中的Java API來完成數(shù)據(jù)的采集入庫。
在處理圖像、視頻信息等非表結(jié)構(gòu)的數(shù)據(jù)類型時,HBase中的圖片存儲技術(shù)具有較好的圖片檢索功能,解決了圖片流量大、傳輸較為緩慢的問題。Hadoop提供一個API接口,將采集到的視頻流文件傳輸?shù)紿DFS文件中進行存儲,而HBase數(shù)據(jù)庫的存儲結(jié)構(gòu)為HDFS,因此兩者之間可以實現(xiàn)無縫對接[8]。
本文基于采集系統(tǒng)的大數(shù)據(jù)進行云服務(wù)平臺構(gòu)建,并將該成果應(yīng)用于農(nóng)業(yè)生產(chǎn)中。所設(shè)計的農(nóng)業(yè)管理模塊通常包括以下幾個功能:登錄模塊、用戶管理模塊、傳感器管理模塊、文件管理模塊、集群管理模塊。
(1)登錄模塊:用戶登錄系統(tǒng)時,系統(tǒng)首先對用戶進行驗證,如果是新用戶則需通過身份驗證,注冊成功后才可進入系統(tǒng),正常使用系統(tǒng)的其它功能。
(2)用戶管理模塊:進行添加、修改、刪除用戶等操作,可顯示用戶列表。
(3)傳感器管理模塊:該模塊主要對傳感器傳輸過來的數(shù)據(jù)進行管理,保存由不同傳感器傳輸來的數(shù)據(jù),并對數(shù)據(jù)進行添加、刪除、修改、報警、查詢。
(4)文件管理模塊:將數(shù)據(jù)上傳到控制中心,控制中心下載和刪除HDFS、HBase、MySQL數(shù)據(jù)庫存儲的數(shù)據(jù),從而實現(xiàn)對異構(gòu)農(nóng)業(yè)資源實現(xiàn)分布式管理和服務(wù)。
(5)集群管理模塊:對得到的數(shù)據(jù)進行統(tǒng)一處理,基于云服務(wù)將所得的智能決策方案提供給用戶。
系統(tǒng)查詢模塊功能實現(xiàn)過程為:判斷查詢值,實現(xiàn)差異化查詢,鏈接HBase中的API接口。表的查詢方法主要為Scan方法,設(shè)定查詢條件后返回相關(guān)的結(jié)果記錄,然后通過gerScanner函數(shù)將結(jié)果集返回到Result函數(shù)中進行數(shù)據(jù)分析和處理,采用Servlet方法獲取下一輪的數(shù)據(jù),并將獲取的數(shù)據(jù)顯示在JSP頁面。
將在數(shù)據(jù)庫中監(jiān)測到的數(shù)據(jù)導(dǎo)入至HBase中,每次插入的數(shù)據(jù)量范圍為10萬條數(shù)據(jù),每條數(shù)據(jù)大小為幾百kB到2 MB,通過測試后可知每次的時間都較為穩(wěn)定,如圖5所示[9]。
圖5 數(shù)據(jù)導(dǎo)入消耗時間示意圖
針對本文關(guān)注的采集系統(tǒng)性能,集群系統(tǒng)具有較好的安全性能,且能夠達到較好的數(shù)據(jù)處理時間。本文將所得到的云服務(wù)系統(tǒng)運用在農(nóng)業(yè)生產(chǎn)中,通過已有的大數(shù)據(jù)云計算來實現(xiàn)對數(shù)據(jù)的采集、存儲、挖掘等,獲得了較好的實際應(yīng)用效果。但本文研究在數(shù)據(jù)類型、界面設(shè)計等方面還需進一步加強,這也是在以后的工作中需要完善的地方。