日志數(shù)據(jù)處理方法及裝置的制造方法
【專利說(shuō)明】日志數(shù)據(jù)處理方法及裝置 【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種日志數(shù)據(jù)處理方法及裝置。 【【背景技術(shù)】】
[0002] 海量日志數(shù)據(jù)的處理本質(zhì)上屬于大數(shù)據(jù)計(jì)算,業(yè)界有著眾多成熟的解決方案,其 中,最典型的是以Hadoop為代表的后計(jì)算流。
[0003]Hadoop計(jì)算流的過程為:在產(chǎn)生日志的宿主機(jī)上部署客戶端(agent);客戶端按 照一定的頻率,將宿主機(jī)源源不斷產(chǎn)生的日志跨網(wǎng)絡(luò)傳輸?shù)紿DFS存儲(chǔ)節(jié)點(diǎn)進(jìn)行持久化存 儲(chǔ);隨后,HDFS計(jì)算節(jié)點(diǎn)的任務(wù)調(diào)度會(huì)驅(qū)動(dòng)各種作業(yè),從HDFS存儲(chǔ)節(jié)點(diǎn)上撈取相關(guān)的日志, 執(zhí)行相應(yīng)作業(yè)并輸出結(jié)果。
[0004] 由上述可見,Hadoop計(jì)算流需要先等待日志存儲(chǔ)到HDFS存儲(chǔ)節(jié)點(diǎn),再經(jīng)過任務(wù)調(diào) 度從HDFS存儲(chǔ)節(jié)點(diǎn)中撈取日志執(zhí)行相應(yīng)作業(yè),其實(shí)時(shí)性較差。 【
【發(fā)明內(nèi)容】
】
[0005] 本發(fā)明的多個(gè)方面提供一種日志數(shù)據(jù)處理方法及裝置,用以提高處理日志數(shù)據(jù)的 實(shí)時(shí)性。
[0006] 本發(fā)明的一方面,提供一種日志數(shù)據(jù)處理方法,包括:
[0007] 部署于日志宿主機(jī)上的客戶端代理裝置接收計(jì)算節(jié)點(diǎn)發(fā)送的查詢請(qǐng)求,所述查詢 請(qǐng)求包括:日志文件標(biāo)識(shí)和時(shí)間段標(biāo)識(shí);
[0008] 所述客戶端代理裝置根據(jù)所述日志文件標(biāo)識(shí)和所述時(shí)間段標(biāo)識(shí),獲取所述時(shí)間段 標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)的位置索引,所述位置索引用于指示所述時(shí)間段內(nèi) 產(chǎn)生的日志數(shù)據(jù)在所述日志文件標(biāo)識(shí)所標(biāo)識(shí)的日志文件中的位置;
[0009] 所述客戶端代理裝置根據(jù)所述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)的位置索引,從所述日志 宿主機(jī)上的所述日志文件中獲取所述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù);
[0010] 所述客戶端代理裝置將所述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)傳輸給所述計(jì)算節(jié)點(diǎn),以供 所述計(jì)算節(jié)點(diǎn)進(jìn)行處理。
[0011] 本發(fā)明的另一方面,提供一種客戶端代理裝置,部署于日志宿主機(jī)上,所述客戶端 代理裝置包括:
[0012] 請(qǐng)求接收模塊,用于接收計(jì)算節(jié)點(diǎn)發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求包括:日志文件 標(biāo)識(shí)和時(shí)間段標(biāo)識(shí);
[0013] 索引獲取模塊,用于根據(jù)所述日志文件標(biāo)識(shí)和所述時(shí)間段標(biāo)識(shí),獲取所述時(shí)間段 標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)的位置索引,所述位置索引用于指示所述時(shí)間段內(nèi) 產(chǎn)生的日志數(shù)據(jù)在所述日志文件標(biāo)識(shí)所標(biāo)識(shí)的日志文件中的位置;
[0014] 數(shù)據(jù)獲取模塊,用于根據(jù)所述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)的位置索引,從所述日志 文件中獲取所述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù);
[0015] 發(fā)送模塊,用于將所述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)傳輸給所述計(jì)算節(jié)點(diǎn),以供所述 計(jì)算節(jié)點(diǎn)進(jìn)行處理。
[0016] 由上述技術(shù)方案可知,本發(fā)明在日志宿主機(jī)部署客戶端代理裝置,客戶端代理裝 置根據(jù)計(jì)算節(jié)點(diǎn)的查詢請(qǐng)求,確定需要查詢的日志數(shù)據(jù)的位置索引,根據(jù)位置索引直接從 日志宿主機(jī)上的日志文件中獲取日志數(shù)據(jù),再將所獲取的日志數(shù)據(jù)傳輸給計(jì)算節(jié)點(diǎn)以進(jìn)行 計(jì)算處理,相當(dāng)于在日志宿主機(jī)上直接實(shí)現(xiàn)了日志查詢功能,使得日志數(shù)據(jù)的處理不再需 要經(jīng)過HDFS存儲(chǔ)節(jié)點(diǎn),節(jié)約了將日志數(shù)據(jù)傳輸?shù)紿DFS存儲(chǔ)節(jié)點(diǎn)的時(shí)間,有利于提高處理日 志數(shù)據(jù)的實(shí)時(shí)性。 【【附圖說(shuō)明】】
[0017] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí) 施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。
[0018] 圖1為本發(fā)明一實(shí)施例提供的日志數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0019] 圖2為本發(fā)明一實(shí)施例提供的日志數(shù)據(jù)處理方法的流程示意圖;
[0020] 圖3為本發(fā)明另一實(shí)施例提供的日志數(shù)據(jù)處理方法的流程示意圖;
[0021] 圖4為本發(fā)明一實(shí)施例提供的客戶端代理裝置的結(jié)構(gòu)示意圖;
[0022] 圖5為本發(fā)明另一實(shí)施例提供的客戶端代理裝置的結(jié)構(gòu)示意圖。 【【具體實(shí)施方式】】
[0023] 為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0024] 圖1為本發(fā)明一實(shí)施例提供的日志數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖1所示,該 系統(tǒng)包括:日志宿主機(jī)100和計(jì)算節(jié)點(diǎn)200。
[0025] 其中,日志宿主機(jī)100是指產(chǎn)生日志數(shù)據(jù)的各種設(shè)備,例如可以是計(jì)算機(jī)、生產(chǎn)系 統(tǒng)的服務(wù)器等。計(jì)算節(jié)點(diǎn)200是負(fù)責(zé)對(duì)日志數(shù)據(jù)進(jìn)行處理的設(shè)備,例如可以是Hadoop中的 Map/Reduce節(jié)點(diǎn)。
[0026] 日志數(shù)據(jù)產(chǎn)生后會(huì)存儲(chǔ)在日志宿主機(jī)100上的日志文件中。通常,日志數(shù)據(jù)在日 志宿主機(jī)100上并不是永久保留,一般是按天滾動(dòng),保留固定天數(shù)之后會(huì)被刪除,但是一般 情況下日志數(shù)據(jù)在日志宿主機(jī)100上的保留時(shí)間已經(jīng)足夠滿足以實(shí)時(shí)分析為主要目標(biāo)的 監(jiān)控計(jì)算等場(chǎng)景。
[0027] 日志宿主機(jī)100本身可以提供日志的查詢服務(wù)。但是,日志宿主機(jī)100-般是直 接向最終用戶提供服務(wù)的,不能因?yàn)槿罩痉治龆倪^多性能。為了盡量不影響日志宿主 機(jī)100的性能,本實(shí)施例在日志宿主機(jī)100上部署客戶端代理裝置11 (如圖1所示),由客 戶端代理裝置11提供日志查詢功能,并且盡量將日志查詢功能帶來(lái)的性能消耗局限在必 需的網(wǎng)絡(luò)帶寬上,不產(chǎn)生其他性能消耗。
[0028] 為實(shí)現(xiàn)上述目的,本實(shí)施例的客戶端代理11需要為日志宿主機(jī)100在不同時(shí)間產(chǎn) 生的日志數(shù)據(jù)創(chuàng)建用于指示該日志數(shù)據(jù)在日志文件中的位置的位置索引。這樣,客戶端代 理裝置11就可以根據(jù)位置索引快速找到待查詢的日志數(shù)據(jù),降低對(duì)日志宿主機(jī)100的性能 消耗。
[0029] 其中,客戶端代理裝置11提供日志查詢功能的過程如圖2所示。圖2為本發(fā)明一 實(shí)施例提供的日志數(shù)據(jù)處理方法的流程示意圖。如圖2所示,該方法包括:
[0030] 201、部署于日志宿主機(jī)上的客戶端代理裝置接收計(jì)算節(jié)點(diǎn)發(fā)送的查詢請(qǐng)求,該查 詢請(qǐng)求包括:日志文件標(biāo)識(shí)和時(shí)間段標(biāo)識(shí)。
[0031] 202、客戶端代理裝置根據(jù)上述日志文件標(biāo)識(shí)和時(shí)間段標(biāo)識(shí),獲取上述時(shí)間段標(biāo)識(shí) 所標(biāo)識(shí)的時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)的位置索引,該位置索引用于指示該時(shí)間段內(nèi)產(chǎn)生的日 志數(shù)據(jù)在上述日志文件標(biāo)識(shí)所標(biāo)識(shí)的日志文件中位置。
[0032] 203、客戶端代理裝置根據(jù)上述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)的位置索引,從日志宿主 機(jī)上的上述日志文件中獲取上述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)。
[0033] 204、客戶端代理裝置將上述獲取的上述時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)傳輸給計(jì)算節(jié) 點(diǎn),以供計(jì)算節(jié)點(diǎn)進(jìn)行處理。
[0034]具體的,在計(jì)算節(jié)點(diǎn)的任務(wù)調(diào)度驅(qū)動(dòng)作業(yè)時(shí),向客戶端代理裝置發(fā)送查詢請(qǐng)求,以 請(qǐng)求獲取作業(yè)所需的日志數(shù)據(jù)。計(jì)算節(jié)點(diǎn)會(huì)在查詢請(qǐng)求中攜帶用于標(biāo)識(shí)所請(qǐng)求獲取的日志 數(shù)據(jù)的信息,例如可以是日志文件標(biāo)識(shí)和時(shí)間段標(biāo)識(shí)。其中,日志文件標(biāo)識(shí)用于標(biāo)識(shí)所請(qǐng)求 獲取的日志數(shù)據(jù)所在的日志文件;而時(shí)間段標(biāo)識(shí)用于標(biāo)識(shí)所請(qǐng)求獲取的日志數(shù)據(jù)產(chǎn)生的時(shí) 間段。其中,日志數(shù)據(jù)所在的日志文件結(jié)合日志數(shù)據(jù)產(chǎn)生的時(shí)間段可以唯一確定日志數(shù)據(jù)。 值的說(shuō)明的是,用于標(biāo)識(shí)所請(qǐng)求獲取的日志數(shù)據(jù)的信息并不限于日志文件標(biāo)識(shí)和時(shí)間段標(biāo) 識(shí)。其中,根據(jù)日志數(shù)據(jù)的存儲(chǔ)格式或方式的不同,標(biāo)識(shí)日志數(shù)據(jù)的方式也會(huì)有所不同。
[0035] 客戶端代理裝置接收計(jì)算節(jié)點(diǎn)發(fā)送的查詢請(qǐng)求,對(duì)查詢請(qǐng)求進(jìn)行解析,從中獲取 日志文件標(biāo)識(shí)和時(shí)間段標(biāo)識(shí)。之后,客戶端代理裝置根據(jù)日志文件標(biāo)識(shí)和時(shí)間段標(biāo)識(shí),確定 用于指示在該時(shí)間段標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間段內(nèi)產(chǎn)生的日志數(shù)據(jù)在上述日志文件標(biāo)識(shí)所標(biāo)識(shí) 的日志文件中的位置的位置索引。在此說(shuō)明,計(jì)算節(jié)點(diǎn)所請(qǐng)求獲取的日志數(shù)據(jù)是指在時(shí)間 段標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間段內(nèi)產(chǎn)生且存儲(chǔ)于日志文件標(biāo)識(shí)所標(biāo)識(shí)的日志文件中的日志數(shù)據(jù)。其 中,不同類型的日志數(shù)據(jù)存儲(chǔ)在不同的日志文件中。
[0036] 接著,客戶端代理裝置根據(jù)所確定的位置索引,從上述日志文件標(biāo)識(shí)所標(biāo)識(shí)的日 志文件中獲取相應(yīng)的日志數(shù)據(jù)。最后,客戶端代理裝置將所獲取的日志數(shù)據(jù)傳輸給計(jì)算節(jié) 點(diǎn)。計(jì)算節(jié)點(diǎn)接收到客戶端代理裝置傳輸?shù)娜罩緮?shù)據(jù)后,可以按照作業(yè)流程對(duì)日志數(shù)據(jù)進(jìn) 行處理。
[0037] 在本實(shí)施例中,在日志宿主機(jī)上部署客戶端代理裝置,由