基于內存計算的可定制多模式大數據處理系統的制作方法
【專利摘要】本發明提供了一種基于內存計算的可定制多模式大數據處理系統,包括:數據存儲層模塊、基于內存的數據共享和管理層模塊、基于內存計算的通用執行框架層模塊以及訪問接口層模塊;其中,采用了數據的分布式內存抽象機制、位置感知性調度機制、分布式混合列式存儲機制。本發明構建了海量數據存儲,提供面向集群并發計算的內存數據管理和共享框架,并提供高效、按需定制的大數據多模式通用處理框架,支持批處理、實時數據流計算,對數據的靈活分析與深度利用提供支撐。
【專利說明】
基于內存計算的可定制多模式大數據處理系統
技術領域
[0001]本發明涉及大數據技術(基礎平臺)領域的系統,具體地,涉及基于內存計算的可定制多模式大數據處理系統。
【背景技術】
[0002]大數據處理技術是海量數據處理的計算模式實現,基于大數據存儲與管理技術展開,是大數據分析挖掘與應用的核心支撐。隨著海量數據處理需求多樣化的發展,要求大數據處理技術能夠在統一的通用處理框架下,能夠提供批處理、流處理、圖處理等多種處理模式的數據處理功能,具備綜合化數據處理功能;與此同時,各行業、各領域的大數據處理需求向細粒度、可定制化方向發展,一方面要求大數據處理技術在保證系統作業吞吐的前提下,能夠提供細粒度調度操控接口,適應不同類型、不同優先級等多方面的作業處理需求,另一方面要求大數據處理技術不斷完善處理模式與處理效率,支持迭代、共享等多種處理邏輯,并適應數據加速膨脹的發展現狀,在各種模式下不斷提升處理效率。然而,盡管大數據處理技術及相關領域快速發展,但目前尚未出現能夠同時滿足高效的、支持定制模式的大數據處理系統。
[0003]經對現有技術的文獻檢索發現,名稱為“一種用于大數據處理的計算系統及計算方法”的專利文獻(申請號:201310455174.2 ;公開號:CN103488775A),公開了一種用于大數據處理的計算系統,其包括數據存儲模塊、消息傳輸模塊和計算模型模塊、以及編程接口模塊,可作為一種通用的大數據處理系統,但其采用的技術方案先進性不足,無法滿足數據處理的實時性需求,同時無法支持交互式查詢、流數據分析、圖處理等多種處理模式,可定制性效果不佳,另外系統整體吞吐性能也有待進一步提升。
[0004]又經檢索發現,專利名稱為“一種基于分布式內存計算的大數據實時處理系統及方法”的專利文獻(申請號:201510110508.1;公開號:CN104636199A),公開了一種基于分布式內存計算的大數據實時處理系統及方法,其實現了分布式內存集中使用,內存計算過程數據可恢復,以及數據實時增量計算,數據訪問速度快,可提供實時的分析結果。但其僅支持對數據的實時處理,所支持的處理模式單一,難以支持批處理、圖處理等處理需求;另外其所處理的數據規模限于集群內存容量,無法支撐數據量超過內存范圍的海量數據處理。
[0005]為此,有必要發展高效的可定制多模式大數據處理系統,從而實現突破基于內存的分布式批處理技術、高可靠性實時流處理、多模式計算資源統一管理,形成多模式綜合化海量數據處理編程支撐能力、細粒度可定制作業調度能力、迭代等復雜處理邏輯支撐能力,顯著提升數據處理效率。
【發明內容】
[0006]針對現有技術中的缺陷,本發明的目的是提供一種基于內存計算的可定制多模式大數據處理系統。
[0007]根據本發明提供的一種基于內存計算的可定制多模式大數據處理系統,包括:數據存儲層模塊、基于內存的數據共享和管理層模塊、基于內存計算的通用執行框架層模塊以及訪問接口層模塊;
[0008]數據存儲層模塊,用于數據存儲;
[0009]基于內存的數據共享和管理層模塊,用于銜接數據存儲層模塊與基于內存計算的通用執行框架層模塊,將數據存儲層模塊存儲的數據資源載入內存并按需共享;
[0010]基于內存計算的通用執行框架層模塊,用于數據處理編程;
[0011]訪問接口層模塊,用于提供數據訪問接口。
[0012]優選地,所述數據存儲層模塊包括如下任一個或任多個模塊:
[0013]分布式文件系統模塊,用于對數據進行存儲;
[0014]分布式數據庫模塊,用于在基于列的數據表上建立二級索引,所述二級索引包括全局索引和本地索引;
[0015]分布式消息隊列模塊,用于提供實時在線和批量離線處理數據的消息派發服務;
[0016]分布式同步系統模塊,用于提供高可用的分布式數據管理和系統協調框架,保證分布式環境中數據的強一致性。
[0017]優選地,所述基于內存的數據共享和管理層模塊,用于從數據存儲層模塊中加載需要頻繁訪問的數據,對基于工作集的任務提供抽象分布式的內存抽象,允許在執行多個任務時顯式地將工作集緩存在內存中。
[0018]優選地,所述基于內存的數據共享和管理層模塊,采用數據的分布式內存抽象機制;
[0019]所述數據的分布式內存抽象機制,具體為:對分布在集群中的數據,抽象成具有業務含義的邏輯視圖,并存儲于分布式集群的內存中。
[0020]優選地,所述基于內存的數據共享和管理層模塊,采用位置感知性調度機制;
[0021 ]所述位置感知性調度機制,具體為:在分布式集群中,根據存儲在全局節點中數據塊分布特征進行調度。
[0022]優選地,所述基于內存計算的通用執行框架層模塊,采用分布式混合列式存儲機制;
[0023]所述分布式混合列式存儲機制,具體為:將數據以鍵值對的形式經過序列化后存儲在內存、SSD和磁盤中的混合存儲機制。
[0024]與現有技術相比,本發明具有如下的有益效果:
[0025]1、構建了海量數據存儲、高度彈性擴展、自主管理修復、無單點故障的安全可信分布式持久化存儲,對數據提供跨內存、SSD、磁盤等復雜異構存儲設備進行透明、高效的分級存儲,解決存儲虛擬化、數據動態分布、存儲集群、異構存儲設備數據交換等問題,提升大數據存儲的支撐效能;
[0026]2、提供面向集群并發計算的內存數據管理和共享框架,主要解決內存分布式文件系統容錯問題、面向多個應用框架的內存共享和隔離管理問題、面向多個應用框架的共享內存數據高性能訪問問題、共享數據去冗余問題以及分布式內存數據的回收管理問題,用以銜接底層分布式持久化存儲和上層通用分布式計算框架,提升不同處理模式間的數據共享效率和數據處理效率;
[0027]3、提供高效、按需定制的大數據多模式通用處理框架,支持批處理、實時數據流計算、實時交互式查詢分析、高效快速迭代分析能力、圖計算、復雜邏輯處理等多模式綜合化海量數據處理編程、細粒度可定制作業調度,對數據的靈活分析與深度利用提供支撐;
[0028]4、提供廣泛易用的訪問接口,支持JDBC、ODBC、JAVA/C++AP1、REST等訪問方式;
[0029]5、可優選地引入lineage技術(允許基于數據衍生過程重建部分數據集的信息)和檢查點算法(在特定時刻將內存數據持久化到磁盤作為檢查點,用于保存和恢復程序運行狀態的相關算法,具體包括異步檢查點算法和一致檢查點算法)實現共享數據容錯機制和去冗余機制,使得海量數據在分布式集群中以內存的速度進行共享和訪問,極大地提高了分布式系統數據處理吞吐量,將lineage技術引入分布式內存存儲系統,繞開重復復制帶來的吞吐量低下的局限性,實現共享數據去冗余機制;
[0030]6、采用檢查點算法限定重復計算過程的范圍并解決所需資源的獲取,通過再次對任務的操作進行計算來恢復出錯或丟失的數據,實現分布式內存數據的容錯機制;
[0031]7、優選地可引入“off-heap”堆外內存技術(將對象從堆中脫離出來序列化,然后存儲在內存中,就像存儲到磁盤上一樣但仍然在RAM中;對象在這種狀態下必須先反序列化而不能直接使用,其不受垃圾回收GC機制收集)實現新的內存回收機制來避免傳統的JVM垃圾回收機制對堆的開銷,在分布式集群內存中實現對大數據集對象的管理,提升數據共享效率和數據處理效率;
[0032]8、優選地可引入優化的倒排索引技術(根據屬性的值來查找記錄,而不是由記錄來確定屬性值的索引方式。索引表中每一項都包括一個屬性值和具有該屬性值的記錄地址,用于確定屬性值和存儲位置的映射關系WPElastic Search分布式全文檢索技術(基于Elasticsearch實現的全文分布式檢索技術,其中Elasticsearch是一個基于Lucene的搜索引起,穩定可靠快速,具有良好的水平擴展能力,是專門為分布式環境設計的)的對分布式列式數據庫的非主鍵列和分布式內存數據集建立索引,實現更加高效的基于列的數據表上建立二級索引(全局/本地索引),支持高速的數據檢索、搜索和統計,并支持對文本建立增量全文索引。
【附圖說明】
[0033]通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:
[0034]圖1為基于內存計算的可定制多模式大數據處理系統的層次組成圖。
[0035]圖2為基于內存計算的可定制多模式大數據處理系統的調用關系圖。
【具體實施方式】
[0036]下面結合具體實施例對本發明進行詳細說明。以下實施例將有助于本領域的技術人員進一步理解本發明,但不以任何形式限制本發明。應當指出的是,對本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變化和改進。這些都屬于本發明的保護范圍。
[0037]本發明提供一種基于內存計算的可定制多模式大數據處理系統,本發明提供批處理、實時數據流計算、實時交互式查詢分析、高效快速迭代分析能力圖計算、復雜邏輯處理等多模式綜合化海量數據處理編程支撐能力、細粒度作業調度能力,具有根據需求進行靈活定制、采用基于內存計算的數據處理效率顯著提升等優點。
[0038]根據本發明提供的一種基于內存計算的可定制多模式大數據處理系統,包括:數據存儲層模塊、基于內存的數據共享和管理層模塊、基于內存計算的通用執行框架層模塊以及訪問接口層模塊;
[0039]數據存儲層模塊,用于數據存儲;
[0040]基于內存的數據共享和管理層模塊,用于銜接數據存儲層模塊與基于內存計算的通用執行框架層模塊,將數據存儲層模塊存儲的數據資源載入內存并按需共享;
[0041]基于內存計算的通用執行框架層模塊,用于數據處理編程;
[0042]訪問接口層模塊,用于提供數據訪問接口。
[0043]所述數據存儲層模塊包括如下任一個或任多個模塊:
[0044]分布式文件系統模塊,用于對數據進行存儲;
[0045]分布式數據庫模塊,用于在基于列的數據表上建立二級索引,所述二級索引包括全局索引和本地索引;
[0046]分布式消息隊列模塊,用于提供實時在線和批量離線處理數據的消息派發服務;
[0047]分布式同步系統模塊,用于提供高可用的分布式數據管理和系統協調框架,保證分布式環境中數據的強一致性。
[0048]所述基于內存的數據共享和管理層模塊,用于從數據存儲層模塊中加載需要頻繁訪問的數據,對基于工作集的任務提供抽象分布式的內存抽象,允許在執行多個任務時顯式地將工作集緩存在內存中。
[0049]所述基于內存的數據共享和管理層模塊,采用數據的分布式內存抽象機制;
[0050]所述數據的分布式內存抽象機制,具體為:對分布在集群中的數據,抽象成具有業務含義的邏輯視圖,并存儲于分布式集群的內存中。
[0051]所述基于內存的數據共享和管理層模塊,采用位置感知性調度機制;
[0052]所述位置感知性調度機制,具體為:在分布式集群中,根據存儲在全局節點中數據塊分布特征進行調度。
[0053]所述基于內存計算的通用執行框架層模塊,采用分布式混合列式存儲機制;
[0054]所述分布式混合列式存儲機制,具體為:將數據以鍵值對的形式經過序列化后存儲在內存、SSD和磁盤中的混合存儲機制。
[0055]接下來對本發明進行更為詳細的描述。
[0056]本發明提供的基于內存計算的可定制多模式大數據處理系統,從下至上依次包括數據存儲層模塊、基于內存的數據共享和管理層模塊、基于內存計算的通用執行框架層模塊以及訪問接口層模塊。
[0057]數據存儲層模塊具體包括分布式文件系統模塊、分布式數據庫模塊、分布式消息隊列模塊和分布式同步系統模塊,用于數據持久化存儲,支持多種模式的大數據處理提供存儲支撐,其中,所述持久化存儲是相較于內存方式的瞬時數據存儲而言的,例如磁盤存儲。分布式文件系統模塊對海量結構化、半結構化、非結構化多種類型數據進行存儲,以達到具備高可用性、高可靠性、安全性、高效性和高擴展性等的海量數據存儲能力;分布式數據庫模塊提供面向列的、全方位的事務處理能力,通過在基于列的數據表上建立二級索引(全局/本地索引),支持高速的數據檢索、搜索和統計,根據索引進行低延遲檢索,支持大量用戶同時進行高并發數據插入、修改、查詢和檢索,支持對文本建立增量全文索引,并且通過全文關鍵字索引支持低延遲全文關鍵字檢索,為分布式內存分析引擎提供高效數據掃描接口,充分利用分布式列式數據庫的內部數據結構以及全局/輔助索引進行SQL執行加速,可以滿足高速的聯機分析處理數據分析應用需求。
[0058]基于內存的數據共享和管理層模塊,用以銜接底層數據存儲層模塊分布式持久化存儲和上層通用分布式計算框架,將數據存儲中的海量數據資源最大限度地載入內存并按需共享,提升不同處理模式間的數據共享效率和數據處理效率。具體地,面向集群并發計算的所述基于內存的數據共享和管理層模塊,從數據存儲層模塊中加載需要頻繁訪問的數據,對基于工作集的任務(即多個并行操作重用中間結果的這類任務),通過內存分布式文件系統容錯機制、面向多個應用框架的內存共享和隔離管理機制、面向多個應用框架的共享內存數據高性能訪問機制、共享數據去冗余機制以及分布式內存數據的回收管理機制、數據的分布式內存抽象支持自動容錯、位置感知性調度和可伸縮性,允許在執行多個任務時顯式地將工作集緩存在內存中,加速工作集共享和重用,提升不同處理模式間的數據共享效率和數據處理效率,其中,所述顯示地是指,將不同框架下的數據集合以統一對象的方式存儲在內存中,方便各應用框架的數據共享和處理訪問。
[0059]基于內存的分布式通用計算框架層模塊,支持批處理、實時數據流計算、實時交互式查詢分析、高效快速迭代分析、圖計算、復雜邏輯處理等多模式綜合化海量數據處理編程、細粒度可定制作業調度,對數據的靈活分析與深度利用提供支撐。具體地,所述基于內存計算的通用執行框架層模塊,采用跨磁盤、SSD、內存三層架構的分布式混合列式存儲,最大限度地將數據資源載入內存,利用內存訪問速度優勢,縮短數據查詢時間,減少磁盤訪問次數,提供分布式內存計算任務調度框架和分布式內存計算任務執行引擎,提高整體的數據查詢處理速度、數據對象容量和數據吞吐量。主要用于解決海量數據的交互式數據挖掘和迭代分析效率問題,提高任務響應性能。
[0060]訪問接口模塊提供JDBC、0DBC、AP1、REST等廣泛易用的訪問接口,便于應用編程調用。
[0061]進一步地,根據不同的模式需要定制所述系統中不同模塊形成不同的支撐平臺,達到實現需要。
[0062]實施舉例1:針對實時流計算模型的定制化平臺
[0063]為支持流計算模式,實時流轉的數據,需要一個分布式的、高性能、高可靠性的消息處理和計算平臺。需要定制所述系統的數據存儲模塊中分布式文件系統、分布式實時數據庫、分布式消息隊列,基于內存的分布式通用計算框架層模塊,以及訪問接口模塊。
[0064]本發明所述系統中基于內存的通用計算框架包括實時流處理引擎,提供了強大的流計算表達能力,支持復雜的應用邏輯,生產系統的消息通過實時消息隊列進入計算集群,在集群內以流水線方式被依次處理,完成數據轉換、特征提取、策略檢查、分析告警等復雜服務計算,最終輸出到分布式實時數據庫等存儲集群,實時生成告警頁面、實時展示頁面等。系統具備強擴展性、強容錯、低延遲、高吞吐等特點,成熟應用于實時數據(如傳感器數據)的實時告警、風險控制、在線統計和挖掘等業務。
[0065]具體過程是:數據不斷的從數據源產生,比如在線業務數據、實時抓取的數據、從其他系統導入的數據等等,數據統一進入一個大吞吐量消息隊列系統。每條進入的數據,都會分別流轉到流處理平臺和批處理平臺中,這兩個平臺采用不同的計算模型,同時完成對數據的計算。其中,流處理平臺會在每條數據接受到的時刻就完成相應的計算工作,并在合適的時機根據輸出的配置,將結果輸出到數據存儲模塊。而批處理平臺,會先積攢一段時間的數據,然后在這些數據的基礎上運用某種算法模型,完成計算,計算結果同樣會輸出到數據存儲模塊。
[0066]實施舉例2:批處理模式的定制化平臺
[0067]批處理模式需要克服流處理不能縱觀全局數據的缺點,需要縱觀一段時期內的數據總體,結合新老數據執行任務。高效批處理模式需要定制本系統的數據存儲模塊中分布式文件系統、分布式實時數據庫、分布式消息隊列,面向集群并發計算的內存數據共享和管理層模塊,基于內存的分布式通用計算框架層模塊,以及訪問接口模塊。
[0068]具體過程是:數據不斷的從數據源產生,比如在線業務數據、實時抓取的數據、從其他系統導入的數據等等,數據統一進入一個大吞吐量消息隊列系統。每條進入的數據,都會流轉到批處理平臺中,經過一段時間的數據積累,然后在這些數據的基礎上運用某種算法模型,完成計算,計算結果同樣會輸出到數據存儲模塊。
[0069I本發明的特點包括:
[0070]I)在一個通用的大數據處理框架內,提供基于內存計算的流數據實時分析、數據批量處理、圖計算、交互式查詢、迭代分析等多種模式的數據處理功能;
[0071]2)通過提供一個高效的面向集群并發計算的內存數據共享和管理框架,允許文件以內存的速度在集群框架下進行可靠的共享,并讓不同的作業以及框架都能以內存的速度進行文件緩存和數據共享,可以減少哪些需要經常使用數據集通過訪問磁盤來獲得的次數,支持不同處理模式間的數據共享,使得可以在集群里以訪問內存的速度來訪問數據,使得整個系統的數據吞吐率提升數百倍;
[0072]3)在統一系統平臺下支持多模式計算集群,通過分布式集群資源配置和調度管理建立統一分布式數據集,動態創建交互式分析集群、批處理集群以及實時流處理集群等多種不同模式的數據集群,提供資源配額管理、動態資源調配、資源共享的能力,進而通過數據共享和管理框架實現不同模式間的高效共享和處理;
[0073]4)廣泛的訪問接口,提供JDBC、0DBC、AP1、REST多種訪問方式,在多種情況下使用。
[0074]本領域技術人員知道,除了以純計算機可讀程序代碼方式實現本發明提供的系統及其各個裝置以外,完全可以通過將方法步驟進行邏輯編程來使得本發明提供的系統及其各個裝置以邏輯門、開關、專用集成電路、可編程邏輯控制器以及嵌入式微控制器等的形式來實現相同功能。所以,本發明提供的系統及其各項裝置可以被認為是一種硬件部件,而對其內包括的用于實現各種功能的裝置也可以視為硬件部件內的結構;也可以將用于實現各種功能的裝置視為既可以是實現方法的軟件模塊又可以是硬件部件內的結構。
[0075]以上對本發明的具體實施例進行了描述。需要理解的是,本發明并不局限于上述特定實施方式,本領域技術人員可以在權利要求的范圍內做出各種變化或修改,這并不影響本發明的實質內容。在不沖突的情況下,本申請的實施例和實施例中的特征可以任意相互組合。
【主權項】
1.一種基于內存計算的可定制多模式大數據處理系統,其特征在于,包括:數據存儲層模塊、基于內存的數據共享和管理層模塊、基于內存計算的通用執行框架層模塊以及訪問接口層模塊; 數據存儲層模塊,用于數據存儲; 基于內存的數據共享和管理層模塊,用于銜接數據存儲層模塊與基于內存計算的通用執行框架層模塊,將數據存儲層模塊存儲的數據資源載入內存并按需共享; 基于內存計算的通用執行框架層模塊,用于數據處理編程; 訪問接口層模塊,用于提供數據訪問接口。2.根據權利要求1所述的基于內存計算的可定制多模式大數據處理系統,其特征在于,所述數據存儲層模塊包括如下任一個或任多個模塊: 分布式文件系統模塊,用于對數據進行存儲; 分布式數據庫模塊,用于在基于列的數據表上建立二級索引,所述二級索引包括全局索引和本地索引; 分布式消息隊列模塊,用于提供實時在線和批量離線處理數據的消息派發服務; 分布式同步系統模塊,用于提供高可用的分布式數據管理和系統協調框架,保證分布式環境中數據的強一致性。3.根據權利要求1所述的基于內存計算的可定制多模式大數據處理系統,其特征在于,所述基于內存的數據共享和管理層模塊,用于從數據存儲層模塊中加載需要頻繁訪問的數據,對基于工作集的任務提供抽象分布式的內存抽象,允許在執行多個任務時顯式地將工作集緩存在內存中。4.根據權利要求1所述的基于內存計算的可定制多模式大數據處理系統,其特征在于,所述基于內存的數據共享和管理層模塊,采用數據的分布式內存抽象機制; 所述數據的分布式內存抽象機制,具體為:對分布在集群中的數據,抽象成具有業務含義的邏輯視圖,并存儲于分布式集群的內存中。5.根據權利要求1所述的基于內存計算的可定制多模式大數據處理系統,其特征在于,所述基于內存的數據共享和管理層模塊,采用位置感知性調度機制; 所述位置感知性調度機制,具體為:在分布式集群中,根據存儲在全局節點中數據塊分布特征進行調度。6.根據權利要求1所述的基于內存計算的可定制多模式大數據處理系統,其特征在于,所述基于內存計算的通用執行框架層模塊,采用分布式混合列式存儲機制; 所述分布式混合列式存儲機制,具體為:將數據以鍵值對的形式經過序列化后存儲在內存、SSD和磁盤中的混合存儲機制。
【文檔編號】G06F17/30GK106021484SQ201610333546
【公開日】2016年10月12日
【申請日】2016年5月18日
【發明人】馮偉, 王金華
【申請人】中國電子科技集團公司第三十二研究所