李和顯 胡博
摘 要 物聯網是基于互聯網的第二網絡,近年來,其應用和發展如火如荼,在如今科技飛速發展的過程中起著舉足輕重的作用。物聯網以數據為中心,其核心是數據存儲和管理,而無線通信技術的出現和快速發展,伴隨著人類社會中龐大的終端數量,將會產生海量數據。無疑,數據存儲和管理技術將備受關注。鑒于此,本文提出了基于HBase的數據存儲方案,從物聯網海量數據存儲系統的角度,對其進行設計,實現對數據存儲的智能化處理,為信息服務提供安全保障。
關鍵詞 物聯網 數據存儲 HBase
中圖分類號:TP393文獻標識碼:A
0前言
人類社會從信息時代向數據時代的過渡使得數據處理需求急劇上升,當前物聯網信息服務系統數據存儲存在性能低下、共享困難等問題,因此,如何有效并可靠地存儲這些數據對系統建設者們提出了巨大挑戰。本文提出基于HBase的數據存儲設計方案,為有效存儲數據提供了有力的支持。
1相關理論介紹
1.1數據存儲
數據存儲是數據流在加工過程中產生的臨時文件或需要查找的信息,數據以某種格式記錄在計算機的內部或外部存儲介質上,傳統存儲介質多為磁帶或磁盤。而物聯網數據通常數量巨大,難于收集、處理和分析,這就對存儲系統設計者們提出了巨大挑戰。一個高性能的數據存儲系統通常要求智能、大容量、高吞吐率、存儲可靠,并且有良好的橫向擴展性能。
1.2 HBase簡介
HBase是一個開源的分布式數據庫,以Google公布的BigTable為基礎實現,具有開源、分布式、可擴展以及面向列存儲的特點,在架構上遵從主從模式,不支持事務的聯機處理,不能進行關系查詢。HBase適合物聯網海量數據存儲的優勢在于其數據存儲規模大,存儲結構靈活,并且可以按列存儲,這使得HBase數據表有著大容量、高靈活度以及高效率。HBase的存儲底層是Key-Value的形式,在存儲模型中HBase有四個維度的關系,即行鍵、列族、列、時間戳。HBase中存儲的任意一個值可以認為是一個存儲單元,每個存儲單元由行鍵、列族、列、時間戳唯一確定。讀取HBase數據表中的數據時,需要先定位到目標數據的行鍵,然后根據列族、列確定數據存儲單元的具體位置,從而得到數據。
2系統設計及實現
2.1實時監控模塊設計及實現
實時監控數據存儲模塊中存儲的是經過解析的傳感數據。此模塊的基本功能是完整地存儲解析后的傳感數據,快速響應實時監控系統對數據的查詢。關于存儲方式,由于其內存儲的數據需要同步到分布式數據存儲集群中,因此要以易于數據同步的方式進行存儲。另外,實時監控系統需要頻繁地查詢數據庫中不斷更新的數據, 因此最好采用讀寫分離的方式,提高模塊的可用性。綜合以上幾點,可以考慮MySQL數據庫系統,它使用SQL(結構化查詢語言)對數據庫進行管理,在速度、可靠性和適應性等方面都符合設計要求,因此本文選用MySQL存儲實時監控數據。
2.2原始數據存儲模塊設計及實現
原始數據存儲模塊負責接收數據同步模塊傳輸的原始數據,并且以集群的形式存儲數據,使數據由單機存儲變為分布式集群存儲,因此對原始數據存儲模塊有著存儲量大、易擴展、數據易用的要求。經過研究可以得出,基于Hadoop生態的各類組件都比較適合本系統的存儲需求。Hadoop是目前比較流行的大數據處理框架,包含了很多極具實用性的功能組件,尤其是其中的分布式文件系統HDFS,可以說是滿足本系統原始數據存儲的不二之選。HDFS具有高可用、易擴展的特點,同時HDFS以文件的形式存儲數據,并有多種存儲形式可以靈活使用。
2.3數據同步模塊設計及實現
數據同步模塊可以將關系型數據庫中存儲的數據同步到分布式數據存儲集群中, 此模塊可以自動或通過人工指定數據庫中數據的同步位置,指定數據過濾規則,并根據數據的不同類型進行處理。其具體功能是將實時監控系統數據存儲模塊的數據同步到原始數據存儲模塊中。因為原始數據存儲模塊還要為后續的數據整合、查詢模塊提供支持,所以要盡量保證及時性,同步增量數據,若每次同步數據規模小,則速度會更快。因此本系統選用增量同步工具。在系統開始運行時,同步開啟數據同步工具,只需要每次把變化的數據同步到HDFS中即可,這樣就可以保證數據同步的及時性與完整性。
2.4數據整合模塊設計及實現
數據整合模塊的作用是對存儲在分布式文件系統中的原始數據進行二次處理,以應對系統對不同維度數據的查詢需求。這種查詢需求主要有兩類,第一類是常規化處理任務,定期執行,對期間的增量數據按照既定方案進行處理,匯總到原有的處理結果中,供查詢任務使用;第二類是應對臨時性的處理任務,單次處理大量數據得出結果。針對數據批處理的要求,并考慮到對大規模數據的處理延時要求不是很高,需要存儲大量數據等,選擇采用MapReduce批處理計算模型來對數據進行處理。對于定期處理任務,通過Linux系統的crontab任務來固定執行時間,并通過檢測據文件的產生時間來確定需要處理的數據源。
2.5多維度數據存儲模塊
多維度數據存儲模塊用于存儲被數據處理模塊處理、整合后的數據,要求此模塊存儲方式靈活、存儲規模大、查詢便捷,這樣才能避免后期數據應用困難,有足夠大的容量來存儲不斷增加的數據信息,并且保證查詢的便捷性。綜合考慮以上因素,本系統選用基于Hadoop的HBase非關系型數據庫,作為多維度數據存儲模塊。由于HBase為非關系型,因此對數據的列信息控制相對寬松,可以在兩個維度上進行信息表的擴展,即既可以隨時添加新的行,也可以增加列的內容。如此,對數據信息存儲的靈活性大大提高。同時HBase單表的規模可達數十億行數百萬列,完全可以滿足本系統的存儲要求。
3結語
該文介紹了數據存儲和HBase技術的基本概況,充分發揮HBase的特性,結合物聯網海量數據的特點,設計了基于HBase的數據存儲系統,該系統實時監控模塊、原始數據存儲模塊、數據同步模塊、數據整合模塊和多維度數據存儲模塊五部分組成,在每個模塊的設計與選型上都以盡可能大的限度契合物聯網數據的特點,并且強調其高靈活性和大規模存儲的特點,力求以盡可能高的性能滿足人類社會日益提高的對物聯網數據存儲的迫切需求。
作者簡介:李和顯,男,哈爾濱石油學院信息工程學院信息工程學院15級計算機專業。
參考文獻
[1] 周開樂,丁帥,胡小建.面向海量數據應用的物聯網信息服務系統研究綜述[J].計算機應用研究,2012(01):8-11.
[2] 田野,袁博,李廷力.物聯網海量異構數據存儲與共享策略研究[J].電子學報,2016(02):247-257.