一種同時支持離線數(shù)據(jù)和實時在線數(shù)據(jù)的大數(shù)據(jù)處理解決系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種大數(shù)據(jù)處理解決方案,特別是一種同時支持離線數(shù)據(jù)和實時在線數(shù)據(jù)的完整的大數(shù)據(jù)處理解決系統(tǒng)。
【背景技術(shù)】
[0002]隨著技術(shù)的發(fā)展,人們越來越需要構(gòu)建復(fù)雜和低延遲的處理系統(tǒng)。他們所能使用的兩個工具都不能完全解決問題:用于處理歷史數(shù)據(jù)的可擴展的高延遲批處理系統(tǒng),和無法再處理結(jié)果的低延遲流式處理系統(tǒng)。但將這兩個工具連在一起,就可以構(gòu)建可用的解決方案。
[0003]Hadoop框架帶來了批量數(shù)據(jù)處理,但是網(wǎng)絡(luò)規(guī)模大數(shù)據(jù)的實時處理仍然是一個挑戰(zhàn)。有很多技術(shù)可以用來建立這樣一個完整的數(shù)據(jù)處理系統(tǒng),但要選擇合適的工具并且編排使用它們卻是復(fù)雜和艱巨的。
【發(fā)明內(nèi)容】
[0004]基于以上情況,本發(fā)明提出了一種同時支持離線數(shù)據(jù)和實時在線數(shù)據(jù)的完整的大數(shù)據(jù)處理解決方案。其中包括:
[0005]一、一個可配置的能夠采集多種數(shù)據(jù)來源的數(shù)據(jù)采集模塊,并引入了分布式故障檢測機制,來提高數(shù)據(jù)采集的穩(wěn)定性和可靠性。
[0006]二、一個可配置的數(shù)據(jù)預(yù)處理模塊,可以從統(tǒng)一配置中心讀取配置信息加載相應(yīng)的處理程序。
[0007]三、一個改進算法的分布式文件存儲模塊,提出一種對節(jié)點性能的評估方法,對HDFS存儲算法進行改進,使其能更加快速、高效、準確地完成海量數(shù)據(jù)的存儲工作。
[0008]四、一個高性能的實時數(shù)據(jù)處理模塊,采用Strom分布式流式處理框架,處理海量實時數(shù)據(jù),并將計算結(jié)果實時存入數(shù)據(jù)庫中。
[0009]五、一個高性能的離線數(shù)據(jù)處理模塊,采用HadoopMapReduce編程模型,并提出了一種基于節(jié)點動態(tài)性能推斷的任務(wù)分配算法,提高了離線數(shù)據(jù)處理模塊的性能和穩(wěn)定性。
[0010]六、一個高度定制化的綜合展示模塊,基于Web容器提供查詢服務(wù),通過ECharts實現(xiàn)分析結(jié)果可視化,用戶可通過拖拽自定義布局,定制個性化的展示頁面,圖表之間支持聯(lián)動和鉆取。并提供界面對統(tǒng)一配置中心進行維護。
[0011 ]為實現(xiàn)本發(fā)明之目的,采用以下技術(shù)方案予以實現(xiàn):
[0012]—種同時支持離線數(shù)據(jù)和實時在線數(shù)據(jù)的大數(shù)據(jù)處理系統(tǒng),包括:
[0013]數(shù)據(jù)采集模塊、預(yù)處理模塊、分布式存儲模塊、分布式實時流計算模塊、離線數(shù)據(jù)處理模塊、數(shù)據(jù)庫、數(shù)據(jù)綜合分析查詢模塊、綜合展示模塊和統(tǒng)一配置中心;
[0014]其中:
[0015]數(shù)據(jù)采集模塊用于從統(tǒng)一配置中心讀取配置信息,根據(jù)該配置信息讀取關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù),并將該數(shù)據(jù)導(dǎo)入分布式文件存儲模塊,接收應(yīng)用集群發(fā)出的處理請求,將接收到的請求數(shù)據(jù)直接提供給分布式實時流計算模塊,將應(yīng)用集群日志文件傳送到本地磁盤進行存儲備份;
[0016]數(shù)據(jù)預(yù)處理模塊用于從統(tǒng)一配置中心讀取配置信息,讀取本地磁盤存儲的應(yīng)用的日志文件,對數(shù)據(jù)進行處理后存入本地磁盤,并上傳文件到分布式文件存儲模塊;
[0017]分布式存儲模塊用于存儲海量數(shù)據(jù);
[0018]分布式實時流計算模塊用于從數(shù)據(jù)采集模塊讀取數(shù)據(jù),并讀取統(tǒng)一配置中心的配置信息,進行實時計算,將計算結(jié)果存儲到數(shù)據(jù)庫中;離線數(shù)據(jù)處理模塊用于處理分布式文件存儲模塊中存儲的數(shù)據(jù),將各個指標計算完成后寫入數(shù)據(jù)庫;
[0019]數(shù)據(jù)庫用于存儲數(shù)據(jù);
[0020]數(shù)據(jù)綜合分析查詢模塊用于訪問數(shù)據(jù)庫,并提供各種指標查詢接口;
[0021 ]綜合展示模塊用于基于web容器提供查詢服務(wù),實現(xiàn)分析結(jié)果可視化;
[0022]統(tǒng)一配置中心用于對應(yīng)用集群進行配置。
[0023]所述的大數(shù)據(jù)處理系統(tǒng),優(yōu)選的:數(shù)據(jù)采集模塊包括消息中間件模塊,該消息中間件模塊接收應(yīng)用集群發(fā)出的處理請求,接收到的數(shù)據(jù)直接提供給分布式實時流計算模塊;該消息中間件模塊還將應(yīng)用集群日志文件傳送到本地磁盤進行存儲備份。
[0024]所述的大數(shù)據(jù)處理系統(tǒng),優(yōu)選的:數(shù)據(jù)預(yù)處理模塊對數(shù)據(jù)進行預(yù)處理包括對數(shù)據(jù)進行清洗、規(guī)約,壓縮處理相同類別的數(shù)據(jù)。
[0025]所述的大數(shù)據(jù)處理系統(tǒng),優(yōu)選的分布式文件存儲模塊包括:存儲節(jié)點、節(jié)點性能評估模塊;
[0026]其中:
[0027](I)節(jié)點性能評估模塊對應(yīng)用集群中各個服務(wù)器的性能進行評估,生成一個動態(tài)的節(jié)點性能基準文件,該文件根據(jù)需求定期更新;對集群中節(jié)點服務(wù)器性能評估包括服務(wù)器的CPU處理能力、內(nèi)存性能和磁盤I/O性能;
[0028](2)當用戶上傳文件時,節(jié)點性能評估模塊先計算存儲節(jié)點的性能數(shù)值與所有節(jié)點性能數(shù)值總和的比例值,再根據(jù)該比例的值來確定該節(jié)點可以存儲的數(shù)據(jù)大小占集群總存儲數(shù)據(jù)大小的比例。
[0029]所述的大數(shù)據(jù)處理系統(tǒng),優(yōu)選的:
[0030]服務(wù)器節(jié)點的性能值P_i用以下函數(shù)描述,其中C_i表示CPU性能值,M_i表示內(nèi)存性能值,D_i表示磁盤I/O性能值,W_i表示網(wǎng)絡(luò)I/O性能值:
[0031]Pi = aCi+0Mi+yDi+5ffi
[0032]α+β+ γ +δ = I
[0033]上述公式中α、β、γ、3這四個參數(shù)表示各個指標對于服務(wù)器性能的不同權(quán)重的影響。
[0034]一種同時支持離線數(shù)據(jù)和實時在線數(shù)據(jù)的大數(shù)據(jù)處理方法,包括:
[0035]從統(tǒng)一配置中心讀取配置信息,根據(jù)該配置信息讀取關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù),并將該數(shù)據(jù)導(dǎo)入分布式文件存儲模塊,接收應(yīng)用集群發(fā)出的處理請求,將接收到的請求數(shù)據(jù)直接提供給分布式實時流計算模塊,將應(yīng)用集群日志文件傳送到本地磁盤進行存儲備份;
[0036]從統(tǒng)一配置中心讀取配置信息,讀取本地磁盤存儲的應(yīng)用的日志文件,對數(shù)據(jù)進行預(yù)處理后存入本地磁盤,并上傳文件到分布式文件存儲模塊;
[0037]從數(shù)據(jù)采集模塊讀取數(shù)據(jù),并讀取統(tǒng)一配置中心的配置信息,進行實時計算,將計算結(jié)果存儲到數(shù)據(jù)庫中;離線數(shù)據(jù)處理模塊用于處理分布式文件存儲模塊中存儲的數(shù)據(jù),將各個指標計算完成后寫入數(shù)據(jù)庫。
[0038]所述的大數(shù)據(jù)處理方法,優(yōu)選的:對數(shù)據(jù)進行預(yù)處理包括對數(shù)據(jù)進行清洗、規(guī)約,壓縮處理相同類別的數(shù)據(jù)。
【附圖說明】
[0039]圖1為本發(fā)明提供的同時支持離線數(shù)據(jù)和實時在線數(shù)據(jù)的大數(shù)據(jù)處理系統(tǒng)示意圖;
[0040]圖2為本發(fā)明的改進調(diào)度算法示意圖。
【具體實施方式】
[0041]如圖1所示,同時支持離線數(shù)據(jù)和實時在線數(shù)據(jù)的大數(shù)據(jù)處理系統(tǒng)包括:數(shù)據(jù)采集模塊、數(shù)據(jù)預(yù)處理模塊、統(tǒng)一配置中心、分布式文件存儲模塊、分布式實時流計算模塊、離線數(shù)據(jù)處理模塊、數(shù)據(jù)庫、數(shù)據(jù)綜合分析查詢模塊和綜合展示模塊。
[0042]數(shù)據(jù)采集模塊:
[0043](I)從統(tǒng)一配置中心讀取配置信息,通過定時循環(huán)調(diào)度的方式將一個關(guān)系型數(shù)據(jù)庫(例如:MySQL,0racle等)中的數(shù)據(jù)增量導(dǎo)入分布式文件存儲模塊,如HDFS。例如導(dǎo)入Oracle數(shù)據(jù)庫中存儲的用戶信息表,產(chǎn)品明細表等,該數(shù)據(jù)作為基礎(chǔ)數(shù)據(jù)在后續(xù)的日志處理中配合日志數(shù)據(jù)進行分析、計算等處理。數(shù)據(jù)采集模塊可以根據(jù)以上從配置中心讀取的數(shù)據(jù)配置導(dǎo)出數(shù)據(jù)的數(shù)據(jù)庫的連接信息、從哪些表導(dǎo)出數(shù)據(jù),導(dǎo)出數(shù)據(jù)的方式(全量/增量)以及導(dǎo)出數(shù)據(jù)的開始時間、數(shù)據(jù)類型等。
[0044](2)包括消息中間件模塊,可以是WebSphere MQ消息中間件,該中間件模塊接收應(yīng)用集群發(fā)出的處理請求,接收到的數(shù)據(jù)直接提供給分布式實時流計算模塊用于實時計算。通過該消息中間件模塊將各應(yīng)用的日志文件(應(yīng)用集群日志文件)傳送到本地磁盤進行存儲備份。該部分不會對數(shù)據(jù)進行任何處理修改,保證數(shù)據(jù)完整地存儲。日志文件將直接提供給數(shù)據(jù)預(yù)處理模塊使用。采集模塊還可包括調(diào)度模塊和同步任務(wù)管理模塊,同步任務(wù)管理模塊用于同步將數(shù)據(jù)庫中的數(shù)據(jù)采集到HDFS,調(diào)度模塊用于對上述數(shù)據(jù)采集進行定時。
[0045](3)數(shù)據(jù)采集模塊作為一個分布式系統(tǒng),本身為多節(jié)點結(jié)構(gòu),數(shù)據(jù)需要在不同節(jié)點間進行傳輸,因此會出現(xiàn)節(jié)點失效、系統(tǒng)進程失效、節(jié)點負載過大等情況,而這些情況都將會導(dǎo)致數(shù)據(jù)丟失。為了保障數(shù)據(jù)的傳輸安全,本發(fā)明還提出了一個基于數(shù)據(jù)采集模塊的分布式故障檢測框架。該框架中,數(shù)據(jù)采集模塊采集的數(shù)據(jù)源包括兩類節(jié)點,一類是主節(jié)點,另一類是受控節(jié)點,將一個監(jiān)控節(jié)點管理服務(wù)器作為主節(jié)點,各應(yīng)用節(jié)點作為受控節(jié)點,在各個應(yīng)用節(jié)點完成對各個應(yīng)用的監(jiān)測和控制功能,監(jiān)控主節(jié)點通過心跳通信的方法與各個受控節(jié)點進行數(shù)據(jù)交互。受控節(jié)點需要定時向其發(fā)送心跳數(shù)據(jù),報告該節(jié)點應(yīng)用的狀態(tài)信息,可以是該節(jié)點的應(yīng)用名稱、存儲位置、IP地址、當前節(jié)點的CPU負載等節(jié)點狀態(tài)信息。當某個受控節(jié)點在心跳周期內(nèi)沒有發(fā)送心跳數(shù)據(jù),則判定該節(jié)點暫時失效,當某個節(jié)點失效時及時報警,有利于相關(guān)人員盡快排除故障,提高數(shù)據(jù)傳輸?shù)娜蒎e性和可靠性。同時,管理員可以通過web界面來對受控節(jié)點配置進行更改,并通過心跳通信由監(jiān)控節(jié)點來通知受控節(jié)點更新其配置。
[0046]數(shù)據(jù)預(yù)處理模塊:從統(tǒng)一配置中心讀取配置信息,讀取通過所述消息中間件模塊傳送到本地磁盤的各個應(yīng)用的日志文件,