文件處理方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種文件處理方法和系統(tǒng)。該文件處理方法包括:獲取日志文件,其中,所述日志文件用于傳送到多個(gè)設(shè)備集合中的第一設(shè)備集合,所述多個(gè)設(shè)備集合順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操作;以及由多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)日志文件進(jìn)行第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得日志文件的解析結(jié)果。上述文件處理方法和系統(tǒng),利用類(lèi)似流水線的方式在多個(gè)設(shè)備集合中進(jìn)行與日志文件相關(guān)的處理,可以有效提高日志文件的處理效率。
【專(zhuān)利說(shuō)明】
文件處理方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種文件處理方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,在某些應(yīng)用領(lǐng)域,每天會(huì)產(chǎn)生大量的日志文件。這些日志文件被收集并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,例如分布式文件系統(tǒng)(HDFS)。日志文件通常是壓縮格式的文件??梢岳梦募幚碓O(shè)備不斷地從數(shù)據(jù)存儲(chǔ)系統(tǒng)中下載日志文件,對(duì)所下載的日志文件進(jìn)行解壓縮、統(tǒng)一編碼等基本處理。然后,可以將處理后的日志文件存儲(chǔ)到數(shù)據(jù)庫(kù)中,并且可以對(duì)日志文件進(jìn)行分析,例如可以分析與某個(gè)應(yīng)用相關(guān)的日志文件以確定該應(yīng)用啟動(dòng)時(shí)需要調(diào)用多少進(jìn)程、該應(yīng)用每天彈出多少?gòu)V告等。當(dāng)用戶對(duì)某個(gè)應(yīng)用的運(yùn)行情況進(jìn)行查詢時(shí),可以將與該應(yīng)用相關(guān)的日志分析結(jié)果反饋給用戶以供其查看。
[0003]在現(xiàn)有技術(shù)中,日志文件的下載、解壓縮、統(tǒng)一編碼等操作通常在同一文件處理設(shè)備上順序完成,因此如果某一環(huán)節(jié)的操作出現(xiàn)問(wèn)題,會(huì)導(dǎo)致日志文件的整體處理速度變慢甚至停滯。實(shí)際上,文件處理設(shè)備每天需要收集處理的日志文件的數(shù)據(jù)量可能非常大,例如可能多達(dá)60太字節(jié)(TB),因此文件處理設(shè)備的處理速度過(guò)慢可能造成大量日志文件處理的積壓。
【發(fā)明內(nèi)容】
[0004]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種至少部分地解決上述問(wèn)題的文件處理方法和系統(tǒng)。
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供一種文件處理方法。該文件處理方法包括:獲取日志文件,其中,所述日志文件用于傳送到多個(gè)設(shè)備集合中的第一設(shè)備集合,所述多個(gè)設(shè)備集合順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操作;以及由多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)日志文件進(jìn)行第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得日志文件的解析結(jié)果。
[0006]根據(jù)本發(fā)明的另一個(gè)方面,提供一種文件處理系統(tǒng)。該文件處理系統(tǒng)包括前級(jí)裝置和多個(gè)設(shè)備集合。前級(jí)裝置用于獲取日志文件,其中,所述日志文件用于傳送到多個(gè)設(shè)備集合中的第一設(shè)備集合,多個(gè)設(shè)備集合順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操作;多個(gè)設(shè)備集合中的第一設(shè)備集合用于對(duì)日志文件進(jìn)行第一設(shè)備集合所對(duì)應(yīng)的解析操作,并且多個(gè)設(shè)備集合中的非第一設(shè)備集合用于對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得日志文件的解析結(jié)果。
[0007]根據(jù)本發(fā)明實(shí)施例的文件處理方法和系統(tǒng),利用類(lèi)似流水線的方式在多個(gè)設(shè)備集合中進(jìn)行與日志文件相關(guān)的處理,可以有效提高日志文件的處理效率。
[0008]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】?!靖綀D說(shuō)明】
[0009]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0010]圖1示出根據(jù)本發(fā)明一個(gè)實(shí)施例的文件處理方法的流程示意圖;
[0011]圖2示出根據(jù)本發(fā)明一個(gè)實(shí)施例的與日志文件相關(guān)的處理流程的示意圖;
[0012]圖3示出根據(jù)本發(fā)明另一個(gè)實(shí)施例的文件處理方法的流程示意圖;以及
[0013]圖4示出根據(jù)本發(fā)明一個(gè)實(shí)施例的文件處理系統(tǒng)的示意性框圖?!揪唧w實(shí)施方式】
[0014]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0015]根據(jù)本發(fā)明的一個(gè)方面,提供一種文件處理方法。圖1示出根據(jù)本發(fā)明一個(gè)實(shí)施例的文件處理方法100的流程示意圖。
[0016]如圖1所示,文件處理方法100包括以下步驟。
[0017]在步驟S110,獲取日志文件,其中,所述日志文件用于傳送到多個(gè)設(shè)備集合中的第一設(shè)備集合,所述多個(gè)設(shè)備集合順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操作。 [〇〇18]日志文件可以是任何合適的需要處理的記錄文件或文件集合,例如,其可以是操作系統(tǒng)的日志文件,數(shù)據(jù)庫(kù)系統(tǒng)的日志文件,等等。日志文件可以與任何合適的應(yīng)用相關(guān), 例如其可以與諸如微博等的應(yīng)用相關(guān)。
[0019]日志文件可以從諸如HDFS的數(shù)據(jù)存儲(chǔ)系統(tǒng)中下載。然后,日志文件可以傳送到多個(gè)設(shè)備集合中的第一設(shè)備集合。
[0020]多個(gè)設(shè)備集合中的每個(gè)設(shè)備集合可以包括一個(gè)或多個(gè)設(shè)備。設(shè)備可以是能夠處理日志文件的任何合適的硬件設(shè)備,例如服務(wù)器等。
[0021]多個(gè)設(shè)備集合可以是順序連接的,每個(gè)設(shè)備集合用于進(jìn)行一種或多種解析操作, 不同設(shè)備集合進(jìn)行不同的解析操作。另外,可以理解的是,當(dāng)某設(shè)備集合包括多個(gè)設(shè)備時(shí), 多個(gè)設(shè)備中的每個(gè)設(shè)備可以進(jìn)行相同的解析操作,即該設(shè)備集合所對(duì)應(yīng)的解析操作。日志文件或前一設(shè)備集合的操作結(jié)果可以進(jìn)入多個(gè)設(shè)備中的任一設(shè)備以進(jìn)行對(duì)應(yīng)的解析操作。
[0022]在步驟S120,由多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)日志文件進(jìn)行第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得日志文件的解析結(jié)果。
[0023]解析操作可以是例如解壓縮操作、統(tǒng)一編碼操作、分割操作等,這一系列操作的目的主要是為了對(duì)日志文件的內(nèi)容進(jìn)行解析。例如,多個(gè)設(shè)備集合所輸出的解析結(jié)果可以是日志文件中的每行數(shù)據(jù)。[〇〇24]多個(gè)設(shè)備集合組成一種流水線式的處理系統(tǒng),在日志文件進(jìn)入第一設(shè)備集合之后,經(jīng)過(guò)多個(gè)設(shè)備集合所進(jìn)行的一連串的解析操作,可以獲得該日志文件的解析結(jié)果。
[0025]由于將解析操作分開(kāi)在不同的設(shè)備集合中進(jìn)行,因此當(dāng)整個(gè)處理過(guò)程中的某一解析操作出現(xiàn)問(wèn)題時(shí),仍然可以進(jìn)行其他解析操作。例如,假設(shè)用于統(tǒng)一編碼操作的設(shè)備集合出現(xiàn)問(wèn)題,編碼速度比較慢,則用于解壓縮操作的設(shè)備集合仍然可以對(duì)日志文件進(jìn)行解壓縮而不會(huì)受到影響。特別是,在某設(shè)備集合包括多個(gè)設(shè)備的情況下,該設(shè)備集合中的多個(gè)設(shè)備可以相互協(xié)助,例如當(dāng)某個(gè)設(shè)備出現(xiàn)問(wèn)題時(shí),其他設(shè)備可以分擔(dān)原本由該設(shè)備負(fù)責(zé)處理的日志文件或前一設(shè)備集合的操作結(jié)果。因此,通過(guò)上述方法可以有效提高日志文件的處理效率,避免因某一設(shè)備集合或設(shè)備集合中的設(shè)備出現(xiàn)問(wèn)題而導(dǎo)致的日志文件的積壓。
[0026]根據(jù)本發(fā)明實(shí)施例的文件處理方法,利用類(lèi)似流水線的方式在多個(gè)設(shè)備集合中進(jìn)行與日志文件相關(guān)的處理,可以有效提高日志文件的處理效率。
[0027]根據(jù)本發(fā)明實(shí)施例,步驟SllO可以進(jìn)一步包括:將日志文件下載到消息隊(duì)列中;在步驟S120之前,文件處理方法100可以進(jìn)一步包括:由第一設(shè)備集合利用消費(fèi)者程序從消息隊(duì)列中消費(fèi)日志文件。
[0028]圖2示出根據(jù)本發(fā)明一個(gè)實(shí)施例的與日志文件相關(guān)的處理流程的示意圖。參考圖2,示出數(shù)據(jù)存儲(chǔ)系統(tǒng)包括四個(gè)分布式文件系統(tǒng)210,分別用HDFS1、HDFS2、HDFS3和HDFS4表示,并且還示出多個(gè)設(shè)備集合中的第一設(shè)備集合220和非第一設(shè)備集合230和240以及消息隊(duì)列250。在圖2中,第一設(shè)備集合220包括m個(gè)設(shè)備,分別用D1_1、D1_2……Dl_m表示,非第一設(shè)備集合230包括η個(gè)設(shè)備,分別用D2_1、D2_2……D2_n表示,非第一設(shè)備集合240包括k個(gè)設(shè)備,分別用Di_l、Di_2……Di_k表示。
[0029]可以理解,圖2所示的HDFS的數(shù)目、設(shè)備集合的數(shù)目以及設(shè)備集合中所包括的設(shè)備的數(shù)目均為示例而非限制,HDFS、設(shè)備集合以及設(shè)備集合中所包括的設(shè)備均可以具有任何其他合適的數(shù)目。另外,圖2所示的設(shè)備與設(shè)備之間的連接關(guān)系是示意性的,設(shè)備可以以任何合適的方式連接和傳輸數(shù)據(jù)。
[0030]參考圖2,HDFS1、HDFS2、HDFS3和HDFS4中存儲(chǔ)的日志文件可以下載到消息隊(duì)列250,第一設(shè)備集合220中的設(shè)備可以利用消費(fèi)者程序從消息隊(duì)列250中消費(fèi)日志文件。
[0031]應(yīng)當(dāng)理解,消息隊(duì)列也可以存儲(chǔ)在特定設(shè)備集合中,日志文件的下載也可以歸類(lèi)為日志文件的一種解析操作。消息隊(duì)列提供異步處理機(jī)制,其可以起到削峰填谷的作用,因此采用消息隊(duì)列存儲(chǔ)日志文件可以緩解日志文件的處理壓力。
[0032]根據(jù)本發(fā)明實(shí)施例,在將日志文件下載到消息隊(duì)列中之前,文件處理方法100可以進(jìn)一步包括:建立多個(gè)分布式文件系統(tǒng)與消息隊(duì)列的連接;所述將日志文件下載到消息隊(duì)列中可以進(jìn)一步包括:將日志文件從多個(gè)分布式文件系統(tǒng)中的第一特定分布式文件系統(tǒng)下載到消息隊(duì)列中。
[0033]日志文件可以來(lái)自多個(gè)HDFS中的任何一者。也就是說(shuō),可以利用多個(gè)HDFS存儲(chǔ)日志文件,然后將日志文件下載到消息隊(duì)列中。如圖2所示,在將日志文件下載到消息隊(duì)列250中之前,可以建立HDFS1、HDFS2、HDFS3和HFDS4與消息隊(duì)列250的連接。建立連接之后,可以從HDFS1、HDFS2、HDFS3和HFDS4之一(即第一特定HDFS)下載日志文件。
[0034]根據(jù)本發(fā)明實(shí)施例,多個(gè)分布式文件系統(tǒng)中的每一個(gè)可以具有針對(duì)該分布式文件系統(tǒng)的協(xié)程,所述將日志文件下載到消息隊(duì)列中可以進(jìn)一步包括:利用針對(duì)第一特定分布式文件系統(tǒng)的協(xié)程輪詢第一特定分布式文件系統(tǒng),以從第一特定分布式文件系統(tǒng)中下載日志文件。
[0035]可以為每個(gè)HDFS分配適量協(xié)程,利用所分配的協(xié)程處理與對(duì)應(yīng)的HDFS相關(guān)的任務(wù),例如輪詢對(duì)應(yīng)的HDFS并從對(duì)應(yīng)的HDFS下載日志文件。假設(shè)為圖2所示的HDFS1、HDFS2、 HDFS3和HFDS4中的每一個(gè)分配10個(gè)協(xié)程,并且第一特定HDFS為HDFS3,則可以利用分配給 HDFS3的10個(gè)協(xié)程不斷輪詢HDFS3,以從HDFS3下載日志文件到消息隊(duì)列中。
[0036]線程需要由操作系統(tǒng)通過(guò)切換上下文的方式來(lái)調(diào)度,消耗資源較多。與線程相比, 協(xié)程相對(duì)比較獨(dú)立,可以由程序員進(jìn)行調(diào)度,因此可以避免無(wú)意義的系統(tǒng)調(diào)度。因此,采用協(xié)程處理日志文件可以進(jìn)一步提高文件處理效率和性能。
[0037]根據(jù)本發(fā)明實(shí)施例,對(duì)于多個(gè)分布式文件系統(tǒng),針對(duì)不同的分布式文件系統(tǒng)的協(xié)程經(jīng)由不同的網(wǎng)絡(luò)路徑輪詢對(duì)應(yīng)的分布式文件系統(tǒng)。[〇〇38] 示例性地,多個(gè)HDFS可以布置于不同的機(jī)房。例如,圖2所示的HDFS1和HDFS2可以分別布置于上海機(jī)房和北京機(jī)房,上海機(jī)房的HDFS1用于存儲(chǔ)與上海用戶相關(guān)的日志文件, 北京機(jī)房的HDFS2用于存儲(chǔ)與北京用戶相關(guān)的日志文件。[〇〇39] HDFS 1與消息隊(duì)列2 50經(jīng)由網(wǎng)絡(luò)路徑260連接和通信,分配給HDFS 1的協(xié)程可以經(jīng)由該網(wǎng)絡(luò)路徑260輪詢HDFS 1并從HDFS 1中下載日志文件。類(lèi)似地,HDFS2與消息隊(duì)列250經(jīng)由網(wǎng)絡(luò)路徑270連接和通信,分配給HDFS2的協(xié)程可以經(jīng)由該網(wǎng)絡(luò)路徑270輪詢HDFS2并從HDFS2 中下載日志文件。由于北京機(jī)房和上海機(jī)房具有不同的互聯(lián)網(wǎng)協(xié)議(IP)地址,因此網(wǎng)絡(luò)路徑260與網(wǎng)絡(luò)路徑270不同。[〇〇4〇]由于HDFS分別處于不同的位置,對(duì)不同HDFS的訪問(wèn)需要經(jīng)由不同的網(wǎng)絡(luò)路徑,因此當(dāng)某一 HDFS所對(duì)應(yīng)的網(wǎng)絡(luò)路徑出現(xiàn)問(wèn)題,例如網(wǎng)速特別緩慢時(shí),不會(huì)影響對(duì)其他HDFS中所存儲(chǔ)的日志文件的處理。
[0041]根據(jù)本發(fā)明實(shí)施例,文件處理方法100可以進(jìn)一步包括:當(dāng)嘗試建立多個(gè)分布式文件系統(tǒng)中的第二特定分布式文件系統(tǒng)與消息隊(duì)列的連接的次數(shù)超過(guò)次數(shù)閾值時(shí),獲取多個(gè)分布式文件系統(tǒng)的配置信息,其中,所述配置信息包括每個(gè)分布式文件系統(tǒng)的權(quán)重;如果第二特定分布式文件系統(tǒng)不是權(quán)重最大的分布式文件系統(tǒng),則將針對(duì)第二特定分布式文件系統(tǒng)的協(xié)程分配給權(quán)重最大的分布式文件系統(tǒng)。[〇〇42]可以預(yù)先存儲(chǔ)HDFS的配置信息。配置信息可以包括每個(gè)HDFS的權(quán)重。權(quán)重是預(yù)先設(shè)置的,例如可以根據(jù)每個(gè)HDFS所存儲(chǔ)的日志文件的日平均數(shù)據(jù)量為每個(gè)HDFS設(shè)置權(quán)重。 例如,HDFS的日平均數(shù)據(jù)量越大,說(shuō)明其負(fù)擔(dān)越重,因此所設(shè)置的權(quán)重可以越高。權(quán)重可以用于幫助確定協(xié)程的分配。如果嘗試建立第二特定HDFS與消息隊(duì)列的連接的次數(shù)超過(guò)次數(shù)閾值時(shí),可以根據(jù)配置信息確定權(quán)重最大的HDFS,并將針對(duì)第二特定HDFS的協(xié)程分配給權(quán)重最大的HDFS。次數(shù)閾值可以是任何合適的值??梢岳斫?,當(dāng)?shù)诙囟℉DFS是權(quán)重最大的 HDFS時(shí),可以不重新分配針對(duì)第二特定HDFS的協(xié)程。[〇〇43]繼續(xù)參考圖2,假設(shè)HDFS2由于某些原因(例如網(wǎng)速慢,設(shè)備故障等)導(dǎo)致無(wú)法成功與消息隊(duì)列250建立連接,也就是說(shuō)當(dāng)嘗試建立HDFS2與消息隊(duì)列250之間的連接時(shí),嘗試次數(shù)超過(guò)次數(shù)閾值或嘗試時(shí)間超過(guò)時(shí)間閾值,則可以認(rèn)為HDFS2與消息隊(duì)列250的連接失敗。 在這種情況下,為了平衡和節(jié)約計(jì)算資源,可以將原本分配給HDFS2的協(xié)程分配給其他需要的HDFS。例如,假設(shè)配置信息中指示權(quán)重最大的HDFS為HDFS4,在圖2所示的HDFS中,HDFS4的負(fù)擔(dān)最重,壓力最大,因此可以將原本分配給HDFS2的10個(gè)協(xié)程分配給HDFS4,以與原本分配給HDFS4的10個(gè)協(xié)程一起處理HDFS4中的日志文件。這種方式通過(guò)協(xié)程的再分配實(shí)現(xiàn)計(jì)算資源的合理利用,可以進(jìn)一步提高日志文件的處理效率。
[0044]根據(jù)本發(fā)明實(shí)施例,所述第一設(shè)備集合可以包括第一子設(shè)備集合,所述非第一設(shè)備集合可以包括第二子設(shè)備集合、第三子設(shè)備集合和第四子設(shè)備集合,步驟S120可以進(jìn)一步包括:由第一子設(shè)備集合對(duì)日志文件進(jìn)行解壓縮;由第二子設(shè)備集合對(duì)解壓縮后的日志文件進(jìn)行統(tǒng)一編碼;由第三子設(shè)備集合將編碼后的日志文件分發(fā)到第四子設(shè)備集合中的多個(gè)數(shù)據(jù)通道之一;以及由第四子設(shè)備集合在所分發(fā)的數(shù)據(jù)通道中對(duì)編碼后的日志文件進(jìn)行分割,以獲得日志文件的解析結(jié)果。
[0045]多個(gè)設(shè)備集合可以包括四個(gè)子設(shè)備集合,每個(gè)子設(shè)備集合執(zhí)行一種解析操作,分別是解壓縮、統(tǒng)一編碼、分發(fā)和分割。如上文所述,日志文件通常是壓縮格式的文件,因此可以首先將已獲取的、待處理的日志文件進(jìn)行解壓縮,獲得經(jīng)解壓縮的日志文件。參考圖2,假設(shè)第一設(shè)備集合220是第一子設(shè)備集合,非第一設(shè)備集合230和240分別是第二子設(shè)備集合和第四子設(shè)備集合,第三子設(shè)備集合未示出,其中,由第一子設(shè)備集合220執(zhí)行日志文件的解壓縮,由第二子設(shè)備集合230對(duì)解壓縮后的日志文件進(jìn)行統(tǒng)一編碼,由第三子設(shè)備集合將編碼后的日志文件分發(fā)到第四子設(shè)備集合240中的多個(gè)數(shù)據(jù)通道之一,由第四子設(shè)備集合240在所分發(fā)的數(shù)據(jù)通道中對(duì)編碼后的日志文件進(jìn)行分割,第四子設(shè)備集合240輸出的是日志文件的解析結(jié)果。
[0046]示例性地,第四子設(shè)備集合240中的數(shù)據(jù)通道可以與第四子設(shè)備集合240中的設(shè)備Di_l、Di_2……Di_k—一對(duì)應(yīng),也就是說(shuō),第四子設(shè)備集合240可以具有k個(gè)數(shù)據(jù)通道,分別位于第四子設(shè)備集合240中的k個(gè)設(shè)備上。當(dāng)然,可以理解,數(shù)據(jù)通道的這種分布方式僅是示例而非限制,第四子設(shè)備集合240中的每個(gè)設(shè)備可以具有其他合適數(shù)目的數(shù)據(jù)通道。
[0047]可以利用數(shù)據(jù)通道對(duì)編碼后的日志文件進(jìn)行分割,在編碼后的日志文件進(jìn)入數(shù)據(jù)通道之后,可以以數(shù)據(jù)行為單位進(jìn)行分割,以獲得日志文件的每行數(shù)據(jù)。通過(guò)這種方式,可以分析出日志文件的具體內(nèi)容。
[0048]對(duì)于某日志文件來(lái)說(shuō),其可以傳入第一子設(shè)備集合220中的設(shè)備D1_1、D1_2……Dl_m中的任一設(shè)備并由該設(shè)備進(jìn)行解壓縮。類(lèi)似地,對(duì)于第二子設(shè)備集合230、第三子設(shè)備集合和第四子設(shè)備集合240來(lái)說(shuō),可以采用每個(gè)子設(shè)備集合中的任一設(shè)備進(jìn)行對(duì)應(yīng)的解析操作,不再贅述。
[0049]圖3示出根據(jù)本發(fā)明另一個(gè)實(shí)施例的文件處理方法300的流程示意圖。圖3所示的文件處理方法300的步驟S310和S320分別與圖1所示的文件處理方法100的步驟SllO和S120相對(duì)應(yīng)。本領(lǐng)域技術(shù)人員根據(jù)圖1和上文的描述可以理解圖3中的上述步驟S310和S320,為了簡(jiǎn)潔,在此不再贅述。根據(jù)本實(shí)施例,文件處理方法300可以進(jìn)一步包括以下步驟。
[0050]在步驟S330,將日志文件的解析結(jié)果寫(xiě)入數(shù)據(jù)庫(kù)。
[0051]數(shù)據(jù)庫(kù)可以存儲(chǔ)于任何合適的位置。多個(gè)設(shè)備集合中的最后設(shè)備集合(如圖2所示的設(shè)備集合240)可以與數(shù)據(jù)庫(kù)通信,以將最后設(shè)備集合輸出的日志文件的解析結(jié)果寫(xiě)入數(shù)據(jù)庫(kù)。
[0052]在步驟S340,對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的解析結(jié)果的至少一部分進(jìn)行分析,以獲得分析數(shù)據(jù)。
[0053]數(shù)據(jù)庫(kù)可以存儲(chǔ)一段時(shí)間內(nèi)生成的日志文件的解析結(jié)果,對(duì)這些解析結(jié)果中的至少一部分進(jìn)行分析,可以獲得分析數(shù)據(jù)。例如,可能期望獲知與某應(yīng)用(例如微博)相關(guān)的一些統(tǒng)計(jì)數(shù)據(jù),諸如該應(yīng)用啟動(dòng)時(shí)需要調(diào)用多少進(jìn)程、該應(yīng)用每天彈出多少?gòu)V告、該應(yīng)用的用戶的關(guān)注熱點(diǎn)是什么,該應(yīng)用新增多少用戶等等,在這種情況下,可以對(duì)與該應(yīng)用相關(guān)的日志文件的解析結(jié)果進(jìn)行統(tǒng)計(jì)分析,以得到期望獲知的信息。
[0054]根據(jù)本發(fā)明實(shí)施例,文件處理方法300可以進(jìn)一步包括:輸出分析數(shù)據(jù),以供用戶查看。
[0055]當(dāng)用戶期望對(duì)某個(gè)應(yīng)用的運(yùn)行情況進(jìn)行查詢時(shí),可以將與該應(yīng)用相關(guān)的日志文件的分析數(shù)據(jù)反饋給用戶以供其查看。例如,可以經(jīng)由顯示屏或揚(yáng)聲器等輸出裝置將分析數(shù)據(jù)輸出。
[0056]根據(jù)本發(fā)明的另一方面,提供一種文件處理系統(tǒng)。圖4示出根據(jù)本發(fā)明一個(gè)實(shí)施例的文件處理系統(tǒng)的示意性框圖。如圖4所示,文件處理系統(tǒng)400包括前級(jí)裝置410和多個(gè)設(shè)備集合420。[〇〇57]所述前級(jí)裝置410用于獲取日志文件,其中,所述日志文件用于傳送到多個(gè)設(shè)備集合420中的第一設(shè)備集合,所述多個(gè)設(shè)備集合420順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操作。[〇〇58]所述多個(gè)設(shè)備集合420中的第一設(shè)備集合用于對(duì)日志文件進(jìn)行第一設(shè)備集合所對(duì)應(yīng)的解析操作,并且多個(gè)設(shè)備集合420中的非第一設(shè)備集合用于對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得日志文件的解析結(jié)果。[〇〇59]前級(jí)裝置410可以與用于存儲(chǔ)日志文件的數(shù)據(jù)存儲(chǔ)系統(tǒng)直接或間接地通信,以從數(shù)據(jù)存儲(chǔ)系統(tǒng)中獲取日志文件。前級(jí)裝置410可以采用任何合適的硬件、軟件和/或固件實(shí)現(xiàn)。
[0060]前級(jí)裝置410可以與多個(gè)設(shè)備集合420中的第一設(shè)備集合直接或間接地通信。日志文件可以從前級(jí)裝置410傳送到多個(gè)設(shè)備集合420中的第一設(shè)備集合。多個(gè)設(shè)備集合420中的每個(gè)設(shè)備集合可以包括一個(gè)或多個(gè)設(shè)備。多個(gè)設(shè)備集合420中的設(shè)備可以采用任何合適的硬件、軟件和/或固件實(shí)現(xiàn)。示例性地,多個(gè)設(shè)備集合420可以位于同一機(jī)房中,或者分布式地位于不同的機(jī)房中。多個(gè)設(shè)備集合420形成一種類(lèi)似流水線的處理架構(gòu),不同的設(shè)備集合執(zhí)行不同的解析操作,而每個(gè)設(shè)備集合中的一個(gè)或多個(gè)設(shè)備可以執(zhí)行相同的解析操作。
[0061]多個(gè)設(shè)備集合420中的設(shè)備的配置情況可以根據(jù)需要進(jìn)行調(diào)整。例如,可能隨著某應(yīng)用的發(fā)展,使用該應(yīng)用的用戶增多,每日需要處理的與該應(yīng)用相關(guān)的日志文件的數(shù)據(jù)量增大,使得已有的文件處理系統(tǒng)難以及時(shí)處理每日生成的日志文件,在這種情況下,可以增加至少部分設(shè)備集合中的設(shè)備的數(shù)目或者將至少部分設(shè)備集合中的至少部分設(shè)備更換為性能更好的設(shè)備,這樣可以非常方便地提高整個(gè)文件處理系統(tǒng)的處理性能。
[0062]根據(jù)本發(fā)明實(shí)施例的文件處理系統(tǒng),利用類(lèi)似流水線的方式在多個(gè)設(shè)備集合中進(jìn)行與日志文件相關(guān)的處理,可以有效提高日志文件的處理效率。[〇〇63]示例性地,前級(jí)裝置410可以進(jìn)一步用于將日志文件下載到消息隊(duì)列中。第一設(shè)備集合可以進(jìn)一步用于利用消費(fèi)者程序從消息隊(duì)列中消費(fèi)日志文件。消息隊(duì)列可以存儲(chǔ)于前級(jí)裝置410中,前級(jí)裝置410可以從數(shù)據(jù)存儲(chǔ)系統(tǒng)中下載日志文件到消息隊(duì)列。進(jìn)一步地,第一設(shè)備集合可以作為消息隊(duì)列的消費(fèi)者從消息隊(duì)列中下載日志文件。
[0064]示例性地,前級(jí)裝置410可以進(jìn)一步用于建立多個(gè)分布式文件系統(tǒng)與消息隊(duì)列的連接,并且將日志文件從多個(gè)分布式文件系統(tǒng)中的第一特定分布式文件系統(tǒng)下載到消息隊(duì)列中。
[0065]數(shù)據(jù)存儲(chǔ)系統(tǒng)可以采用HDFS實(shí)現(xiàn)。前級(jí)裝置410可以經(jīng)由有線或無(wú)線網(wǎng)絡(luò)建立多個(gè)HDFS與消息隊(duì)列之間的連接,并可以從多個(gè)HDFS中的任何一者下載日志文件到消息隊(duì)列中。
[0066]7]^;例性地,多個(gè)分布式文件系統(tǒng)中的每一個(gè)具有針對(duì)該分布式文件系統(tǒng)的協(xié)程,前級(jí)裝置410可以進(jìn)一步用于利用針對(duì)第一特定分布式文件系統(tǒng)的協(xié)程輪詢第一特定分布式文件系統(tǒng),以從第一特定分布式文件系統(tǒng)中下載日志文件。
[0067]前級(jí)裝置410可以利用協(xié)程輪詢第一特定HDFS并從第一特定HDFS中下載日志文件。采用協(xié)程處理日志文件可以進(jìn)一步提高文件處理系統(tǒng)的文件處理效率和性能。
[0068]示例性地,對(duì)于多個(gè)分布式文件系統(tǒng),針對(duì)不同的分布式文件系統(tǒng)的協(xié)程經(jīng)由不同的網(wǎng)絡(luò)路徑輪詢對(duì)應(yīng)的分布式文件系統(tǒng)。
[0069]如上文所述,多個(gè)HDFS可以布置于不同的機(jī)房。機(jī)房具有不同的IP地址,因此針對(duì)不同HDFS的協(xié)程可以經(jīng)由不同的網(wǎng)絡(luò)路徑輪詢對(duì)應(yīng)的HDFS。
[0070]示例性地,前級(jí)裝置410可以進(jìn)一步用于當(dāng)嘗試建立多個(gè)分布式文件系統(tǒng)中的第二特定分布式文件系統(tǒng)與消息隊(duì)列的連接的次數(shù)超過(guò)次數(shù)閾值時(shí),獲取多個(gè)分布式文件系統(tǒng)的配置信息,并且如果第二特定分布式文件系統(tǒng)不是權(quán)重最大的分布式文件系統(tǒng),則將針對(duì)第二特定分布式文件系統(tǒng)的協(xié)程分配給權(quán)重最大的分布式文件系統(tǒng),其中,配置信息包括每個(gè)分布式文件系統(tǒng)的權(quán)重。
[0071 ]可以預(yù)先為每個(gè)HDFS分配權(quán)重,權(quán)重包括在配置信息中。示例性地,可以將配置信息存儲(chǔ)在前級(jí)裝置410中,或者也可以將配置信息存儲(chǔ)在單獨(dú)的存儲(chǔ)裝置中,前級(jí)裝置410可以與存儲(chǔ)裝置通信以從存儲(chǔ)裝置中獲取配置信息。當(dāng)前級(jí)裝置410嘗試建立某HDFS與消息隊(duì)列的連接時(shí),如果嘗試次數(shù)超過(guò)次數(shù)閾值,則可以將原本分配給該HDFS的協(xié)程重新分配給權(quán)重最大的HDFS,以實(shí)現(xiàn)計(jì)算資源的合理利用。
[0072]示例性地,第一設(shè)備集合可以包括第一子設(shè)備集合,非第一設(shè)備集合可以包括第二子設(shè)備集合、第三子設(shè)備集合和第四子設(shè)備集合,其中,第一子設(shè)備集合用于對(duì)日志文件進(jìn)行解壓縮;第二子設(shè)備集合用于對(duì)解壓縮后的日志文件進(jìn)行統(tǒng)一編碼;第三子設(shè)備集合用于將編碼后的日志文件分發(fā)到第四子設(shè)備集合中的多個(gè)數(shù)據(jù)通道之一;第四子設(shè)備集合用于在所分發(fā)的數(shù)據(jù)通道中對(duì)編碼后的日志文件進(jìn)行分割,以獲得日志文件的解析結(jié)果。
[0073]如上文所述,多個(gè)設(shè)備集合420可以包括四個(gè)子設(shè)備集合,每個(gè)子設(shè)備集合執(zhí)行一種解析操作,分別是解壓縮、統(tǒng)一編碼、分發(fā)和分割。通過(guò)這些解析操作,可以分析出日志文件的具體內(nèi)容。
[0074]示例性地,文件處理系統(tǒng)400可以進(jìn)一步包括文件分析裝置(未示出),用于將日志文件的解析結(jié)果寫(xiě)入數(shù)據(jù)庫(kù),并且對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的解析結(jié)果的至少一部分進(jìn)行分析,以獲得分析數(shù)據(jù)。
[0075]如上文所述,數(shù)據(jù)庫(kù)可以存儲(chǔ)于任何合適的位置。多個(gè)設(shè)備集合中的最后設(shè)備集合可以與數(shù)據(jù)庫(kù)通信,以將最后設(shè)備集合輸出的日志文件的解析結(jié)果寫(xiě)入數(shù)據(jù)庫(kù)??梢允褂脭?shù)據(jù)庫(kù)來(lái)存儲(chǔ)和管理日志文件的解析結(jié)果。
[0076]示例性地,文件處理系統(tǒng)400可以進(jìn)一步包括輸出裝置(未示出),用于輸出分析數(shù)據(jù),以供用戶查看。輸出裝置可以是任何合適的能夠向用戶輸出信息的裝置,例如顯示屏或揚(yáng)聲器等。示例性地,當(dāng)接收到用戶對(duì)某應(yīng)用的查詢請(qǐng)求時(shí),可以經(jīng)由輸出裝置將與該應(yīng)用相關(guān)的日志文件的分析數(shù)據(jù)反饋給用戶以供其查看。
[0077]上文已經(jīng)描述了文件處理方法的各步驟的實(shí)施方式和優(yōu)點(diǎn)等,本領(lǐng)域技術(shù)人員結(jié)合圖1至3以及上文關(guān)于文件處理方法的描述,可以理解文件處理系統(tǒng)400的具體結(jié)構(gòu)、運(yùn)行方式及其優(yōu)點(diǎn)等,本文不再對(duì)此進(jìn)行贅述。
[0078]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0079]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
[0080]類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0081]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
[0082]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
[0083]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的文件處理系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0084] 應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中, 不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。[〇〇85]本發(fā)明實(shí)施例公開(kāi)了 A1、一種文件處理方法,包括:
[0086]獲取日志文件,其中,所述日志文件用于傳送到所述多個(gè)設(shè)備集合中的第一設(shè)備集合,所述多個(gè)設(shè)備集合順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操作;以及 [〇〇87]由所述多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)所述日志文件進(jìn)行所述第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由所述多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行所述非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得所述日志文件的解析結(jié)果。[〇〇88]A2、如A1所述的文件處理方法,[〇〇89]所述獲取日志文件進(jìn)一步包括:
[0090]將所述日志文件下載到消息隊(duì)列中;
[0091]在所述由所述多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)所述日志文件進(jìn)行所述第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由所述多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行所述非第一設(shè)備集合所對(duì)應(yīng)的解析操作之前,所述文件處理方法進(jìn)一步包括:
[0092]由所述第一設(shè)備集合利用消費(fèi)者程序從所述消息隊(duì)列中消費(fèi)所述日志文件。[〇〇93]A3、如A2所述的文件處理方法,[〇〇94]在所述將所述日志文件下載到消息隊(duì)列中之前,所述文件處理方法進(jìn)一步包括:
[0095]建立多個(gè)分布式文件系統(tǒng)與所述消息隊(duì)列的連接;
[0096]所述將所述日志文件下載到消息隊(duì)列中進(jìn)一步包括:[〇〇97]將所述日志文件從所述多個(gè)分布式文件系統(tǒng)中的第一特定分布式文件系統(tǒng)下載到所述消息隊(duì)列中。[〇〇98]A4、如A3所述的文件處理方法,所述多個(gè)分布式文件系統(tǒng)中的每一個(gè)具有針對(duì)該分布式文件系統(tǒng)的協(xié)程,
[0099]所述將所述日志文件下載到消息隊(duì)列中進(jìn)一步包括:
[0100]利用針對(duì)所述第一特定分布式文件系統(tǒng)的協(xié)程輪詢所述第一特定分布式文件系統(tǒng),以從所述第一特定分布式文件系統(tǒng)中下載所述日志文件。
[0101]A5、如A4所述的文件處理方法,對(duì)于所述多個(gè)分布式文件系統(tǒng),針對(duì)不同的分布式文件系統(tǒng)的協(xié)程經(jīng)由不同的網(wǎng)絡(luò)路徑輪詢對(duì)應(yīng)的分布式文件系統(tǒng)。
[0102]A6、如A4或A5所述的文件處理方法,所述文件處理方法進(jìn)一步包括:
[0103]當(dāng)嘗試建立所述多個(gè)分布式文件系統(tǒng)中的第二特定分布式文件系統(tǒng)與所述消息隊(duì)列的連接的次數(shù)超過(guò)次數(shù)閾值時(shí),獲取所述多個(gè)分布式文件系統(tǒng)的配置信息,其中,所述配置信息包括每個(gè)分布式文件系統(tǒng)的權(quán)重;
[0104]如果所述第二特定分布式文件系統(tǒng)不是權(quán)重最大的分布式文件系統(tǒng),則將針對(duì)所述第二特定分布式文件系統(tǒng)的協(xié)程分配給所述權(quán)重最大的分布式文件系統(tǒng)。
[0105]A7、如Al至A6任一項(xiàng)所述的文件處理方法,所述第一設(shè)備集合包括第一子設(shè)備集合,所述非第一設(shè)備集合包括第二子設(shè)備集合、第三子設(shè)備集合和第四子設(shè)備集合,
[0106]所述由所述多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)所述日志文件進(jìn)行所述第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由所述多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行所述非第一設(shè)備集合所對(duì)應(yīng)的解析操作進(jìn)一步包括:
[0107]由所述第一子設(shè)備集合對(duì)所述日志文件進(jìn)行解壓縮;
[0108]由所述第二子設(shè)備集合對(duì)解壓縮后的日志文件進(jìn)行統(tǒng)一編碼;
[0109]由所述第三子設(shè)備集合將編碼后的日志文件分發(fā)到所述第四子設(shè)備集合中的多個(gè)數(shù)據(jù)通道之一;以及
[0110]由所述第四子設(shè)備集合在所分發(fā)的數(shù)據(jù)通道中對(duì)所述編碼后的日志文件進(jìn)行分割,以獲得所述日志文件的解析結(jié)果。
[0111]AS、如Al至A7任一項(xiàng)所述的文件處理方法,所述文件處理方法進(jìn)一步包括:
[0112]將所述日志文件的解析結(jié)果寫(xiě)入數(shù)據(jù)庫(kù);以及
[0113]對(duì)所述數(shù)據(jù)庫(kù)中存儲(chǔ)的解析結(jié)果的至少一部分進(jìn)行分析,以獲得分析數(shù)據(jù)。
[0114]A9、如A8所述的文件處理方法,所述文件處理方法進(jìn)一步包括:
[0115]輸出所述分析數(shù)據(jù),以供用戶查看。
[0116]本發(fā)明實(shí)施例還公開(kāi)了B10、一種文件處理系統(tǒng),包括前級(jí)裝置和多個(gè)設(shè)備集合,其中,
[0117]所述前級(jí)裝置用于獲取日志文件,其中,所述日志文件用于傳送到所述多個(gè)設(shè)備集合中的第一設(shè)備集合,所述多個(gè)設(shè)備集合順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操作;
[0118]所述多個(gè)設(shè)備集合中的第一設(shè)備集合用于對(duì)所述日志文件進(jìn)行所述第一設(shè)備集合所對(duì)應(yīng)的解析操作,并且所述多個(gè)設(shè)備集合中的非第一設(shè)備集合用于對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行所述非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得所述日志文件的解析結(jié)果。
[0119]Bll、如BlO所述的文件處理系統(tǒng),
[0120]所述前級(jí)裝置進(jìn)一步用于將所述日志文件下載到消息隊(duì)列中;
[0121]所述第一設(shè)備集合進(jìn)一步用于利用消費(fèi)者程序從所述消息隊(duì)列中消費(fèi)所述日志文件。
[0122]B12、如Bll所述的文件處理系統(tǒng),所述前級(jí)裝置進(jìn)一步用于建立多個(gè)分布式文件系統(tǒng)與所述消息隊(duì)列的連接,并且將所述日志文件從所述多個(gè)分布式文件系統(tǒng)中的第一特定分布式文件系統(tǒng)下載到所述消息隊(duì)列中。
[0123]B13、如B12所述的文件處理系統(tǒng),所述多個(gè)分布式文件系統(tǒng)中的每一個(gè)具有針對(duì)該分布式文件系統(tǒng)的協(xié)程,
[0124]所述前級(jí)裝置進(jìn)一步用于利用針對(duì)所述第一特定分布式文件系統(tǒng)的協(xié)程輪詢所述第一特定分布式文件系統(tǒng),以從所述第一特定分布式文件系統(tǒng)中下載所述日志文件。
[0125]B14、如B13所述的文件處理系統(tǒng),對(duì)于所述多個(gè)分布式文件系統(tǒng),針對(duì)不同的分布式文件系統(tǒng)的協(xié)程經(jīng)由不同的網(wǎng)絡(luò)路徑輪詢對(duì)應(yīng)的分布式文件系統(tǒng)。
[0126]B15、如B13或B14所述的文件處理系統(tǒng),所述前級(jí)裝置進(jìn)一步用于當(dāng)嘗試建立所述多個(gè)分布式文件系統(tǒng)中的第二特定分布式文件系統(tǒng)與所述消息隊(duì)列的連接的次數(shù)超過(guò)次數(shù)閾值時(shí),獲取所述多個(gè)分布式文件系統(tǒng)的配置信息,并且如果所述第二特定分布式文件系統(tǒng)不是權(quán)重最大的分布式文件系統(tǒng),則將針對(duì)所述第二特定分布式文件系統(tǒng)的協(xié)程分配給所述權(quán)重最大的分布式文件系統(tǒng),
[0127]其中,所述配置信息包括每個(gè)分布式文件系統(tǒng)的權(quán)重。
[0128]B16、如B10至B15任一項(xiàng)所述的文件處理系統(tǒng),所述第一設(shè)備集合包括第一子設(shè)備集合,所述非第一設(shè)備集合包括第二子設(shè)備集合、第三子設(shè)備集合和第四子設(shè)備集合,其中,
[0129]所述第一子設(shè)備集合用于對(duì)所述日志文件進(jìn)行解壓縮;
[0130]所述第二子設(shè)備集合用于對(duì)解壓縮后的日志文件進(jìn)行統(tǒng)一編碼;[〇131]所述第三子設(shè)備集合用于將編碼后的日志文件分發(fā)到所述第四子設(shè)備集合中的多個(gè)數(shù)據(jù)通道之一;
[0132]所述第四子設(shè)備集合用于在所分發(fā)的數(shù)據(jù)通道中對(duì)所述編碼后的日志文件進(jìn)行分割,以獲得所述日志文件的解析結(jié)果。
[0133]B17、如B10至B16任一項(xiàng)所述的文件處理系統(tǒng),所述文件處理系統(tǒng)進(jìn)一步包括文件分析裝置,用于將所述日志文件的解析結(jié)果寫(xiě)入數(shù)據(jù)庫(kù),并且對(duì)所述數(shù)據(jù)庫(kù)中存儲(chǔ)的解析結(jié)果的至少一部分進(jìn)行分析,以獲得分析數(shù)據(jù)。
[0134]B18、如B17所述的文件處理系統(tǒng),所述文件處理系統(tǒng)進(jìn)一步包括輸出裝置,用于輸出所述分析數(shù)據(jù),以供用戶查看。
【主權(quán)項(xiàng)】
1.一種文件處理方法,包括: 獲取日志文件,其中,所述日志文件用于傳送到所述多個(gè)設(shè)備集合中的第一設(shè)備集合,所述多個(gè)設(shè)備集合順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操作;以及 由所述多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)所述日志文件進(jìn)行所述第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由所述多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行所述非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得所述日志文件的解析結(jié)果。2.如權(quán)利要求1所述的文件處理方法,其特征在于, 所述獲取日志文件進(jìn)一步包括: 將所述日志文件下載到消息隊(duì)列中; 在所述由所述多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)所述日志文件進(jìn)行所述第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由所述多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行所述非第一設(shè)備集合所對(duì)應(yīng)的解析操作之前,所述文件處理方法進(jìn)一步包括:由所述第一設(shè)備集合利用消費(fèi)者程序從所述消息隊(duì)列中消費(fèi)所述日志文件。3.如權(quán)利要求2所述的文件處理方法,其特征在于, 在所述將所述日志文件下載到消息隊(duì)列中之前,所述文件處理方法進(jìn)一步包括: 建立多個(gè)分布式文件系統(tǒng)與所述消息隊(duì)列的連接; 所述將所述日志文件下載到消息隊(duì)列中進(jìn)一步包括: 將所述日志文件從所述多個(gè)分布式文件系統(tǒng)中的第一特定分布式文件系統(tǒng)下載到所述消息隊(duì)列中。4.如權(quán)利要求3所述的文件處理方法,其特征在于,所述多個(gè)分布式文件系統(tǒng)中的每一個(gè)具有針對(duì)該分布式文件系統(tǒng)的協(xié)程, 所述將所述日志文件下載到消息隊(duì)列中進(jìn)一步包括: 利用針對(duì)所述第一特定分布式文件系統(tǒng)的協(xié)程輪詢所述第一特定分布式文件系統(tǒng),以從所述第一特定分布式文件系統(tǒng)中下載所述日志文件。5.如權(quán)利要求4所述的文件處理方法,其特征在于,對(duì)于所述多個(gè)分布式文件系統(tǒng),針對(duì)不同的分布式文件系統(tǒng)的協(xié)程經(jīng)由不同的網(wǎng)絡(luò)路徑輪詢對(duì)應(yīng)的分布式文件系統(tǒng)。6.如權(quán)利要求4或5所述的文件處理方法,其特征在于,所述文件處理方法進(jìn)一步包括: 當(dāng)嘗試建立所述多個(gè)分布式文件系統(tǒng)中的第二特定分布式文件系統(tǒng)與所述消息隊(duì)列的連接的次數(shù)超過(guò)次數(shù)閾值時(shí),獲取所述多個(gè)分布式文件系統(tǒng)的配置信息,其中,所述配置信息包括每個(gè)分布式文件系統(tǒng)的權(quán)重; 如果所述第二特定分布式文件系統(tǒng)不是權(quán)重最大的分布式文件系統(tǒng),則將針對(duì)所述第二特定分布式文件系統(tǒng)的協(xié)程分配給所述權(quán)重最大的分布式文件系統(tǒng)。7.如權(quán)利要求1至6任一項(xiàng)所述的文件處理方法,其特征在于,所述第一設(shè)備集合包括第一子設(shè)備集合,所述非第一設(shè)備集合包括第二子設(shè)備集合、第三子設(shè)備集合和第四子設(shè)備集合, 所述由所述多個(gè)設(shè)備集合中的第一設(shè)備集合對(duì)所述日志文件進(jìn)行所述第一設(shè)備集合所對(duì)應(yīng)的解析操作,并由所述多個(gè)設(shè)備集合中的非第一設(shè)備集合對(duì)前一設(shè)備集合的操作結(jié)果進(jìn)行所述非第一設(shè)備集合所對(duì)應(yīng)的解析操作進(jìn)一步包括: 由所述第一子設(shè)備集合對(duì)所述日志文件進(jìn)行解壓縮;由所述第二子設(shè)備集合對(duì)解壓縮后的日志文件進(jìn)行統(tǒng)一編碼;由所述第三子設(shè)備集合將編碼后的日志文件分發(fā)到所述第四子設(shè)備集合中的多個(gè)數(shù) 據(jù)通道之一;以及由所述第四子設(shè)備集合在所分發(fā)的數(shù)據(jù)通道中對(duì)所述編碼后的日志文件進(jìn)行分割,以 獲得所述日志文件的解析結(jié)果。8.如權(quán)利要求1至7任一項(xiàng)所述的文件處理方法,其特征在于,所述文件處理方法進(jìn)一 步包括:將所述日志文件的解析結(jié)果寫(xiě)入數(shù)據(jù)庫(kù);以及對(duì)所述數(shù)據(jù)庫(kù)中存儲(chǔ)的解析結(jié)果的至少一部分進(jìn)行分析,以獲得分析數(shù)據(jù)。9.如權(quán)利要求8所述的文件處理方法,其特征在于,所述文件處理方法進(jìn)一步包括:輸出所述分析數(shù)據(jù),以供用戶查看。10.—種文件處理系統(tǒng),包括前級(jí)裝置和多個(gè)設(shè)備集合,其中,所述前級(jí)裝置用于獲取日志文件,其中,所述日志文件用于傳送到所述多個(gè)設(shè)備集合 中的第一設(shè)備集合,所述多個(gè)設(shè)備集合順序連接并且不同設(shè)備集合用于進(jìn)行不同的解析操 作;所述多個(gè)設(shè)備集合中的第一設(shè)備集合用于對(duì)所述日志文件進(jìn)行所述第一設(shè)備集合所 對(duì)應(yīng)的解析操作,并且所述多個(gè)設(shè)備集合中的非第一設(shè)備集合用于對(duì)前一設(shè)備集合的操作 結(jié)果進(jìn)行所述非第一設(shè)備集合所對(duì)應(yīng)的解析操作,以獲得所述日志文件的解析結(jié)果。
【文檔編號(hào)】G06F17/30GK105955979SQ201610237689
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年4月15日
【發(fā)明人】郭軍
【申請(qǐng)人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司