基于Hadoop體系的傳感云數據存儲系統及其實現方法
【專利摘要】本發明公開了一種基于Hadoop體系的傳感云數據存儲系統及其實現方法。通過分析Hadoop框架下的Storm框架、HBase分布式數據表、分布式數據倉庫Hive的特點和各自應用場景,結合無線傳感器網絡形成的傳感云技術,提出一種基于Hadoop體系的傳感云數據存儲系統。本發明通過對Hadoop體系下這三種常見應用場景的分析,使用由上位機軟件,數據緩沖池MYSQL數據庫和任務調度腳本組成的數據云網關作為傳感云到存儲系統的數據溝通橋梁。調度腳本將當日實時數據通過推送到Storm框架集群實時寫入HBase表,負責前端數據發布和響應;歷史數據通過ETL數據操作,從緩沖池抽取并加載到Hive的數據倉庫。本發明提出的傳感云數據存儲系統結構清晰,各模塊功能分明,具有良好的層次擴展性和負載均衡的穩定性,目前已經穩定運行并實現對其他系統的數據存儲支持。
【專利說明】基于Hadoop體系的傳感云數據存儲系統及其實現方法
[0001]
技術領域
[0002]本發明涉及Hadoop體系的傳感云數據存儲系統領域,具體是一種基于Hadoop族大規模傳感器數據云存儲系統及其實現方法。
技術背景
[0003]無線傳感器網絡近年逐漸成熟和普及,產生了大量的傳感器數據。傳統的無線傳感器網絡在發展中逐漸與遠程互聯網通信技術和Hadoop技術相結合,形成無線傳感云系統。Hadoop是一種具有高可靠性和良好擴展性的分布式存儲和計算平臺,可以在大量廉價的硬件設備基礎上組成集群并運行數據文件等存儲計算。基于Hadoop理念和技術,已經發展了一系列用于不同場景的Hadoop體系產品。如分布式數據庫HBase,分布式數據倉庫Hive,類Hadoop的實時計算平臺Storm等。
[0004]Hadoop體系已經具備多種適應于不同應用場景的應用,這些應用都具備大規模數據管理和分布式計算的特點,部分應用已經在各行業得到使用。但是,由于無線傳感器網絡構成的傳感云屬于新興數據源,尚未完全普及和產生海量數據,因此該技術與Hadoop體系應用的集成還處于試驗階段。處理傳感云為數據源的數據時,多數系統中仍然使用傳統的關系型數據庫存儲這部分數據。
[0005]處理傳感云產生的數據,傳統方法使用數據網關接收數據,并存儲到關系型數據庫,短期內能夠滿足傳感云數據存儲和系統展示的訪問需求。然而,由于傳感云數據產生頻率高,速度快。傳感器數據量的積累速度是驚人的。隨著數據量的上升,關系型數據庫的存儲和訪問性能會逐漸降低,系統適應能力變差。另外,傳統數據庫擴展性差,在系統運行后進行數據庫擴展的成本較高。相對地,擴展性和可靠性正是Hadoop的核心理念,將傳感云技術與Hadoop體系的應用進行集成能夠滿足快速數據積累所需的數據存儲處理和擴展需求。
【發明內容】
[000?] 本發明的目的是提供一種基于Hadoop體系Hive,HBase,Storm應用的傳感云數據存儲系統實現方法,從而應對無線傳感器網絡數據量快速積累產生的數據存儲擴展性和穩定性需求。
[0007]1、實現本發明目的的技術解決方案為:一種基于Hadoop體系的傳感云數據存儲系統,系統以數據云網關為核心,由無線傳感器網絡構成的傳感云、數據云網關、分布式數據庫HBase、實時數據計算的Storm框架、Hive數據倉庫以及底層Hadoop基礎分布式存儲計算支持平臺6部分構成;
傳感云,用于采集環境數據;由無線傳感器網絡組成,網絡中包含獲取設備采集點的光照量、空氣溫濕度和土壤溫濕度及二氧化碳含量的傳感器族群設備;
數據云網關,由其上運行的上位機軟件、數據緩沖池MYSQL數據庫以及任務調度腳本構成;其中,上位機軟件接收傳感云產生的并通過GPRS模塊傳輸到數據云網關的實時數據,進而解析包含傳感云環境數據的IP分組,得到傳感云中具體節點信息和環境傳感器數據存入數據緩沖池MYSQL數據庫;
實時數據計算的Storm框架,實現實時數據向分布式數據庫HBase的寫入操作;
分布式數據庫HBase,用于存儲實時環境數據,以傳感器名稱為鍵,傳感器實時數據為值,并以key為標準分區存儲鍵值對到HBase實時數據表中;
數據倉庫Hive,實現歷史數據的存儲;數據云網關中,上位機解析的環境數據暫存在緩沖池中,當數據積累到指定時長,任務調度腳本執行ETL操作,將歷史數據存入到數據Hive倉庫的對應表中;
Hadoop基礎分布式存儲計算支持平臺提供支持服務。
[0008]本發明與現有技術相比,其顯著優點:1、本發明通過無線傳感器網絡組成傳感云,與數據網關建立通信鏈路,保證了傳感云數據從數據源到緩沖池持續穩定地傳輸;2、本發明以數據云網關為中心,集成基于Hadoop體系的實時計算框架Storm,保證了實時數據的寫入和處理操作穩定性和低時延性,提高了對實時數據需求的響應速度;3、本發明通過Hadoop體系下的HBase數據表存儲實時數據,支持了Storm的高速寫入和讀取操作。為傳感云數據傳輸速度提高提供了擴展空間;4、本發明圍繞云數據網關的數據緩沖池,采用Hadoop體系下的Hive應用作為數據倉庫作為歷史數據存儲目標。實現了大規模傳感云數據的存儲能力擴展性,提高了海量傳感器數據存儲的可靠性。
【附圖說明】
[0009 ]圖1是本發明基于Hadoop體系的傳感云數據存儲系統。
[0010]圖2是本發明基于Hadoop體系的傳感云數據存儲系統數據處理流程圖。
【具體實施方式】
[00?? ] 通過分析Hadoop框架下的Storm框架、HBase分布式數據表、分布式數據倉庫Hive的特點和各自應用場景,結合無線傳感器網絡形成的傳感云技術,本發明提出了一種基于Hadoop體系的傳感云數據存儲系統。本發明通過對Hadoop體系下這三種常見應用場景的分析,使用由上位機軟件,數據緩沖池MYSQL數據庫和任務調度腳本組成的數據云網關作為傳感云到存儲系統的數據溝通橋梁。調度腳本將當日實時數據通過推送到Storm框架集群實時寫入HBase表,負責前端數據發布和響應;歷史數據通過ETL數據操作,從緩沖池抽取并加載到Hive的數據倉庫。
[0012]1、本發明的系統以數據云網關為核心,由無線傳感器網絡構成的傳感云,數據云網關,分布式數據庫HBase,實時數據計算的Storm框架,數據倉庫Hi ve應用以及底層Hadoop基礎分布式存儲計算支持平臺6部分構成;
2、傳感云是本系統的數據生產源。通過普通的無線傳感器網絡結合GPRS無線傳輸技術構成。本系統實現時采用SMAC協議實現傳感云網絡節點間通信。節點邊緣部署GPRS模塊,將傳感器采集的數據以5秒時延向數據云網關發送數據信息的IP分組。
[0013]3、數據云網關由其上面運行的上位機軟件,數據緩沖池MYSQL數據庫以及任務調度腳本為構成部分。數據云網關是溝通分布式數據存儲和處理功能與傳感云數據源的橋梁,是本系統從傳感云數據源實現數據接收并分別進行歷史數據存儲和實時數據的核心。其作用是:運行上位機,與GPRS模塊通信,接收來自傳感云的實時數據并存儲數據緩沖池。調度腳本將數據分別進行實時和歷史數據的分布式存儲與處理。
[0014]3中涉及的上位機實現流程如下:
第一步:運行TCP線程并進行指定通信端口的偵聽。
[0015]第二步:與端口上請求連接的傳感云GPRS模塊建立通信鏈路,接收來自傳感云的傳感器數據分組。
[0016]第三步:上位機對接收到的數據分組進行拆包操作。獲取各節點及其傳感器的詳細數據信息,并存入數據緩沖池。緩沖池使用MYSQL小型關系型數據庫承擔。負責臨時存儲解析數據分組獲得的傳感器數據。
[0017]3中涉及的調度腳本實現流程如下:
第一步:按天為單位分別對緩沖池的實時數據進行推送操作,對歷史數據進行數據抽取,轉換和加載操作。
[0018]對于第一步中的實時數據處理,其步驟如下:
步驟3.1:對于當天解析出的傳感器數據,調度腳本以小時為粒度進行推送操作;
步驟3.2:實時數據推入HBase平臺進行分布式存儲,待Storm框架處理和調用;
步驟3.3: Storm框架從HBase數據庫表中讀取實時數據,響應Web網站服務器的實時計算請求。如計算當前一小時內的光照量平均數,一天內平均濕度走勢等。
[0019]4、實時數據的存儲和計算分別采用Hadoop體系下的HBase分布式數據庫和Storm分布式實時計算平臺實現。HBase是面向列的分布式非關系型數據庫,采用〈key,value)鍵值對基于列存儲數據。其良好的實時性支持和列存儲方式適應傳感云數據模型的傳感器并列關系和實時數據存儲場景。本系統中調度腳本按小時存儲實時傳感云數據。以傳感器名稱為鍵,傳感器實時數據為值,并以key為標準分區存儲鍵值對到HBase表中。
[0020]5、實時數據存儲到HBase中通過Storm實現實時寫入。Storm在本系統中承擔實時數據寫入HBase表和讀取HBase表數據進行實時計算的功能。Storm是基于Hadoop體系的實時計算框架,不同于Hadoop的批處理功能。該框架在本系統中實現流數據處理,使用于低時延,快速響應的實時處理前端網站請求場景。
[0021]對于5中提到的Storm框架與HBase交互實現流程如下:
第一步:數據云網關的調度腳本提交了 N條記錄進行更新操做;
第二步:將N條分成10份,每份N/10條;
第三步:每個Ja va虛擬機JVM實例會構建一個擁有10個線程的線程池,線程池中的每個線程都會通過ThreadLocal維護一個Connect 1n連接;
第四步:線程會對自己的這N/10條數據順序進行列自增,實現對HBase中HTable表的連接池共享連接的優化。減輕集群管理和負載均衡操作的壓力。
[0022]6、歷史數據存儲使用Hadoop體系下的分布式數據倉庫Hive結合ETL數據處理操作實現。Hive具備良好的數據管理層次,分布式擴展性和可靠性。ETL操作依靠腳本實現從數據云網關的MYSQL數據緩沖池抽取前一日的傳感云數據,并按照Hi ve數據結構進行轉換,進而加載到該數據倉庫對應的表中,作為歷史數據的存儲目標。Hive的元數據存儲索引依賴集群部署的Deby數據庫,其物理存儲依賴Hadoop分布式存儲系統HDFS,存儲過程依賴Hadoop的分布式計算引擎MapReduce。
[0023]6中的歷史數據存儲實現流程如下:
第一步:ETL數據操作腳本抽取云網關緩沖池MYSQL中存儲的關系型數據表。ETL是數據抽取,轉換,加載的整體過程。在本系統中將MYSQL的元數據抽取到Hive中;
第二步:元數據在Hive的內置元數據庫Deby中建立元數據視圖;
第三步:ETL抽取的數據文件存儲到Hadoop平臺的分布式文件系統HDFS中;
第四步:啟動Hadoop平臺的MapReduce計算引擎,在Hi ve中建立對應數據表并加載HDFS中存入的元數據文件,存儲過程完成一個map-reduce作業。
[0024]4、5、6中涉及的承擔實時數據和歷史數據存儲處理的應用服務均屬于Hadoop體系。Hadoop是由大量計算機構成的分布式系統基礎架構,具有較好的可擴展性。本系統主要用到該架構的分布式文件系統HDFS和分布式計算引擎MapReduce兩個基本功能模塊。隨著Hadoop架構的發展,其生態圈不斷完善。本系統使用了支持實時流計算的Hadoop體系周邊軟件Storm框架,支持列值數據存儲的HBase數據表和數據倉庫Hive應用。
[0025]下面結合附圖1對本發明的系統架構做進一步說明。
[0026]傳感云(I)是該系統的數據生產源,由無線傳感器網絡集成GPRS通信模塊形成。傳感云內部采用SMAC協議互相通信,將各節點(2)采集到的傳感器數據通過SMAC協議傳輸到中繼節點(3),進而由GPRS模塊將數據封裝成IP數據分組,發送到遠程的云數據網關(4)。
[0027]數據云網關(4)負責接收來自傳感云(I)的數據分組,通過其運行的上位機軟件(5 )接收IP分組,解析出傳感云中對應的節點信息和傳感器數據,將該數據對應存儲到網關上的數據庫緩沖池(6)中。調度腳本檢查到整點非零點時,將實時數據按小時為單位,推送至IjStorm框架的集群(7)中。Storm按照說明書中5涉及的實現流程將數據實時寫入HBase數據表(8)。此時實時數據的存儲寫入完成,存入HBase中的實時數據可以供網站服務器(9)進行前端調用實現可視化監控過程。該部分主要承擔實時數據寫入HBase表的存儲過程。
[0028]數據云網關(4)上運行的調度腳本檢查到零點。調用ETL數據操作腳本,開始抽取數據緩沖池(6)中的當天數據,轉換數據格式后加載到Hive分布式數據倉庫(10)中。Hive數據倉庫采用內置Deby存儲元數據索引,其物理存儲基于Hadoop集群(11)提供的分布式文件系統HDFS模塊,從年初過程基于Hadoop集群(11)提供的分布式計算引擎MapReduce作業實現。該部分主要負責歷史數據到數據倉庫的存儲過程。
[0029 ]如圖2基于Hadoop體系的傳感云數據存儲系統數據處理流程。
[0030]傳感云生產環境數據,環境數據被封裝成IP分組,通過GPRS模塊傳輸到數據云網關。數據云網關接收IP分組,將解析的數據存入運行在數據云網關上的MYSQL數據緩沖池。任務調度腳本判斷系統時間到達零點后,啟動ETL歷史數據抽取腳本,抽取緩沖池的數據到Hive數據倉庫中。如果系統時間是非零點的整點時間,將數據推送到Storm集群進行數據清洗,進而存儲到實時響應的分布式數據庫HBase中。
【主權項】
1.一種基于Hadoop體系的傳感云數據存儲系統,其特征在于:系統以數據云網關為核心,由無線傳感器網絡構成的傳感云、數據云網關、分布式數據庫HBase、實時數據計算的Storm框架、Hive數據倉庫以及底層Hadoop基礎分布式存儲計算支持平臺6部分構成; 傳感云,用于采集環境數據;由無線傳感器網絡組成,網絡中包含獲取設備采集點的光照量、空氣溫濕度和土壤溫濕度及二氧化碳含量的傳感器族群設備; 數據云網關,由其上運行的上位機軟件、數據緩沖池MYSQL數據庫以及任務調度腳本構成;其中,上位機軟件接收傳感云產生的并通過GPRS模塊傳輸到數據云網關的實時數據,進而解析包含傳感云環境數據的IP分組,得到傳感云中具體節點信息和環境傳感器數據存入數據緩沖池MYSQL數據庫; 實時數據計算的Storm框架,實現實時數據向分布式數據庫HBase的寫入操作; 分布式數據庫HBase,用于存儲實時環境數據,以傳感器名稱為鍵,傳感器實時數據為值,并以key為標準分區存儲鍵值對到HBase實時數據表中; 數據倉庫Hive,實現歷史數據的存儲;數據云網關中,上位機解析的環境數據暫存在緩沖池中,當數據積累到指定時長,任務調度腳本執行ETL操作,將歷史數據存入到數據Hive倉庫的對應表中; Hadoop基礎分布式存儲計算支持平臺提供支持服務。2.根據權利要求1所述的基于Hadoop體系的傳感云數據存儲系統,其特征在于:所述Storm框架是類Hadoop架構的實時數據計算平臺,用于處理實時數據流,將上位機解析IP分組獲取的環境數據實時寫入到分布式數據庫HBase中。3.根據權利要求1所述的基于Hadoop體系的傳感云數據存儲系統,其特征在于:所述分布式數據庫HBase中的實時數據用于提供可視化展示。4.根據權利要求1所述的基于Hadoop體系的傳感云數據存儲系統,其特征在于:所述Hadoop基礎分布式存儲計算支持平臺的HDFS功能是Hi ve數據倉庫和HBase分布式數據庫的文件存儲基礎,其MapReduce功能是Hive和HBase的實際操作引擎。5.一種基于Hadoop體系的傳感云數據存儲系統的實現方法,其特征在于: (1)由無線傳感器網絡構成的傳感云獲取采集設備點的光照量、空氣和土壤溫濕度環境數據,通過其GPRS模塊無線傳輸到數據云網關; (2)數據云網關由上位機軟件、數據緩沖池MYSQL數據庫以及任務調度腳本構成;上位機接收來自傳感云的IP分組數據,解析后得到傳感云中具體節點信息和環境傳感器數據并存入MYSQL數據庫充當的數據緩沖池; (3)數據云網關的調度腳本整點時進行檢測操作;零點時調度ETL數據抽取腳本整理在數據云網關緩沖池中暫存的來自傳感云的本時段環境數據到數據倉庫Hive,非零點時推送數據到Storm框架,實現實時數據向分布式數據庫HBase的寫入操作。6.根據權利要求5所述的基于Hadoop體系的傳感云數據存儲系統的實現方法,其特征在于:步驟(3)中所述使用Storm框架實現實時數據向分布式數據庫HBase的寫入操作的實現流程如下: 第一步:數據云網關的調度腳本提交了 N條記錄進行更新操做; 第二步:將N條分成10份,每份N/10條; 第三步:每個Java虛擬機JVM實例構建一個擁有10個線程的線程池,線程池中的每個線程都通過ThreadLocal維護一個Connect 1n連接; 第四步:線程會對自己的這N/10條數據順序進行列自增,實現對HBase中HTable表的連接池共享連接的優化。7.根據權利要求5所述的基于Hadoop體系的傳感云數據存儲系統的實現方法,其特征在于:步驟(3)中所述ETL數據抽取腳本整理在數據云網關緩沖池中暫存的來自傳感云的本時段環境數據的實現流程如下: 第一步:按天為單位分別對緩沖池的實時數據進行推送操作; 第二步:對歷史數據進行數據抽取,轉換和加載操作。8.根據權利要求5或7所述的基于Hadoop體系的傳感云數據存儲系統的實現方法,其特征在于:步驟(3)中所述第一步和第二步所述實時和歷史數據處理的具體步驟為: 步驟I:對于當天解析出的傳感器數據,調度腳本以小時為粒度進行推送操作; 步驟2:實時數據插入HBase數據庫進行分布式存儲,待Storm框架處理和調用; 步驟3: Storm框架從HBase分布式數據庫中對應的表讀取實時數據,響應Web網站服務器的實時計算請求。
【文檔編號】G06F17/30GK105930384SQ201610232078
【公開日】2016年9月7日
【申請日】2016年4月14日
【發明人】李玉波, 唐浩, 楊余旺
【申請人】南京理工大學