劉冠群,馬 萍, 張汝波
(大連民族大學 a.機電工程學院;b.智能感知與先進控制國家民委重點實驗室,遼寧 大連 116605)
工業(yè)現(xiàn)場傳感器實時數(shù)據(jù)存儲系統(tǒng)設計與實現(xiàn)
劉冠群a,b,馬 萍a, 張汝波a,b
(大連民族大學 a.機電工程學院;b.智能感知與先進控制國家民委重點實驗室,遼寧 大連 116605)
針對工業(yè)現(xiàn)場中大量的傳感器以連續(xù)高并發(fā)的方式所產生的海量實時數(shù)據(jù)難以高效可靠存儲的問題,設計了基于 Hadoop 與 HBase 的工業(yè)現(xiàn)場傳感器實時數(shù)據(jù)存儲系統(tǒng),并利用5臺服務器和1個磁盤陣列構建了數(shù)據(jù)存儲系統(tǒng)原型,最后通過仿真程序模擬工業(yè)現(xiàn)場傳感器實時數(shù)據(jù)的高并發(fā)特性,對所提出的數(shù)據(jù)存儲系統(tǒng)性能進行了驗證。實驗表明,所提出的工業(yè)現(xiàn)場傳感器實時數(shù)據(jù)存儲系統(tǒng)數(shù)據(jù)存儲可靠、運行穩(wěn)定、并發(fā)處理能力強。
數(shù)據(jù)存儲;傳感器;工業(yè)現(xiàn)場;HBase;Hadoop
Abstract:For the problem to store mass real-time data efficiently and reliably which are produced continuously and concurrently by a large number of sensors in the industrial field, a data storage system based on Hadoop and HBase for industrial field sensor real-time data is designed. The data storage system prototype is constructed with 5 servers and 1 disk array. Finally, the performance of the proposed data storage system is verified with the simulation program which simulates the high concurrency of the real-time data of industrial field sensors. The experimental results show that the real-time data storage system of the industrial field sensor in this paper is reliable in data storage, stable in operation and has a high concurrent processing capability.
Keywords:data storage; sensor; industrial field; HBase; Hadoop
隨著“中國制造2025”的提出,智慧工廠概念的加強和物聯(lián)網技術的使用,使得工業(yè)現(xiàn)場中傳感器的種類和數(shù)量日益增多。數(shù)據(jù)對于智能化生產的作用愈顯重要,數(shù)量龐大的傳感器每時每刻都在產生大量的數(shù)據(jù)。傳統(tǒng)的實時數(shù)據(jù)庫在處理高時效數(shù)據(jù)方面存在較強的優(yōu)勢,但是隨著大數(shù)據(jù)技術的應用,暴露出實時數(shù)據(jù)庫在處理大規(guī)模傳感數(shù)據(jù)方面存在存儲量低、不便于擴展的缺點[1],人們開始尋找新的技術途徑以解決工業(yè)現(xiàn)場傳感器實時數(shù)據(jù)存儲所遇到的問題。
HBase在處理海量數(shù)據(jù)方面具有很多優(yōu)點,如高讀寫性能、高擴展性、高可靠性和高存儲性等[2], 是架設在分布式文件系統(tǒng)HDFS(Hadoop Distributed File System)之上的開源數(shù)據(jù)庫,而Hadoop具有底層細節(jié)透明、易于擴容和硬件要求低等特點,因此得到了廣泛的應用[3]。人們在利用HBase處理工業(yè)傳感器數(shù)據(jù)方面做了較多的研究。文獻[4]為解決大規(guī)模無線傳感器網絡數(shù)據(jù)的存儲問題,使用HBase實現(xiàn)了一個近實時的存儲系統(tǒng)。文獻[5]針對交通流數(shù)據(jù)具有多來源、高速率和體量大的特點,設計并實現(xiàn)了一套基于HBase的交通流數(shù)據(jù)實時存儲系統(tǒng)。文獻[4-5]表明HBase可對實時數(shù)據(jù)進行有效存儲。文獻[1]將實時數(shù)據(jù)庫與HBase相結合,設計并實現(xiàn)了基于融合數(shù)據(jù)庫的海量傳感器信息存儲框架,實驗結果表明HBase具有較高的讀寫性能以及良好的擴燕尾服性。文獻[6]設計了基于Hadoop的海量海洋科學數(shù)據(jù)存儲平臺解決方案,并驗證了系統(tǒng)的可靠性、易維護性和良好的可擴展性。本文針對具有高并發(fā)特性的生產現(xiàn)場傳感器數(shù)據(jù)高效可靠性存儲的問題,提出以Hadoop和 HBase為基礎搭建分布式實時數(shù)據(jù)存儲系統(tǒng)的方法,其中,利用Hadoop實現(xiàn)文件的分布式存儲,利用HBase作為數(shù)據(jù)庫實現(xiàn)對數(shù)據(jù)的存儲以及查詢操作。
工業(yè)現(xiàn)場中各種傳感器產生的大量實時數(shù)據(jù)對企業(yè)具有重要的作用:一方面,可利用實時數(shù)據(jù)處理技術對這些數(shù)據(jù)進行處理,以實現(xiàn)對生產過程的實時監(jiān)控和預警等;另一方面,可對歷史數(shù)據(jù)進行分析,為企業(yè)決策提供支持。
隨著工業(yè)現(xiàn)場所使用的傳感器種類和數(shù)量的增多,可靠存儲和有效使用這些數(shù)據(jù)是智能化生產所關注的一個重要問題。這類數(shù)據(jù)的主要特點是稀疏的、非結構化的和高并發(fā)的,而且隨時間的延長,數(shù)據(jù)量巨大。針對該類數(shù)據(jù)的可靠、高效存儲問題,并兼顧對大規(guī)模歷史數(shù)據(jù)分析的支持,本文使用的分布式數(shù)據(jù)存儲系統(tǒng)如圖1,用于工業(yè)現(xiàn)場各類傳感器實時數(shù)據(jù)的存儲。利用HBase與Hadoop來實現(xiàn)大數(shù)據(jù)的存儲具有一個優(yōu)勢,即可直接利用Hadoop的MapReduce計算框架對所搜集的歷史數(shù)據(jù)進行高效地挖掘分析。

圖1 分布式存儲系統(tǒng)結構圖
圖1中的支撐層由HDFS和ZooKeeper兩部分組成。
Hadoop是現(xiàn)今大數(shù)據(jù)項目的事實標準,它通過其核心部件HDFS來實現(xiàn)分布式存儲任務。HDFS具有高容錯性,可以用低價的硬件設備存儲海量數(shù)量集,并且具有很高的數(shù)據(jù)讀寫吞吐率[6]。HDFS的體系結構如圖2,采用主/從(Mater/Slave)式體系結構,包括一個NameNode服務器和多個DataNode服務器。

圖2 HDFS體系結構
NameNode是主控服務器,管理文件系統(tǒng)元數(shù)據(jù),執(zhí)行文件系統(tǒng)的命名空間操作,決定數(shù)據(jù)塊到DataNode的映射(Block Map)。DataNode負責實際數(shù)據(jù)的存儲,依據(jù)NameNode的命令,處理客戶端(Client)的讀寫請求,執(zhí)行數(shù)據(jù)塊的存儲工作。NameNode使用事務日志來記錄元數(shù)據(jù)的變化,使用映像文件存儲文件系統(tǒng)的命名空間。但隨著時間的推移,事務日志和映象文件變得龐大。為此,Secondary NameNode用來輔助NameNode處理事務日志和映象文件,使得事務日志大小始終保持在限值之下。
但基于下面的原因,使得HDFS不適合直接存儲傳感器數(shù)據(jù):(1)HDFS數(shù)據(jù)訪問延遲較大,難以應對高并發(fā)的傳感器數(shù)據(jù);(2)當存儲大量小文件(<64 MB)時,會因為名字節(jié)點占用太多內存而影響性能,但直接存儲傳感器所需的文件數(shù)量卻是巨大的。利用HBase與傳感器數(shù)據(jù)進行直接交互,并通過HBase 的數(shù)據(jù)持久化機制將傳感器數(shù)據(jù)保存文件可靠地存儲到HDFS,則可彌補HDFS的劣勢。
ZooKeeper是HBase關鍵的協(xié)同服務組件,它利用HBase集群中各節(jié)點服務器狀態(tài)信息,對HBase集群的各節(jié)點進行管理。當集群中有新的服務器節(jié)點出現(xiàn)時,ZooKeeper可以幫助HBase發(fā)現(xiàn)新的可用節(jié)點。當HBase中某服務器崩潰時,ZooKeeper可幫助系統(tǒng)恢復到服務器崩潰前的狀態(tài)。
對于稀疏的、非結構化數(shù)據(jù)的存儲,關系型數(shù)據(jù)庫受其存儲結構的限制,性能受限。而HBase是面向列的非關系型數(shù)據(jù)庫,在存儲異構類型數(shù)據(jù)方面具有較大的優(yōu)勢。HBase作為一款免費開源的分布式數(shù)據(jù)庫,具有很強的一致性和近似最優(yōu)的讀寫性能,可以充分利用磁盤空間。HBase與Hadoop進行集成,可實現(xiàn)對傳感器數(shù)據(jù)的可靠高效存儲。
HBase也采用主/從式體系結構。HBase集群主要包括一個Master主節(jié)點和多個RegionServer工作節(jié)點。Master與ZooKeeper的緊密合作,負責協(xié)調管理RegionServer工作節(jié)點,對其進行區(qū)域分配、負載均衡和運行情況監(jiān)控等。RegionServer通過Master所提供的信息處理用戶的讀寫操作,并向Master反饋自身運行狀態(tài)等。用戶可以利用HBase所提供的API進行數(shù)據(jù)存儲和獲取集群狀態(tài)信息等。
應用層是用戶根據(jù)項目要求,通過調用HDFS以及HBase所提供的API所實現(xiàn)的各類應用程序。HDFS 和HBase提供了多種類型語言接口,其中Java API是最常規(guī)高效的方式。
本文基于實驗室現(xiàn)有設備搭建了一個系統(tǒng)原型驗證存儲系統(tǒng)的性能。系統(tǒng)原型硬件配置環(huán)境見表1,共有 5臺服務器(分為1個主節(jié)點和4個工作節(jié)點)與1個磁盤陣列,根據(jù)HDFS與HBase的結構特點對該設備進行了角色分配。將其中具有較大內存的服務器作為主節(jié)點,在主節(jié)點服務器上部署 HDFS NameNode、HBase Master和ZooKeeper, 主節(jié)點完成相當于管理層的工作。4臺工作節(jié)點服務器配置相同,并行部署HDFS DataNode和HBase RegionServer,完成傳感器數(shù)據(jù)的分布式存儲工作。工作節(jié)點服務器需要大量的存儲空間用于數(shù)據(jù)存儲,為擴展其存儲空間,將磁盤陣列的12塊磁盤(每塊磁盤的容量為2 TB)平均分配給4臺工作節(jié)點服務器,每個工作節(jié)點具有6 TB的存儲空間。

表1 硬件配置環(huán)境
該系統(tǒng)原型的整體系統(tǒng)架構如圖3,圖中的設備與表1的設備一致。整個集群處于一個局域網中,設備之間通過以太網線連接通信,磁盤陣列通過iSCSI協(xié)議掛載到各工作節(jié)點服務器。客戶端通過互聯(lián)網與該集群進行通信。

圖3 系統(tǒng)整體框架圖
為保障集群中各軟件系統(tǒng)之間交互的一致性,本分布式存儲系統(tǒng)所用Hadoop組件均為CDH5.7版本。服務器操作系統(tǒng)為CentOS 7。JDK的版本由Hadoop版本決定。本系統(tǒng)所用Hadoop組件版本以及服務器操作系統(tǒng)版本見表2。

表2 系統(tǒng)軟件版本列表
為驗證所構建的分布式存儲系統(tǒng)在存儲可靠性、運行穩(wěn)定性、存儲均衡性和并發(fā)處理能力等方面的表現(xiàn),本文不同實驗場景的設定見表3。在每個場景中,令每個傳感器節(jié)點每秒產生100個數(shù)據(jù),以體現(xiàn)傳感器所產生數(shù)據(jù)的高頻特性。從場景一到場景三,通過傳感器數(shù)量的逐步增多來增加數(shù)據(jù)的并發(fā)性,驗證存儲系統(tǒng)的并發(fā)處理能力。每個場景分為三個實驗階段,每個階段的實驗時長不斷加長,分別為24 h、48 h和168 h,以驗證存儲系統(tǒng)長時間運行的穩(wěn)定性。在每次寫入傳感器數(shù)據(jù)后,將寫入數(shù)據(jù)再次從存儲系統(tǒng)中取回,以驗證存儲系統(tǒng)數(shù)據(jù)存儲的可靠性,同時驗證系統(tǒng)的并發(fā)處理能力。最后通過分析存儲系統(tǒng)中每個數(shù)據(jù)節(jié)點的存儲量,以驗證分布式存儲系統(tǒng)在每個數(shù)據(jù)節(jié)點上進行數(shù)據(jù)存儲的均衡性。

表3 實驗仿真多場景列表
本文構建的仿真測試系統(tǒng)如圖4,仿真測試程序由Java語言編寫,主要功能是模擬傳感器數(shù)據(jù)的生成、實現(xiàn)數(shù)據(jù)庫的訪問等。仿真測試程序根據(jù)實驗場景的設定,為每個傳感器創(chuàng)建一個Java線程進行模擬。傳感器線程被創(chuàng)建后,通過調用HBase相關Java API為該傳感器創(chuàng)建一張數(shù)據(jù)存儲表,傳感器所產生的數(shù)據(jù)信息將存儲在此表中。每個傳感器線程通過設置定時器,每秒產生100個單精度浮點數(shù)據(jù),并為每個數(shù)據(jù)加上產生時間等其他數(shù)據(jù)描述信息,構成一個數(shù)據(jù)記錄,并調用 HBase API將數(shù)據(jù)記錄寫入對應的數(shù)據(jù)表中,然后再將寫入的數(shù)據(jù)從數(shù)據(jù)庫中取出,以驗證寫入數(shù)據(jù)的完整性。仿真程序以一定的概率隨機結束某個傳感器線程,并重新創(chuàng)建一個傳感器線程,以模擬工業(yè)現(xiàn)場中傳感器數(shù)據(jù)的突發(fā)性和隨機性。

圖4 仿真測試系統(tǒng)結構圖(線程2)
經過測試,與每個實驗場景中不同實驗時長對應的數(shù)據(jù)節(jié)點存活量見表4。在場景一的24h實驗設置中,HBase數(shù)據(jù)節(jié)點存活數(shù)量為3個,說明有一個數(shù)據(jù)節(jié)點已經掉線,經過查看日志,分析掉線原因為該節(jié)點所在服務器的系統(tǒng)時間與整個集群的時間相差較大,導致該節(jié)點與集群溝通不順暢。對該節(jié)點所在服務器的時間進行調整后,隨后的實驗中沒有發(fā)生類似情況,HBase節(jié)點和HDFS節(jié)點都完全存活,說明HBase集群對時間一致性問題較為敏感。在大量傳感器實時并發(fā)產生數(shù)據(jù)的條件下,存儲系統(tǒng)能在較長的實驗周期中正常運行,表示分布式集群的穩(wěn)定性較強。

表4 多場景仿真測試存儲數(shù)據(jù)節(jié)點統(tǒng)計
實驗中,HDFS的replication因子設置為3,NameNode節(jié)點根據(jù)相關信息選取數(shù)據(jù)節(jié)點進行數(shù)據(jù)存儲。每個數(shù)據(jù)節(jié)點存儲數(shù)據(jù)量見表5,從表中的數(shù)據(jù)可知,每個數(shù)據(jù)節(jié)點的數(shù)據(jù)存儲量大致是均衡的。如果數(shù)據(jù)存儲不夠均衡,可運行HDFS的balancer程序來進行均衡。

表5 HDFS 工作節(jié)點存儲量統(tǒng)計 G
實驗表明,本文所構建的分布式存儲系數(shù)能夠對工業(yè)現(xiàn)場傳感器產生的高并發(fā)性實時數(shù)據(jù)進行有效、可靠存儲。
生產智能化程度的提高和大數(shù)據(jù)技術的應用,使得工業(yè)現(xiàn)場各種傳感器數(shù)據(jù)對于企業(yè)的作用越顯重要。本文針對傳統(tǒng)工業(yè)數(shù)據(jù)庫在大規(guī)模傳感器數(shù)據(jù)處理方面具有存儲量低、不便于擴展的缺點,研究了工業(yè)現(xiàn)場大量傳感器所產生的連續(xù)并發(fā)海量實時數(shù)據(jù)的高效可靠存儲方法,基于Hadoop與HBase構建了傳感器實時數(shù)據(jù)存儲系統(tǒng),并通過仿真實驗對所構建的存儲系統(tǒng)原型進行了性能驗證。實驗表明,本文所設計的存儲系統(tǒng)數(shù)據(jù)存儲可靠、運行穩(wěn)定、并行處理能力強、數(shù)據(jù)存儲均衡,對服務器硬件配置要求不高,對于實際生產具有較大的應用價值。
[1] 類興邦, 房俊. 基于融合數(shù)據(jù)庫的海量傳感器信息存儲架構[J]. 計算機科學, 2016, 43(6):68-71.
[2] GEORGE L. HBase: The Definitive Guide[M].O’reilly Media, Inc. 2010.
[3] WHITE T. Hadoop: The Definitive Guide[M].O’reilly Media, Inc. 2012.
[4] 陳慶奎, 周利珍. 基于HBase的大規(guī)模無線傳感器網絡數(shù)據(jù)存儲系統(tǒng)[J]. 計算機應用, 2012, 32(7):1920-1923.
[5] 陸婷, 房俊, 喬彥克. 基于HBase的交通流數(shù)據(jù)實時存儲系統(tǒng)[J]. 計算機應用,2015, 35(1) : 103 - 107.
[6] 崔杰,李陶深,蘭紅星.基于Hadoop的海量數(shù)據(jù)存儲平臺設計與開發(fā)[J]. 計算機研究與發(fā)展, 2012, 49(S1): 12-18.
(責任編輯 趙環(huán)宇)
DesignandImplementationoftheDataStorageSystemforIndustrialFieldSensorReal-timeData
LIUGuan-quna,b,MAPinga,ZHANGRu-boa,b
(a. School of Electromechanical Engineering, b. Key Laboratory of Intelligent Perception and Advanced Control of State Ethnic Affairs Commission, Dalian Minzu University, Dalian Liaoning 116605, China)
張汝波 (1963-),男,吉林省吉林人,教授,博士,主要從事傳感器與機器人技術研究, Email:zhangrubo@dlnu.edu.cn。
TP274
A
2017-05-15;
2017-06-15
遼寧省教育廳科學研究一般項目 (L2014542);遼寧省博士科研啟動基金 (201501164);中央高校基本科研業(yè)務費專項資金資助項目 (DC201502010404)。
劉冠群 (1980-),男,湖南衡東人,講師,博士,主要從事傳感器技術、聲源定位和機器人技術研究。
2096-1383(2017)05-0456-05