摘要:本文在研究分析了現(xiàn)有物聯(lián)網(wǎng)數(shù)據(jù)以及分布式數(shù)據(jù)庫Hbase的特點(diǎn)基礎(chǔ)上,提出了一種基于Hbase的物聯(lián)網(wǎng)數(shù)據(jù)中心解決方案,并實驗室驗證了該方案的可行性。
關(guān)鍵詞:物聯(lián)網(wǎng) 數(shù)據(jù)中心 Hbase
中圖分類號:TP39
1 引言
物聯(lián)網(wǎng)的數(shù)據(jù)具備以下特性[1,2,3]:1)異構(gòu)性和多態(tài)性。無線傳感網(wǎng)中有各種各樣的傳感器,而每一類傳感器采集的數(shù)據(jù)結(jié)構(gòu)也各不相同,決定了采集數(shù)據(jù)的異構(gòu)性和多態(tài)性。2)數(shù)據(jù)的海量性。物聯(lián)網(wǎng)數(shù)據(jù)是實時、高速、源源不斷地產(chǎn)生的,加上采集數(shù)據(jù)包含文本、圖像、音頻、視頻等信息,這使得物聯(lián)網(wǎng)數(shù)據(jù)至少都是TB級的大容量數(shù)據(jù)。3)數(shù)據(jù)的時效性。被感知的事物的狀態(tài)可能是瞬息萬變的。物聯(lián)網(wǎng)的數(shù)據(jù)采集工作是隨時進(jìn)行的,數(shù)據(jù)更新很快。4)數(shù)據(jù)的可靠性。在數(shù)據(jù)中心發(fā)生故障時,已經(jīng)獲取到的數(shù)據(jù)能夠不丟失,系統(tǒng)恢復(fù)時,數(shù)據(jù)能夠自動恢復(fù)。
物聯(lián)網(wǎng)數(shù)據(jù)的這些特性,決定了物聯(lián)網(wǎng)數(shù)據(jù)中心必需具備足夠的存儲空間、可靠的容災(zāi)處理能力和足夠的運(yùn)行能力,能夠及時對上層業(yè)務(wù)提供支撐,否則可能得出錯誤的結(jié)論甚至造成巨大損失。
2 概述:物聯(lián)網(wǎng)數(shù)據(jù)中心的一般解決方案
2.1 數(shù)據(jù)異構(gòu)性和多態(tài)性
解決數(shù)據(jù)的異構(gòu)性問題必須從基礎(chǔ)軟件入手[1]。不同的微型計算設(shè)備可能要采用不同的操作系統(tǒng),不同的感知信息需要不同的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫,不同的系統(tǒng)需要不同的中間件。數(shù)據(jù)庫和中間件是解決異構(gòu)性和多態(tài)性的關(guān)鍵。
2.2 數(shù)據(jù)海量性和時效性
海量性帶來的問題是存儲不便、計算結(jié)果的遲滯性——反應(yīng)速度跟不上[1]。處理策略不外乎兩種:一種是把所有的數(shù)據(jù)都交給服務(wù)器,為此必須尋求更高檔次的服務(wù)器甚至計算中心。另一種是化整為零,提高物聯(lián)網(wǎng)中每一個元素的智能化水平或計算能力,使其自身能夠完成數(shù)據(jù)中間處理過程,剩余的再傳遞到服務(wù)器完成最終處理。這種化整為零式的計算實際上就是海計算[4,5]。
2.3 數(shù)據(jù)的可靠性
物聯(lián)網(wǎng)數(shù)據(jù)的可靠性保證體現(xiàn)在兩個方面:
一個是構(gòu)成數(shù)據(jù)中心的硬件設(shè)施的可靠性[6]。例如:數(shù)據(jù)中心服務(wù)器硬件的可靠性、電源管理、機(jī)房的安全管理、空凋系統(tǒng)、數(shù)據(jù)中心的使用管理等。另外一個是,數(shù)據(jù)中心軟件的可靠性。數(shù)據(jù)中心軟件,例如數(shù)據(jù)庫、中間件、操作維護(hù)模塊等,必需支持在數(shù)據(jù)中心發(fā)生局部損壞時數(shù)據(jù)中心能夠正常運(yùn)行。本文關(guān)注的主要是軟件的可靠性。
3 Hbase相關(guān)技術(shù)
在采用Hbase部署數(shù)據(jù)中心之前,先簡要的介紹一下
Hbase的結(jié)構(gòu)以及特點(diǎn)[7,8]。
3.1 Hbase的系統(tǒng)架構(gòu)
HBase – Hadoop Database,是一個高可靠性(數(shù)據(jù)被復(fù)制到多個節(jié)點(diǎn);單節(jié)點(diǎn)故障不影響系統(tǒng)運(yùn)行)、高性能(熱點(diǎn)的檢測和切換;負(fù)荷分擔(dān))、面向列、可伸縮(增加或者檢修單節(jié)點(diǎn),不影響系統(tǒng)運(yùn)行;性能和存儲容量限制隨節(jié)點(diǎn)數(shù)目線性增加等)的分布式存儲系統(tǒng),利用HBase技術(shù)可在廉價PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。
3.2 Hbase的數(shù)據(jù)模型
Hbase是面向列的數(shù)據(jù)庫。Table按照row排序,Table定義中只描述了column families,每一個列族包含多個列,每一個列包含了多個版本的數(shù)據(jù),插入值后列才有效,列允許為空,空的列不占用空間,列族中的多個列有序排列,并存放在一起,除了表名必須是有效字符串以外,其他數(shù)據(jù)均為字節(jié)數(shù)組(byte[]),通過行鍵、列鍵(列族:列名)、時間戳(默認(rèn)按最新時間)的組合可以訪問到value 。關(guān)于HBase的系統(tǒng)結(jié)構(gòu)以及內(nèi)部各子系統(tǒng)的功能,可進(jìn)一步參考文獻(xiàn)[7][8],此處不再贅述。
4 物聯(lián)網(wǎng)數(shù)據(jù)中心部署方案
本章節(jié)基于一個電子車牌的物聯(lián)網(wǎng)系統(tǒng),說明如何使用Hbase來部署數(shù)據(jù)中心。
4.1 電子車牌系統(tǒng)
本文研究的電子車牌系統(tǒng)實現(xiàn)如下功能需求:車輛動態(tài)實時監(jiān)測、套牌車稽查、卡口監(jiān)控、肇事逃逸車輛追查、路網(wǎng)動態(tài)監(jiān)測、交通流分析及誘導(dǎo)控制等相關(guān)功能;同時作為數(shù)據(jù)中心,提供接口給公安、環(huán)保、市政等相關(guān)職能單位查詢和使用,可以方便查詢路面車輛視頻信息、抓拍車輛照片,道路車流量詳盡信息,車輛跟蹤查詢路徑信息,違章車輛運(yùn)行管理查詢等內(nèi)容。
系統(tǒng)架構(gòu)以及數(shù)據(jù)中心在其中的位置如圖1所示:
圖1 電子車牌系統(tǒng)數(shù)據(jù)中心所處位置示意圖
在該系統(tǒng)中,感知層中閱讀器采集道路車輛電子車牌信息后,經(jīng)中間件上報數(shù)據(jù)中心,然后由數(shù)據(jù)中心提供接口供應(yīng)用層查詢使用。說明:本文的數(shù)據(jù)中心在部署的時候,未考慮視頻信息的處理,僅考慮了閱讀器閱讀電子車牌信息的處理。
4.2數(shù)據(jù)表設(shè)計
根據(jù)Hbase的表設(shè)計特點(diǎn):1)表容量盡量大。表分割后,可在各個節(jié)點(diǎn)間負(fù)荷分擔(dān) 。2)表數(shù)量盡量少 。減小-META-表記錄數(shù) ;減小NameNode存儲容量需求。據(jù)此,確定了表設(shè)計思路。
數(shù)據(jù)中心的電子車牌信息分為兩大類:靜態(tài)數(shù)據(jù)和動態(tài)
數(shù)據(jù)。靜態(tài)數(shù)據(jù)包括:采集點(diǎn)信息、閱讀器信息、天線車道關(guān)聯(lián)信息、車輛信息等;動態(tài)信息主要是過車記錄信息。
因此,數(shù)據(jù)設(shè)計為兩張大表,靜態(tài)信息表和動態(tài)信息表。靜態(tài)信息表中,采集點(diǎn)信息、閱讀器信息、天線車道關(guān)聯(lián)信息、車輛信息等各自作為獨(dú)立的列族;動態(tài)信息表中,過車記錄信息為一個列族。
表1中,ColumnFamil1對應(yīng)采集點(diǎn)信息,ColumnFamil2對應(yīng)閱讀器信息,ColumnFamil3對應(yīng)天線車道關(guān)聯(lián)信息,ColumnFamil4對應(yīng)車輛信息。
動態(tài)信息表結(jié)構(gòu)如下表2所示:
其中靜態(tài)表信息中的內(nèi)容在確定后,一般不再改變,所占存儲空間較小。動態(tài)信息表需要實時記錄過往車輛信息,信息量大。
4.3 數(shù)據(jù)異構(gòu)性和多態(tài)性設(shè)計
采用Hbase實現(xiàn)數(shù)據(jù)中心,解決數(shù)據(jù)的異構(gòu)性和多態(tài)性的方法是:采用XML格式來標(biāo)示數(shù)據(jù),在采集層和網(wǎng)絡(luò)層均采用相同的XML定義來標(biāo)示數(shù)據(jù)。采集點(diǎn)采集到數(shù)據(jù)后,把數(shù)據(jù)按照已經(jīng)定義好的XML格式組裝,然后上報;網(wǎng)絡(luò)層在拿到數(shù)據(jù)后,按照相同的規(guī)則解析,獲取到采集的數(shù)據(jù),然后入數(shù)據(jù)中心。查詢的時候,也采用同樣的方式。
4.4 數(shù)據(jù)海量性和時效性設(shè)計
根據(jù)Hbase自身的特點(diǎn),數(shù)據(jù)中心實現(xiàn)數(shù)據(jù)海量性和時效性的處理方案如下:
數(shù)據(jù)中心初始安裝時,動態(tài)表數(shù)據(jù)分布人工指定,指定方式是在.META.表中配置,根據(jù)列“電子車牌序列號”的取值范圍指定到不同的regoin。靜態(tài)表數(shù)據(jù)由于數(shù)據(jù)量較小,按系統(tǒng)自動給定的分布方式即可。在數(shù)據(jù)中心工作后,動態(tài)表和動態(tài)表的分布,會根據(jù)regoin中數(shù)據(jù)量的增長自動進(jìn)行分布。在數(shù)據(jù)中心運(yùn)行后,由于用戶數(shù)據(jù)均加載在內(nèi)存中,數(shù)據(jù)的增刪查改響應(yīng)速度都很快。
實際應(yīng)用中了,部署了8臺普通PC,來完成數(shù)據(jù)中心的功能。部署拓?fù)鋱D如圖2所示。
8臺PC中,一臺充當(dāng)了Hmaster/Zookeeper;另外7臺充當(dāng)HregionServer。在性能不足的時候,可以通過增加HregionServer數(shù)據(jù),即可線性增加數(shù)據(jù)中心性能。在其中某臺機(jī)器(例如HregionServer2損壞)損壞的情況下,則用戶數(shù)據(jù)在Hmaster/Zookeeper的控制下,自動分擔(dān)到其他幾個HregionServer上,有效的保證了數(shù)據(jù)的安全。
4.5 驗證數(shù)據(jù)
按照本文給出的電子車牌數(shù)據(jù)中心,在實驗室進(jìn)行驗證,8臺普通PC并行后,系統(tǒng)處理能力較強(qiáng),關(guān)鍵數(shù)據(jù)參數(shù)如下表3所示:
實驗室驗證表明,在其中一臺機(jī)器(例如HregionServer2損壞)損壞的情況下,用戶數(shù)據(jù)能夠自動分擔(dān)到其他幾個HregionServer上,滿足了數(shù)據(jù)的安全可靠要求。
5 結(jié)論
本文研究的結(jié)論表明,采用Hbase搭建物聯(lián)網(wǎng)數(shù)據(jù)中心的方案是可行的,這種基于分布式的數(shù)據(jù)庫能夠很好的解決物聯(lián)網(wǎng)數(shù)據(jù)中心面臨的問題和困擾,是物聯(lián)網(wǎng)數(shù)據(jù)中心建設(shè)的一個新思路。同時,由于篇幅有限,本文并沒有分析整體物聯(lián)網(wǎng)系統(tǒng)的解決方案,而重點(diǎn)關(guān)注的是物聯(lián)網(wǎng)數(shù)據(jù)中心采用Hbase實現(xiàn)的可行性。
參考文獻(xiàn):
[1] http://wenku.baidu.com/view/5da76e3a5727a5e9856a61f5.html ..2013
[2]李航,陳后金. 物聯(lián)網(wǎng)的關(guān)鍵技術(shù)及其應(yīng)用前景[J]. 中國科技論壇. 2011(01)
[3]寧煥生,徐群玉. 全球物聯(lián)網(wǎng)發(fā)展及中國物聯(lián)網(wǎng)建設(shè)若干思考[J]. 電子學(xué)報. 2010(11)
[4]孫利民,沈杰,朱紅松. 從云計算到海計算:論物聯(lián)網(wǎng)的體系結(jié)構(gòu)[J]. 中興通訊技術(shù). 2011(01)
[5].http://wenku.baidu.com/view/b5b100f2ba0d4a7302763a66.html