據(jù)庫表的數(shù)據(jù)查詢效率。例如,數(shù)據(jù)庫表的〈key,value〉可以是〈店鋪ID,商戶ID>的形式,解析得到的原始數(shù)據(jù)可通過關(guān)鍵詞key (例如,解析得到的原始數(shù)據(jù)關(guān)鍵字段)進(jìn)行關(guān)聯(lián)查詢,形成一條可直接用于指標(biāo)統(tǒng)計的完整數(shù)據(jù)。本發(fā)明在日志數(shù)據(jù)的關(guān)聯(lián)查詢預(yù)處理中,對于屬于海量數(shù)據(jù)的數(shù)據(jù)庫表數(shù)據(jù)采用內(nèi)存緩存方式,可有效解決原始數(shù)據(jù)關(guān)聯(lián)查詢中頻繁訪問數(shù)據(jù)庫而帶來的資源浪費和效率低下的問題,顯著提高系統(tǒng)的數(shù)據(jù)吞吐量。
[0036]原始數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢后形成的完整數(shù)據(jù)可發(fā)送至Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)進(jìn)行存儲,供后續(xù)相關(guān)指標(biāo)的統(tǒng)計使用。HDFS有著高容錯性的特點,并且部署在低廉的硬件上,適合超大數(shù)據(jù)集計算。
[0037]上面結(jié)合【具體實施方式】描述了本發(fā)明的基于Flume的數(shù)據(jù)處理方法的流程,下面將結(jié)合【具體實施方式】描述應(yīng)用上述方法的裝置。
[0038]參見圖2,圖2是根據(jù)本發(fā)明一種實施方式的基于Flume的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,該裝置200可包括:
[0039]收集模塊201,設(shè)置于應(yīng)用服務(wù)器,用于收集所述應(yīng)用服務(wù)器的日志數(shù)據(jù);
[0040]均衡模塊202,用于根據(jù)Flume服務(wù)器的運行參數(shù)將所述日志數(shù)據(jù)均衡地分發(fā)至所述Flume服務(wù)器,其中,所述運行參數(shù)包括以下的一種或多種:負(fù)載、性能和帶寬。
[0041 ]本發(fā)明的基于Flume的數(shù)據(jù)處理裝置200可包括收集模塊201和均衡模塊202,各個模塊可設(shè)置于不同的服務(wù)器上,其中,收集模塊201可設(shè)置于應(yīng)用服務(wù)器,均衡模塊202可設(shè)置于專用的均衡服務(wù)器,均衡服務(wù)器與應(yīng)用服務(wù)器和Flume服務(wù)器進(jìn)行數(shù)據(jù)通信,其接收來自應(yīng)用服務(wù)器的日志數(shù)據(jù),根據(jù)預(yù)定的均衡策略將這些日志數(shù)據(jù)分發(fā)到Flume服務(wù)器。
[0042]本發(fā)明的應(yīng)用服務(wù)器可以是對外提供各種業(yè)務(wù)處理應(yīng)用的服務(wù)器,并且可以通過服務(wù)器集群的形式實現(xiàn)。應(yīng)用服務(wù)器在提供應(yīng)用服務(wù)的過程中,產(chǎn)生各種日志數(shù)據(jù),例如,可包括訪問日志(例如,WEB訪問日志等)和javascript標(biāo)記日志數(shù)據(jù)等。在每臺應(yīng)用服務(wù)器上均可設(shè)置收集模塊201,各臺應(yīng)用服務(wù)器上的收集模塊201收集本臺應(yīng)用服務(wù)器上的日志數(shù)據(jù)。收集模塊201收集的日志數(shù)據(jù)可以實時地同步發(fā)送,而且可具有隊列緩存功能,在日志數(shù)據(jù)接收方出現(xiàn)異常時,將日志數(shù)據(jù)緩存到隊列中,等待接收方恢復(fù)正常時繼續(xù)發(fā)送,避免發(fā)送方一端日志數(shù)據(jù)的丟失。
[0043]在一些實施方式中,應(yīng)用服務(wù)器可以是WEB服務(wù)器。WEB服務(wù)器可使用Apache記錄接收的每一個HTTP請求日志,然后使用customlog配置來調(diào)用Linux系統(tǒng)的logger寫日志,所寫的日志可被收集模塊201監(jiān)聽到,監(jiān)聽到的日志數(shù)據(jù)可發(fā)送至相應(yīng)的均衡模塊202進(jìn)行分發(fā)。
[0044]均衡模塊202可根據(jù)Flume服務(wù)器的運行參數(shù)將日志數(shù)據(jù)均衡地分發(fā)至所述Flume服務(wù)器,其中,所述Flume服務(wù)器的運行參數(shù)包括以下的一種或多種:負(fù)載、性能(例如,CPU和內(nèi)存等)和帶寬。本發(fā)明的Flume服務(wù)器可以是集群的形式,可包括多個服務(wù)器。均衡模塊202可事先進(jìn)行配置,例如,可包括網(wǎng)絡(luò)映射關(guān)系的配置,即日志數(shù)據(jù)統(tǒng)一發(fā)往均衡服務(wù)器的均衡模塊,再由均衡模塊分發(fā)到各臺Flume服務(wù)器,還可包括均衡策略的配置,即基于Flume服務(wù)器的運行參數(shù)動態(tài)調(diào)節(jié)分發(fā)策略,例如,可以采用加權(quán)的方式進(jìn)行負(fù)載均衡。
[0045]均衡模塊202可以定時接收各個Flume服務(wù)器報告的各自的運行參數(shù),并根據(jù)各個Flume服務(wù)器報告的運行參數(shù)對Flume服務(wù)器的運行參數(shù)進(jìn)行更新。均衡模塊202根據(jù)定時更新的Flume服務(wù)器的運行參數(shù),可獲知各個Flume服務(wù)器的動態(tài)負(fù)載狀態(tài)及相關(guān)運行狀態(tài),基于Flume服務(wù)器的動態(tài)的綜合狀態(tài)均衡地將日志數(shù)據(jù)分發(fā)到Flume服務(wù)器。相對于現(xiàn)有的Flume收集直接從不同的WEB服務(wù)器收集日志數(shù)據(jù)相比,本發(fā)明根據(jù)Flume服務(wù)器的運行參數(shù)對日志數(shù)據(jù)均衡分發(fā),可最大限度地利用分布式日志收集服務(wù)器資源,提高系統(tǒng)的數(shù)據(jù)吞吐量。
[0046]本發(fā)明的Flume服務(wù)器可包括source (接收)模塊、channel (隊列)模塊和sink (處理)模塊。本發(fā)明的基于Flume的數(shù)據(jù)處理裝置200還可包括傳輸處理模塊203,設(shè)置于Flume服務(wù)器的channel隊列模塊,如圖3所示。傳輸處理模塊203可以用于通過文件file類型的channel(隊列)對日志數(shù)據(jù)進(jìn)行隊列緩存,這種緩存方式可有效避免使用內(nèi)存類型隊列而出現(xiàn)的服務(wù)器重啟后數(shù)據(jù)丟失的情況,改善數(shù)據(jù)處理的可靠性。
[0047]由上述可知,從應(yīng)用服務(wù)器集群中收集的日志數(shù)據(jù)可包括訪問日志數(shù)據(jù)和javascript標(biāo)記日志數(shù)據(jù)等。本發(fā)明的基于Flume的數(shù)據(jù)處理裝置200還可包括解析模塊204,設(shè)置于Flume服務(wù)器的sink模塊。解析模塊204可用于對日志數(shù)據(jù)中的訪問日志數(shù)據(jù)和javascript標(biāo)記日志數(shù)據(jù)分別解析,得到原始數(shù)據(jù)。本發(fā)明針對不同類別的日志數(shù)據(jù)分別解析,可顯著改善日志數(shù)據(jù)解析的效率。
[0048]由于WEB應(yīng)用服務(wù)器上日志數(shù)據(jù)的不完整性,還需要對解析得到的原始數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢,從而得到可用于指標(biāo)統(tǒng)計的一條完整數(shù)據(jù)。而且,原始數(shù)據(jù)關(guān)聯(lián)查詢的查詢效率是影響Flume服務(wù)器收集日志數(shù)據(jù)吞吐量的關(guān)鍵因素之一。
[0049]本發(fā)明的基于Flume的數(shù)據(jù)處理裝置200還可包括查詢模塊205,設(shè)置Flume服務(wù)器的sink模塊。查詢模塊205將日志數(shù)據(jù)解析得到的原始數(shù)據(jù)與緩存于內(nèi)存中的數(shù)據(jù)庫表的業(yè)務(wù)數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢。從而形成用于指標(biāo)統(tǒng)計的數(shù)據(jù)。其中,緩存的數(shù)據(jù)庫表可以通過EHcache分布式緩存進(jìn)行緩存,并且還可以結(jié)合LRU(Least Recently Used,近期最少使用)算法,將數(shù)據(jù)庫表中的數(shù)據(jù)以〈key,Value>的形式緩存于內(nèi)存中,多方面提高數(shù)據(jù)庫表的數(shù)據(jù)查詢效率。例如,數(shù)據(jù)庫表的〈key,value〉可以是〈店鋪ID,商戶ID>的形式,解析得到的原始數(shù)據(jù)可通過關(guān)鍵詞key(例如,解析得到的原始數(shù)據(jù)關(guān)鍵字段)進(jìn)行關(guān)聯(lián)查詢,形成一條可直接用于指標(biāo)統(tǒng)計的完整數(shù)據(jù)。本發(fā)明在日志數(shù)據(jù)的關(guān)聯(lián)查詢預(yù)處理中,對于屬于海量數(shù)據(jù)的數(shù)據(jù)庫表數(shù)據(jù)采用內(nèi)存緩存方式,可有效解決原始數(shù)據(jù)關(guān)聯(lián)查詢中頻繁訪問數(shù)據(jù)庫而帶來的資源浪費和效率低下的問題,顯著提高系統(tǒng)的數(shù)據(jù)吞吐量。
[0050]原始數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢后形成的完整數(shù)據(jù)可發(fā)送至Hadoop分布式文件系統(tǒng)HDFS進(jìn)行存儲,供后續(xù)相關(guān)指標(biāo)的統(tǒng)計使用。HDFS有著高容錯性的特點,并且部署在低廉的硬件上,適合超大數(shù)據(jù)集計算。
[0051]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件結(jié)合硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案對【背景技術(shù)】做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,智能手機或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
[0052]本發(fā)明說明書中使用的術(shù)語和措辭僅僅為了舉例說明,并不意味構(gòu)成限定。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不脫離所公開的實施方式的基本原理的前提下,對上述實施方式中的各細(xì)節(jié)可進(jìn)行各種變化。因此,本發(fā)明的范圍只由權(quán)利要求確定,在權(quán)利要求中,除非另有說明,所有的術(shù)語應(yīng)按最寬泛合理的意思進(jìn)行理解。
【主權(quán)項】
1.一種基于Flume的數(shù)據(jù)處理方法,其特征在于,所述方法包括: 從應(yīng)用服務(wù)器收集日志數(shù)據(jù); 根據(jù)Flume服務(wù)器的運行參數(shù)將所述日志數(shù)據(jù)均衡地分發(fā)至所述Flume服務(wù)器,其中,所述運行參數(shù)包括以下的一種或多種:負(fù)載、性能和帶寬。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述運行參數(shù)是通過所述Flume服務(wù)器定時報告進(jìn)行更新。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在將所述日志數(shù)據(jù)發(fā)送至Flume服務(wù)器之后,通過文件類型的隊列Channel對所述日志數(shù)據(jù)進(jìn)行緩存。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述日志數(shù)據(jù)包括訪問日志數(shù)據(jù)和javascript標(biāo)記日志數(shù)據(jù)。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 在將所述日志數(shù)據(jù)發(fā)送至Flume服務(wù)器之后,將所述日志數(shù)據(jù)中的訪問日志數(shù)據(jù)和javascript標(biāo)記日志數(shù)據(jù)分別解析。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 將所述日志數(shù)據(jù)解析后的原始數(shù)據(jù)與緩存于內(nèi)存中的數(shù)據(jù)庫表中的業(yè)務(wù)數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢以形成用于指標(biāo)統(tǒng)計的數(shù)據(jù)。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)庫表是通過EHcache分布式緩存。8.一種基于Flume的數(shù)據(jù)處理裝置,其特征在于,所述裝置包括: 收集模塊,設(shè)置于應(yīng)用服務(wù)器,用于收集所述應(yīng)用服務(wù)器的日志數(shù)據(jù); 均衡模塊,用于根據(jù)Flume服務(wù)器的運行參數(shù)將所述日志數(shù)據(jù)均衡地分發(fā)至所述Flume服務(wù)器,其中,所述運行參數(shù)包括以下的一種或多種:負(fù)載、性能和帶寬。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述均衡模塊,還用于定時接收所述Flume服務(wù)器報告的運行參數(shù),并對所述Flume服務(wù)器的運行參數(shù)進(jìn)行更新。10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 傳輸處理模塊,設(shè)置于Flume服務(wù)器,用于通過文件類型的隊列Channel對所述日志數(shù)據(jù)進(jìn)行緩存。11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述日志數(shù)據(jù)包括訪問日志數(shù)據(jù)和javascript標(biāo)記日志數(shù)據(jù)。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 解析模塊,用于將所述日志數(shù)據(jù)中的訪問日志數(shù)據(jù)和javascript標(biāo)記日志數(shù)據(jù)分別解析。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括: 查詢模塊,用于將所述日志數(shù)據(jù)解析后的原始數(shù)據(jù)與緩存于內(nèi)存中的數(shù)據(jù)庫表中的業(yè)務(wù)數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢以形成用于指標(biāo)統(tǒng)計的數(shù)據(jù)。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述數(shù)據(jù)庫表是通過EHcache分布式緩存。
【專利摘要】本發(fā)明提供了基于Flume的數(shù)據(jù)處理方法和裝置。該方法包括:從應(yīng)用服務(wù)器收集日志數(shù)據(jù);根據(jù)Flume服務(wù)器的運行參數(shù)將所述日志數(shù)據(jù)均衡地分發(fā)至所述Flume服務(wù)器,其中,所述運行參數(shù)包括以下的一種或多種:負(fù)載、性能和帶寬。實施本發(fā)明提供的方法和裝置,可顯著改善系統(tǒng)的可靠性和吞吐量。
【IPC分類】G06F17/30
【公開號】CN105653662
【申請?zhí)枴?br>【發(fā)明人】王力, 彭塨燁, 王明龍, 謝瀟宇, 王偉, 包辰明, 趙金鑫, 張舜華, 胡立強, 陳暑生
【申請人】中國建設(shè)銀行股份有限公司
【公開日】2016年6月8日
【申請日】2015年12月29日