亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

數(shù)據(jù)采集系統(tǒng)和數(shù)據(jù)采集方法

文檔序號:6552430閱讀:230來源:國知局
數(shù)據(jù)采集系統(tǒng)和數(shù)據(jù)采集方法
【專利摘要】本發(fā)明提供了一種基于Zookeeper集群的數(shù)據(jù)采集系統(tǒng),包括:消息隊(duì)列建立單元,用于根據(jù)不同的數(shù)據(jù)源建立不同的消息隊(duì)列;Zookeeper集群,用于監(jiān)控多個(gè)采集器的狀態(tài),并使所述消息隊(duì)列中的任一消息數(shù)據(jù)僅被多臺所述采集器中的一個(gè)采集器采集,其中每個(gè)所述消息隊(duì)列對應(yīng)于所述Zookeeper集群的一個(gè)持久化節(jié)點(diǎn);每個(gè)所述采集器,在所述Zookeeper集群的協(xié)調(diào)下獲取消息數(shù)據(jù),所述采集器對應(yīng)于所述持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)。相應(yīng)地,本發(fā)明還提出了一種基于Zookeeper集群的數(shù)據(jù)采集方法。通過本發(fā)明的技術(shù)方案,可以按照不同的數(shù)據(jù)源制定不同的采集模塊,可以針對不同的存儲需求制定不同的存儲策略,實(shí)現(xiàn)了數(shù)據(jù)采集和存儲的多樣性。
【專利說明】數(shù)據(jù)采集系統(tǒng)和數(shù)據(jù)采集方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體而言,涉及一種基于Zooke印er集群的數(shù)據(jù) 采集系統(tǒng)和一種基于Zookeeper集群的數(shù)據(jù)采集方法。

【背景技術(shù)】
[0002] 隨著大數(shù)據(jù)時(shí)代的到來,企業(yè)的數(shù)據(jù)量在急劇地增加,各種企業(yè)應(yīng)用產(chǎn)生的數(shù)據(jù) 需要被實(shí)時(shí)、高效、安全地收集并存儲到大數(shù)據(jù)平臺上。
[0003] 目前的數(shù)據(jù)采集系統(tǒng)有多種方案可供選擇,如分布式數(shù)據(jù)采集工具Apache Flume、Facebook Scribe等。但是,目前的大部分?jǐn)?shù)據(jù)采集系統(tǒng)只是針對某一特定的數(shù)據(jù) 源,并將該特定的數(shù)據(jù)源存儲到特定的文件系統(tǒng)或數(shù)據(jù)倉庫,這樣導(dǎo)致難以處理實(shí)際應(yīng)用 中的多樣化的企業(yè)數(shù)據(jù)和以多種存儲方式為基準(zhǔn)的并發(fā)存儲方式,這樣就給企業(yè)帶來了很 多不便,例如,一些有些情況下,企業(yè)為了適應(yīng)數(shù)據(jù)源多樣化、存儲多樣化的需求甚至仍需 對這些系統(tǒng)做二次開發(fā)。
[0004] 因此,如何實(shí)現(xiàn)數(shù)據(jù)采集和存儲方式的多樣化,成為目前亟待解決的問題。


【發(fā)明內(nèi)容】

[0005] 本發(fā)明正是基于上述技術(shù)問題,提出了一種新的技術(shù)方案,可以按照不同的數(shù)據(jù) 源制定不同的采集模塊,可以針對不同的存儲需求制定不同的存儲策略,用戶可以根據(jù)需 求方便地實(shí)現(xiàn)多終端、多數(shù)據(jù)源、多存儲方式的數(shù)據(jù)采集與存儲,能快速方便地?cái)U(kuò)展終端和 存儲方式,實(shí)現(xiàn)了數(shù)據(jù)采集和存儲的多樣性。
[0006] 有鑒于此,本發(fā)明提出了一種基于Zooke印er集群的數(shù)據(jù)采集系統(tǒng),其特征在于, 包括:消息隊(duì)列建立單元,用于根據(jù)不同的數(shù)據(jù)源建立不同的消息隊(duì)列;Zookeeper集群, 用于監(jiān)控多個(gè)采集器的狀態(tài),并使所述消息隊(duì)列中的任一消息數(shù)據(jù)僅被多臺所述采集器中 的一個(gè)采集器采集,其中每個(gè)所述消息隊(duì)列對應(yīng)于所述Zookeeper集群的一個(gè)持久化節(jié) 點(diǎn);每個(gè)所述采集器,在所述Zookeeper集群的協(xié)調(diào)下獲取消息數(shù)據(jù),所述采集器對應(yīng)于所 述持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)。
[0007] ZooKeeper是Hadoop的正式子項(xiàng)目,它是一個(gè)針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系 統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。ZooKeeper的目標(biāo)就是 封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用 戶。(本釋義來自鏈接 http://baike. baidu. com/view/3061646. htm ? fr = aladdin)
[0008] 在該技術(shù)方案中,針對不同的數(shù)據(jù)源建立不同的消息隊(duì)列,消息隊(duì)列定義在不同 的主機(jī)上面,每個(gè)消息隊(duì)列用來接收不同格式、不同來源的數(shù)據(jù),可關(guān)聯(lián)多個(gè)發(fā)送方和多個(gè) 接收方,另外,采集器是消息隊(duì)列的接收方,針對不同的消息隊(duì)列可以配置不同的采集器。 這樣,通過支持在同一套系統(tǒng)中制定不同的數(shù)據(jù)源,并按照不同的數(shù)據(jù)源制定不同的采集 器,就實(shí)現(xiàn)了數(shù)據(jù)采集的多樣化,可以針對不同的存儲需求制定不同的存儲策略,實(shí)現(xiàn)對同 一數(shù)據(jù)進(jìn)行多種方式的并發(fā)存儲,進(jìn)而提高了處理效率。
[0009] 在上述技術(shù)方案中,優(yōu)選地,還包括:所述Zooke印er集群根據(jù)采集器注冊時(shí)間為 每個(gè)所述消息隊(duì)列動態(tài)產(chǎn)生采集器領(lǐng)導(dǎo)者,將所述采集器領(lǐng)導(dǎo)者所在持久化節(jié)點(diǎn)下的臨時(shí) 節(jié)點(diǎn)作為領(lǐng)導(dǎo)者節(jié)點(diǎn),以及將所述持久化節(jié)點(diǎn)下的其他臨時(shí)節(jié)點(diǎn)作為從節(jié)點(diǎn);所述領(lǐng)導(dǎo)者 節(jié)點(diǎn)負(fù)責(zé)與所述從節(jié)點(diǎn)的通信以執(zhí)行預(yù)定任務(wù)。
[0010] 在該技術(shù)方案中,采集器領(lǐng)導(dǎo)者由Zooke印er集群動態(tài)產(chǎn)生,即先注冊、處于活動 狀態(tài)的節(jié)點(diǎn)會優(yōu)先被考慮成為采集器領(lǐng)導(dǎo)者節(jié)點(diǎn),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)與從節(jié)點(diǎn)通信以執(zhí)行 預(yù)定的任務(wù),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)和從節(jié)點(diǎn)都位于消息隊(duì)列的持久化節(jié)點(diǎn)之下,每個(gè)隊(duì)列都 有一個(gè)選舉產(chǎn)生的采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)和若干個(gè)從節(jié)點(diǎn),增加了系統(tǒng)的有序性和穩(wěn)定性。
[0011] 在上述技術(shù)方案中,優(yōu)選地,還包括:所述Zooke印er集群根據(jù)心跳時(shí)間確定所述 領(lǐng)導(dǎo)者節(jié)點(diǎn)是否丟失,如果確認(rèn)丟失,則選擇下一個(gè)注冊的采集器作為采集器領(lǐng)導(dǎo)者。
[0012] 在該技術(shù)方案中,Zookeeper集群可設(shè)置心跳時(shí)間,比如,將心跳時(shí)間設(shè)置為10秒 鐘,如果連續(xù)10秒鐘內(nèi)沒有收到采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)的心跳,則認(rèn)為此采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)丟 失或節(jié)點(diǎn)機(jī)器的狀態(tài)出了問題。ZooKeeper集群有兩種工作方式:恢復(fù)模式和廣播模式。在 服務(wù)剛剛啟動時(shí)或在采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)丟失后,ZooKeeper集群進(jìn)入恢復(fù)模式,在恢復(fù)模式 下,系統(tǒng)首先會選舉下一個(gè)注冊的活動節(jié)點(diǎn)為采集器領(lǐng)導(dǎo)者節(jié)點(diǎn),增加了系統(tǒng)的穩(wěn)定性,然 后從節(jié)點(diǎn)與采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)進(jìn)行狀態(tài)及數(shù)據(jù)的同步,之后進(jìn)入再廣播模式,在廣播模式 里,采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)可直接與從節(jié)點(diǎn)通信。
[0013] 在上述技術(shù)方案中,優(yōu)選地,所述預(yù)定任務(wù)包括:所述領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與從節(jié)點(diǎn)進(jìn) 行文件屬性變更的通信;所述領(lǐng)導(dǎo)者節(jié)點(diǎn)周期性地合并所述從節(jié)點(diǎn)上的文件數(shù)據(jù);以及所 述領(lǐng)導(dǎo)者節(jié)點(diǎn)定期調(diào)用預(yù)設(shè)腳本或程序?qū)λ胁杉魃傻奈募M(jìn)行分析。
[0014] 在該技術(shù)方案中,文件屬性包括文件存儲方式、存儲位置、文件名及其它信息變 更。比如,在HDFS (Hadoop Distributed File System,為一種分布式文件系統(tǒng))存儲方式 下,采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)會周期性地生成文件名,通過周期性的心跳機(jī)制,各采集器通過節(jié)點(diǎn) 可以從ZooKe印er處感知到采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)的數(shù)據(jù)變化,如文件名稱信息的變化,根據(jù) 最新的文件名稱模板生成自己的文件。同時(shí),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)會周期性地合并各從節(jié)點(diǎn) 上的文件數(shù)據(jù),或者通知從節(jié)點(diǎn)具體的存儲位置及存儲方式,實(shí)現(xiàn)了存儲的多樣化。另外, 采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)是動態(tài)選舉產(chǎn)生的,但采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)需要執(zhí)行的任務(wù)是系統(tǒng)指定 的。預(yù)設(shè)腳本包括Pig腳本和Hive腳本,預(yù)設(shè)程序包括MapReduce程序。其中,Hive是基 于Hadoop的一種數(shù)據(jù)倉庫工具,MapReduce程序用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。這些腳本 或者程序中包含著主要的業(yè)務(wù)邏輯,如合并、聚集等,采集器領(lǐng)導(dǎo)者可通過系統(tǒng)環(huán)境或指定 參數(shù)訪問到這些業(yè)務(wù)邏輯以進(jìn)行分析,以針對不同的存儲需求制定不同的存儲策略。
[0015] 在上述技術(shù)方案中,優(yōu)選地,還包括:數(shù)據(jù)庫,用于存儲分析后得到的數(shù)據(jù)。
[0016] 在該技術(shù)方案中,分析后的數(shù)據(jù)可通過Pig腳本存儲于外部數(shù)據(jù)庫,如Oracle、 PostgreSQL等,也可通過Sqoop導(dǎo)出HDFS或Hive中的數(shù)據(jù)到外部關(guān)系型數(shù)據(jù)庫。其它系 統(tǒng)可訪問此數(shù)據(jù)庫做進(jìn)一步的分析,靈活實(shí)現(xiàn)了企業(yè)的分析需求。其中,Sqoop是一種開源 的工具,用于在Hadoop和其他數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)交換。
[0017] 根據(jù)本發(fā)明的另一方面,還提供了一種基于Zookeeper集群的數(shù)據(jù)采集方法,包 括:根據(jù)不同的數(shù)據(jù)源建立不同的消息隊(duì)列;通過Zooke印er集群監(jiān)控多個(gè)采集器的狀態(tài), 并使所述消息隊(duì)列中的任一消息數(shù)據(jù)僅被多臺所述采集器中的一個(gè)采集器采集,其中每 個(gè)所述消息隊(duì)列對應(yīng)于所述Zookeeper集群的一個(gè)持久化節(jié)點(diǎn);每個(gè)所述采集器在所述 Zookeeper集群的協(xié)調(diào)下獲取消息數(shù)據(jù),所述采集器對應(yīng)于所述持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)。
[0018] ZooKeeper是Hadoop的正式子項(xiàng)目,它是一個(gè)針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系 統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。ZooKeeper的目標(biāo)就是 封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用 戶。(本釋義來自鏈接 http://baike. baidu. com/view/3061646. htm ? fr = aladdin)
[0019] 在該技術(shù)方案中,針對不同的數(shù)據(jù)源建立不同的消息隊(duì)列,消息隊(duì)列定義在不同 的主機(jī)上面,每個(gè)消息隊(duì)列用來接收不同格式、不同來源的數(shù)據(jù),可關(guān)聯(lián)多個(gè)發(fā)送方和多個(gè) 接收方,另外,采集器是消息隊(duì)列的接收方,針對不同的消息隊(duì)列可以配置不同的采集器。 這樣,通過支持在同一套系統(tǒng)中制定不同的數(shù)據(jù)源,并按照不同的數(shù)據(jù)源制定不同的采集 器,就實(shí)現(xiàn)了數(shù)據(jù)采集的多樣化,可以針對不同的存儲需求制定不同的存儲策略,實(shí)現(xiàn)對同 一數(shù)據(jù)進(jìn)行多種方式的并發(fā)存儲,提高了處理效率。
[0020] 在上述技術(shù)方案中,優(yōu)選地,還包括:所述Zooke印er集群根據(jù)采集器注冊時(shí)間為 每個(gè)所述消息隊(duì)列動態(tài)產(chǎn)生采集器領(lǐng)導(dǎo)者,將所述采集器領(lǐng)導(dǎo)者所在持久化節(jié)點(diǎn)下的臨時(shí) 節(jié)點(diǎn)作為領(lǐng)導(dǎo)者節(jié)點(diǎn),以及將所述持久化節(jié)點(diǎn)下的其他臨時(shí)節(jié)點(diǎn)作為從節(jié)點(diǎn);以及所述領(lǐng) 導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與所述從節(jié)點(diǎn)的通信以執(zhí)行預(yù)定任務(wù)。
[0021] 在該技術(shù)方案中,采集器領(lǐng)導(dǎo)者由Zooke印er集群動態(tài)產(chǎn)生,即先注冊、處于活動 狀態(tài)的節(jié)點(diǎn)會優(yōu)先被考慮成為采集器領(lǐng)導(dǎo)者節(jié)點(diǎn),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)與從節(jié)點(diǎn)通信以執(zhí)行 預(yù)定的任務(wù),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)和從節(jié)點(diǎn)都位于消息隊(duì)列的持久化節(jié)點(diǎn)之下,每個(gè)隊(duì)列都 有一個(gè)選舉產(chǎn)生的采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)和若干個(gè)從節(jié)點(diǎn),增加了系統(tǒng)的有序性和穩(wěn)定性。
[0022] 在上述技術(shù)方案中,優(yōu)選地,還包括:所述Zooke印er集群根據(jù)心跳時(shí)間確定所述 領(lǐng)導(dǎo)者節(jié)點(diǎn)是否丟失,如果確認(rèn)丟失,則選擇下一個(gè)注冊的采集器作為領(lǐng)導(dǎo)者節(jié)點(diǎn)。
[0023] 在該技術(shù)方案中,Zookeeper集群可設(shè)置心跳時(shí)間,比如,將心跳時(shí)間設(shè)置為10秒 鐘,如果連續(xù)10秒鐘內(nèi)沒有收到采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)的心跳,則認(rèn)為此采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)丟 失或節(jié)點(diǎn)機(jī)器的狀態(tài)出了問題。ZooKeeper集群有兩種工作方式:恢復(fù)模式和廣播模式。在 服務(wù)剛剛啟動時(shí)或在采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)丟失后,ZooKeeper集群進(jìn)入恢復(fù)模式,在恢復(fù)模式 下,系統(tǒng)首先會選舉下一個(gè)注冊的活動節(jié)點(diǎn)為采集器領(lǐng)導(dǎo)者節(jié)點(diǎn),增加了系統(tǒng)的穩(wěn)定性,然 后從節(jié)點(diǎn)與采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)進(jìn)行狀態(tài)及數(shù)據(jù)的同步,之后進(jìn)入再廣播模式,在廣播模式 里,采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)可直接與從節(jié)點(diǎn)通信。
[0024] 在上述技術(shù)方案中,優(yōu)選地,所述預(yù)定任務(wù)包括:所述領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與從節(jié)點(diǎn)進(jìn) 行文件屬性變更的通信;所述領(lǐng)導(dǎo)者節(jié)點(diǎn)周期性地合并所述從節(jié)點(diǎn)上的文件數(shù)據(jù);以及所 述領(lǐng)導(dǎo)者節(jié)點(diǎn)定期調(diào)用預(yù)設(shè)腳本或程序?qū)λ胁杉魃傻奈募M(jìn)行分析。
[0025] 在該技術(shù)方案中,文件屬性包括文件存儲方式、存儲位置、文件名及其它信息變 更。比如,在HDFS (Hadoop Distributed File System,為一種分布式文件系統(tǒng))存儲方式 下,采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)會周期性地生成文件名,通過周期性的心跳機(jī)制,各采集器通過節(jié)點(diǎn) 可以從ZooKe印er處感知到采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)的數(shù)據(jù)變化,如文件名稱信息的變化,根據(jù) 最新的文件名稱模板生成自己的文件。同時(shí),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)會周期性地合并各從節(jié)點(diǎn) 上的文件數(shù)據(jù),或者通知從節(jié)點(diǎn)具體的存儲位置及存儲方式,實(shí)現(xiàn)了存儲的多樣化。另外, 采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)是動態(tài)選舉產(chǎn)生的,但采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)需要執(zhí)行的任務(wù)是系統(tǒng)指定 的。預(yù)設(shè)腳本包括Pig腳本和Hive腳本,預(yù)設(shè)程序包括MapReduce程序。其中,Hive是基 于Hadoop的一種數(shù)據(jù)倉庫工具,MapReduce程序用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。這些腳本 或者程序中包含著主要的業(yè)務(wù)邏輯,如合并、聚集等,采集器領(lǐng)導(dǎo)者可通過系統(tǒng)環(huán)境或指定 參數(shù)訪問到這些業(yè)務(wù)邏輯以進(jìn)行分析,以針對不同的存儲需求制定不同的存儲策略。
[0026] 在上述技術(shù)方案中,優(yōu)選地,還包括:將分析后得到的數(shù)據(jù)存儲于數(shù)據(jù)庫中。
[0027] 在該技術(shù)方案中,分析后的數(shù)據(jù)可通過Pig腳本存儲于外部數(shù)據(jù)庫,如Oracle、 PostgreSQL等,也可通過Sqoop導(dǎo)出HDFS或Hive中的數(shù)據(jù)到外部關(guān)系型數(shù)據(jù)庫。其它系 統(tǒng)可訪問此數(shù)據(jù)庫做進(jìn)一步的分析,靈活實(shí)現(xiàn)了企業(yè)的分析需求。其中,Sqoop是一種開源 的工具,用于在Hadoop和其他數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)交換。
[0028] 通過本發(fā)明的技術(shù)方案,可以按照不同的數(shù)據(jù)源制定不同的采集模塊,可以針對 不同的存儲需求制定不同的存儲策略,用戶可以根據(jù)需求方便地實(shí)現(xiàn)多終端、多數(shù)據(jù)源、多 存儲方式的數(shù)據(jù)采集與存儲,能快速方便地?cái)U(kuò)展終端和存儲方式,實(shí)現(xiàn)了數(shù)據(jù)采集和存儲 方式的多樣性,通過實(shí)時(shí)、穩(wěn)定的集群間數(shù)據(jù)通信和任務(wù)分發(fā),可以快速地獲取、處理數(shù)據(jù), 有效地控制負(fù)載均衡,加快數(shù)據(jù)的處理周期,可靈活應(yīng)對企業(yè)數(shù)據(jù)的采集、存儲、分析的需 求,極大地提高了處理效率。

【專利附圖】

【附圖說明】
[0029] 圖1示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)采集系統(tǒng)的框圖;
[0030] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)采集方法的流程圖;
[0031] 圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)采集系統(tǒng)的示意框圖。

【具體實(shí)施方式】
[0032] 為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí) 施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請的實(shí)施 例及實(shí)施例中的特征可以相互組合。
[0033] 在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開 的具體實(shí)施例的限制。
[0034] 圖1示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)采集系統(tǒng)的框圖。
[0035] 如圖1所示,根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)采集系統(tǒng)100,包括:消息隊(duì)列建立單元 102,用于根據(jù)不同的數(shù)據(jù)源建立不同的消息隊(duì)列;Zookeeper集群104,用于監(jiān)控多個(gè)采集 器的狀態(tài),并使消息隊(duì)列中的任一消息數(shù)據(jù)僅被多臺采集器中的一個(gè)采集器采集,其中每 個(gè)消息隊(duì)列對應(yīng)于Zookeeper集群的一個(gè)持久化節(jié)點(diǎn);每個(gè)采集器106,在Zookeeper集群 的協(xié)調(diào)下獲取消息數(shù)據(jù),采集器對應(yīng)于持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)。
[0036] ZooKeeper是Hadoop的正式子項(xiàng)目,它是一個(gè)針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系 統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。ZooKeeper的目標(biāo)就是 封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用 戶。(本釋義來自鏈接 http://baike. baidu. com/view/3061646. htm ? fr = aladdin)
[0037] 在該技術(shù)方案中,針對不同的數(shù)據(jù)源建立不同的消息隊(duì)列,消息隊(duì)列定義在不同 的主機(jī)上面,每個(gè)消息隊(duì)列用來接收不同格式、不同來源的數(shù)據(jù),可關(guān)聯(lián)多個(gè)發(fā)送方和多個(gè) 接收方,另外,采集器是消息隊(duì)列的接收方,針對不同的消息隊(duì)列可以配置不同的采集器。 這樣,通過支持在同一套系統(tǒng)中制定不同的數(shù)據(jù)源,并按照不同的數(shù)據(jù)源制定不同的采集 器,就實(shí)現(xiàn)了數(shù)據(jù)采集的多樣化,可以針對不同的存儲需求制定不同的存儲策略,實(shí)現(xiàn)對同 一數(shù)據(jù)進(jìn)行多種方式的并發(fā)存儲,提高了處理效率。
[0038] 在上述技術(shù)方案中,優(yōu)選地,還包括:Zookeeper集群根據(jù)采集器注冊時(shí)間為每個(gè) 消息隊(duì)列動態(tài)產(chǎn)生采集器領(lǐng)導(dǎo)者,將采集器領(lǐng)導(dǎo)者所在持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)作為領(lǐng)導(dǎo) 者節(jié)點(diǎn),以及將持久化節(jié)點(diǎn)下的其他臨時(shí)節(jié)點(diǎn)作為從節(jié)點(diǎn);領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與從節(jié)點(diǎn)的通 信以執(zhí)行預(yù)定任務(wù)。
[0039] 在該技術(shù)方案中,采集器領(lǐng)導(dǎo)者由Zooke印er集群動態(tài)產(chǎn)生,即先注冊、處于活動 狀態(tài)的節(jié)點(diǎn)會優(yōu)先被考慮成為采集器領(lǐng)導(dǎo)者節(jié)點(diǎn),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)與從節(jié)點(diǎn)通信以執(zhí)行 預(yù)定的任務(wù),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)和從節(jié)點(diǎn)都位于消息隊(duì)列的持久化節(jié)點(diǎn)之下,每個(gè)隊(duì)列都 有一個(gè)選舉產(chǎn)生的采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)和若干個(gè)從節(jié)點(diǎn),增加了系統(tǒng)的有序性和穩(wěn)定性。
[0040] 在上述技術(shù)方案中,優(yōu)選地,還包括:Zookeeper集群根據(jù)心跳時(shí)間確定領(lǐng)導(dǎo)者節(jié) 點(diǎn)是否丟失,如果確認(rèn)丟失,則選擇下一個(gè)注冊的采集器作為采集器領(lǐng)導(dǎo)者。
[0041] 在該技術(shù)方案中,Zookeeper集群可設(shè)置心跳時(shí)間,比如,將心跳時(shí)間設(shè)置為10秒 鐘,如果連續(xù)10秒鐘內(nèi)沒有收到采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)的心跳,則認(rèn)為此采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)丟 失或節(jié)點(diǎn)機(jī)器的狀態(tài)出了問題。ZooKeeper集群有兩種工作方式:恢復(fù)模式和廣播模式。在 服務(wù)剛剛啟動時(shí)或在采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)丟失后,ZooKeeper集群進(jìn)入恢復(fù)模式,在恢復(fù)模式 下,系統(tǒng)首先會選舉下一個(gè)注冊的活動節(jié)點(diǎn)為采集器領(lǐng)導(dǎo)者節(jié)點(diǎn),增加了系統(tǒng)的穩(wěn)定性,然 后從節(jié)點(diǎn)與采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)進(jìn)行狀態(tài)及數(shù)據(jù)的同步,之后進(jìn)入再廣播模式,在廣播模式 里,采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)可直接與從節(jié)點(diǎn)通信。
[0042] 在上述技術(shù)方案中,優(yōu)選地,預(yù)定任務(wù)包括:領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與從節(jié)點(diǎn)進(jìn)行文件屬 性變更的通信;領(lǐng)導(dǎo)者節(jié)點(diǎn)周期性地合并從節(jié)點(diǎn)上的文件數(shù)據(jù);以及領(lǐng)導(dǎo)者節(jié)點(diǎn)定期調(diào)用 預(yù)設(shè)腳本或程序?qū)λ胁杉魃傻奈募M(jìn)行分析。
[0043] 在該技術(shù)方案中,文件屬性包括文件存儲方式、存儲位置、文件名及其它信息變 更。比如,在HDFS (Hadoop Distributed File System,為一種分布式文件系統(tǒng))存儲方式 下,采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)會周期性地生成文件名,通過周期性的心跳機(jī)制,各采集器通過節(jié)點(diǎn) 可以從ZooKe印er處感知到采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)的數(shù)據(jù)變化,如文件名稱信息的變化,根據(jù) 最新的文件名稱模板生成自己的文件。同時(shí),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)會周期性地合并各從節(jié)點(diǎn) 上的文件數(shù)據(jù),或者通知從節(jié)點(diǎn)具體的存儲位置及存儲方式,實(shí)現(xiàn)了存儲的多樣化。另外, 采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)是動態(tài)選舉產(chǎn)生的,但采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)需要執(zhí)行的任務(wù)是系統(tǒng)指定 的。預(yù)設(shè)腳本包括Pig腳本和Hive腳本,預(yù)設(shè)程序包括MapReduce程序。其中,Hive是基 于Hadoop的一種數(shù)據(jù)倉庫工具,MapReduce程序用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。這些腳本 或者程序中包含著主要的業(yè)務(wù)邏輯,如合并、聚集等,采集器領(lǐng)導(dǎo)者可通過系統(tǒng)環(huán)境或指定 參數(shù)訪問到這些業(yè)務(wù)邏輯以進(jìn)行分析,以針對不同的存儲需求制定不同的存儲策略。
[0044] 在上述技術(shù)方案中,優(yōu)選地,還包括:數(shù)據(jù)庫108,用于存儲分析后得到的數(shù)據(jù)。
[0045] 在該技術(shù)方案中,分析后的數(shù)據(jù)可通過Pig腳本存儲于外部數(shù)據(jù)庫,如Oracle、 PostgreSQL等,也可通過Sqoop導(dǎo)出HDFS或Hive中的數(shù)據(jù)到外部關(guān)系型數(shù)據(jù)庫。其它系 統(tǒng)可訪問此數(shù)據(jù)庫做進(jìn)一步的分析,靈活實(shí)現(xiàn)了企業(yè)的分析需求。其中,Sqoop是一種開源 的工具,用于在Hadoop和其他數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)交換。
[0046] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)采集方法的流程圖。
[0047] 如圖2所示,根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)采集方法,包括以下步驟:
[0048] 步驟202,根據(jù)不同的數(shù)據(jù)源建立不同的消息隊(duì)列。針對不同的數(shù)據(jù)源建立不同的 消息隊(duì)列,消息隊(duì)列定義在不同的主機(jī)上面,每個(gè)消息隊(duì)列用來接收不同格式、不同來源的 數(shù)據(jù),可關(guān)聯(lián)多個(gè)發(fā)送方和多個(gè)接收方.
[0049] 步驟204,通過Zooke印er集群監(jiān)控多個(gè)采集器的狀態(tài),并使消息隊(duì)列中的任一消 息數(shù)據(jù)僅被多臺采集器中的一個(gè)采集器采集,其中每個(gè)消息隊(duì)列對應(yīng)于Zookeeper集群的 一個(gè)持久化節(jié)點(diǎn)。采集器是消息隊(duì)列的接收方,針對不同的消息隊(duì)列可以配置不同的采集 器。這樣,通過支持在同一套系統(tǒng)中制定不同的數(shù)據(jù)源,并按照不同的數(shù)據(jù)源制定不同的采 集器,就實(shí)現(xiàn)了數(shù)據(jù)采集的多樣化,可以針對不同的存儲需求制定不同的存儲策略,實(shí)現(xiàn)對 同一數(shù)據(jù)進(jìn)行多種方式的并發(fā)存儲,提高了處理效率。
[0050] 步驟206,每個(gè)采集器在Zooke印er集群的協(xié)調(diào)下獲取消息數(shù)據(jù),采集器對應(yīng)于持 久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)。
[0051] ZooKeeper是Hadoop的正式子項(xiàng)目,它是一個(gè)針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系 統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。ZooKeeper的目標(biāo)就是 封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用 戶。(本釋義來自鏈接 http://baike. baidu. com/view/3061646. htm ? fr = aladdin)
[0052] 在上述技術(shù)方案中,優(yōu)選地,還包括:Zookeeper集群根據(jù)采集器注冊時(shí)間為每個(gè) 消息隊(duì)列動態(tài)產(chǎn)生采集器領(lǐng)導(dǎo)者,將采集器領(lǐng)導(dǎo)者所在持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)作為領(lǐng)導(dǎo) 者節(jié)點(diǎn),以及將持久化節(jié)點(diǎn)下的其他臨時(shí)節(jié)點(diǎn)作為從節(jié)點(diǎn);以及領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與從節(jié)點(diǎn) 的通信以執(zhí)行預(yù)定任務(wù)。
[0053] 在該技術(shù)方案中,采集器領(lǐng)導(dǎo)者由Zooke印er集群動態(tài)產(chǎn)生,即先注冊、處于活動 狀態(tài)的節(jié)點(diǎn)會優(yōu)先被考慮成為采集器領(lǐng)導(dǎo)者節(jié)點(diǎn),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)與從節(jié)點(diǎn)通信以執(zhí)行 預(yù)定的任務(wù),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)和從節(jié)點(diǎn)都位于消息隊(duì)列的持久化節(jié)點(diǎn)之下,每個(gè)隊(duì)列都 有一個(gè)選舉產(chǎn)生的采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)和若干個(gè)從節(jié)點(diǎn),增加了系統(tǒng)的有序性和穩(wěn)定性。
[0054] 在上述技術(shù)方案中,優(yōu)選地,還包括:Zookeeper集群根據(jù)心跳時(shí)間確定領(lǐng)導(dǎo)者節(jié) 點(diǎn)是否丟失,如果確認(rèn)丟失,則選擇下一個(gè)注冊的采集器作為領(lǐng)導(dǎo)者節(jié)點(diǎn)。
[0055] 在該技術(shù)方案中,Zookeeper集群可設(shè)置心跳時(shí)間,比如,將心跳時(shí)間設(shè)置為10秒 鐘,如果連續(xù)10秒鐘內(nèi)沒有收到采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)的心跳,則認(rèn)為此采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)丟 失或節(jié)點(diǎn)機(jī)器的狀態(tài)出了問題。ZooKeeper集群有兩種工作方式:恢復(fù)模式和廣播模式。在 服務(wù)剛剛啟動時(shí)或在采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)丟失后,ZooKeeper集群進(jìn)入恢復(fù)模式,在恢復(fù)模式 下,系統(tǒng)首先會選舉下一個(gè)注冊的活動節(jié)點(diǎn)為采集器領(lǐng)導(dǎo)者節(jié)點(diǎn),增加了系統(tǒng)的穩(wěn)定性,然 后從節(jié)點(diǎn)與采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)進(jìn)行狀態(tài)及數(shù)據(jù)的同步,之后進(jìn)入再廣播模式,在廣播模式 里,采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)可直接與從節(jié)點(diǎn)通信。
[0056] 在上述技術(shù)方案中,優(yōu)選地,預(yù)定任務(wù)包括:領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與從節(jié)點(diǎn)進(jìn)行文件屬 性變更的通信;領(lǐng)導(dǎo)者節(jié)點(diǎn)周期性地合并從節(jié)點(diǎn)上的文件數(shù)據(jù);以及領(lǐng)導(dǎo)者節(jié)點(diǎn)定期調(diào)用 預(yù)設(shè)腳本或程序?qū)λ胁杉魃傻奈募M(jìn)行分析。
[0057] 在該技術(shù)方案中,文件屬性包括文件存儲方式、存儲位置、文件名及其它信息變 更。比如,在HDFS (Hadoop Distributed File System,為一種分布式文件系統(tǒng))存儲方式 下,采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)會周期性地生成文件名,通過周期性的心跳機(jī)制,各采集器通過節(jié)點(diǎn) 可以從ZooKe印er處感知到采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)的數(shù)據(jù)變化,如文件名稱信息的變化,根據(jù) 最新的文件名稱模板生成自己的文件。同時(shí),采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)會周期性地合并各從節(jié)點(diǎn) 上的文件數(shù)據(jù),或者通知從節(jié)點(diǎn)具體的存儲位置及存儲方式,實(shí)現(xiàn)了存儲的多樣化。另外, 采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)是動態(tài)選舉產(chǎn)生的,但采集器領(lǐng)導(dǎo)者節(jié)點(diǎn)需要執(zhí)行的任務(wù)是系統(tǒng)指定 的。預(yù)設(shè)腳本包括Pig腳本和Hive腳本,預(yù)設(shè)程序包括MapReduce程序。其中,Hive是基 于Hadoop的一種數(shù)據(jù)倉庫工具,MapReduce程序用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。這些腳本 或者程序中包含著主要的業(yè)務(wù)邏輯,如合并、聚集等,采集器領(lǐng)導(dǎo)者可通過系統(tǒng)環(huán)境或指定 參數(shù)訪問到這些業(yè)務(wù)邏輯以進(jìn)行分析,以針對不同的存儲需求制定不同的存儲策略。
[0058] 在上述技術(shù)方案中,優(yōu)選地,還包括:將分析后得到的數(shù)據(jù)存儲于數(shù)據(jù)庫中。
[0059] 在該技術(shù)方案中,分析后的數(shù)據(jù)可通過Pig腳本存儲于外部數(shù)據(jù)庫,如Oracle、 PostgreSQL等,也可通過Sqoop導(dǎo)出HDFS或Hive中的數(shù)據(jù)到外部關(guān)系型數(shù)據(jù)庫。其它系 統(tǒng)可訪問此數(shù)據(jù)庫做進(jìn)一步的分析,靈活實(shí)現(xiàn)了企業(yè)的分析需求。其中,Sqoop是一種開源 的工具,用于在Hadoop和其他數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)交換。
[0060] 圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)采集系統(tǒng)的示意框圖。
[0061] 如圖3所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)采集系統(tǒng)300,包括:JMS(Java Message Service)總線302, JMS通常用于在兩個(gè)應(yīng)用程序之間或分布式系統(tǒng)中傳遞信息, JMS總線302在此用于針對不同的數(shù)據(jù)源建立不同的消息隊(duì)列,消息隊(duì)列定義在不同的主 機(jī)上面,每個(gè)消息隊(duì)列接收不同格式和/或不同來源的數(shù)據(jù),并可關(guān)聯(lián)多個(gè)發(fā)送方和多個(gè) 接收方;ZooKe印er集群304, ZooKe印er是應(yīng)用于分布式系統(tǒng)的協(xié)調(diào)系統(tǒng),包括配置維護(hù)、 名字服務(wù)、分布式同步、組服務(wù)等,ZooKeeper集群304有恢復(fù)模式和廣播模式兩種工作方 式,在服務(wù)啟動時(shí)或在采集器Leader3061丟失后,ZooKeeper集群304進(jìn)入恢復(fù)模式,系統(tǒng) 先選舉采集器Leader節(jié)點(diǎn),然后從節(jié)點(diǎn)與采集器Leader節(jié)點(diǎn)進(jìn)行狀態(tài)及數(shù)據(jù)的同步,之 后再進(jìn)入廣播模式,在廣播模式里采集器Leader3061可以直接廣播消息;采集器集群306, 采集器集群306包括采集器Leader3061、采集器3062、…、采集器306N,是消息隊(duì)列的接 收方,針對不同的消息隊(duì)列,需要配置不同的采集器集群;HDFS、Hive、HBase,為數(shù)據(jù)存儲 方式,采集器收集來的數(shù)據(jù)可自行選擇存儲方式;數(shù)據(jù)處理程序308,包括MapReduce程序 3082、Hive腳本3084、Pig腳本3086三種預(yù)定義的數(shù)據(jù)處理程序;關(guān)系型數(shù)據(jù)庫310,包括 Oracle、PostGre等,用來存儲分析數(shù)據(jù)。
[0062] 在上述技術(shù)方案中,由ZooKe印er集群304協(xié)調(diào)采集器集群306經(jīng)JMS總線302 獲取消息隊(duì)列中的消息數(shù)據(jù),隊(duì)列中的數(shù)據(jù)只被一臺采集器獲得。ZooKeeper集群實(shí)時(shí)監(jiān)控 采集器集群306中各采集器的狀態(tài),每個(gè)隊(duì)列對應(yīng)于ZooKe印er集群中的一個(gè)持久化節(jié)點(diǎn), 每個(gè)采集器對應(yīng)于這個(gè)持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)。消息隊(duì)列節(jié)點(diǎn)在系統(tǒng)啟動時(shí)建立,每個(gè) 采集器啟動后會自動將自己注冊到指定的隊(duì)列下。
[0063] 系統(tǒng)在多臺采集器中選舉一個(gè)采集器Leader3061,這個(gè)采集器Leader3061是由 ZooKe印er集群304動態(tài)產(chǎn)生的。目前的選舉算法是參考機(jī)器注冊的時(shí)間,即先注冊、處于 活動狀態(tài)的節(jié)點(diǎn)會優(yōu)先被考慮成為Leader。當(dāng)前的采集器Leader3061如果丟失,則會檢查 下一個(gè)注冊的活動節(jié)點(diǎn)為Leader節(jié)點(diǎn)。Leader節(jié)點(diǎn)和從節(jié)點(diǎn)都位于隊(duì)列的持久化節(jié)點(diǎn)之 下,每個(gè)隊(duì)列都有一個(gè)選舉產(chǎn)生的Leader節(jié)點(diǎn)和若干個(gè)從節(jié)點(diǎn)。另外,還可以設(shè)置心跳時(shí) 間,比如,將心跳時(shí)間設(shè)置為10秒鐘,如果連續(xù)10秒鐘沒有收到節(jié)點(diǎn)的心跳,則認(rèn)為此節(jié)點(diǎn) 丟失或節(jié)點(diǎn)機(jī)器的狀態(tài)出了問題。
[0064] 采集器Leader3061負(fù)責(zé)與從節(jié)點(diǎn)進(jìn)行文件存儲方式、存儲位置、文件名及其它信 息變更的通信。比如,在HDFS存儲方式的情況寫,Leader會周期性地生成文件名,通過周期 性的心跳機(jī)制,采集器集群 306 包括采集器Leader3061、采集器 3062、…、采集器 306N從 節(jié)點(diǎn)可以從ZooKeeper集群處感知到Leader節(jié)點(diǎn)的數(shù)據(jù)變化,如文件名稱信息的變化,根 據(jù)最新的文件名稱模板生成自己的文件。同時(shí),采集器Leader3061會周期性的合并各從節(jié) 點(diǎn)上的文件數(shù)據(jù),或者通知從節(jié)點(diǎn)具體的存儲位置及存儲方式。采集器Lead er3061是動態(tài) 選舉產(chǎn)生的,但采集器Leader3061需要執(zhí)行的任務(wù)是系統(tǒng)指定的。
[0065] 采集器Leader3061的另一職責(zé)是定期調(diào)用數(shù)據(jù)處理程序308,包括MapReduce程 序3082、Hive腳本3084或者Pig腳本3086,對采集器集群306生成的文件做數(shù)據(jù)分析。這 些腳本或者程序中包含主要的業(yè)務(wù)邏輯,如合并、聚集等等,采集器Lead er3061可通過系 統(tǒng)環(huán)境或指定參數(shù)訪問到這些程序。
[0066] 分析后的數(shù)據(jù)可通過Pig腳本3086存儲于外部的關(guān)系型數(shù)據(jù)庫310,如Oracle、 PostgreSQL等,也可通過Sqoop導(dǎo)出HDFS或Hive存儲方式中的數(shù)據(jù)到關(guān)系型數(shù)據(jù)庫310, 其它系統(tǒng)可訪問關(guān)系型數(shù)據(jù)庫310以做進(jìn)一步的分析。其中,Sqoop是一種開源的工具,用 于在Hadoop和其他數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)交換。
[0067] 以上結(jié)合附圖詳細(xì)說明了本發(fā)明的技術(shù)方案,通過本發(fā)明的技術(shù)方案,可以按照 不同的數(shù)據(jù)源制定不同的采集模塊,可以針對不同的存儲需求制定不同的存儲策略,用戶 可以根據(jù)需求方便地實(shí)現(xiàn)多終端、多數(shù)據(jù)源、多存儲方式的數(shù)據(jù)采集與存儲,能快速方便地 擴(kuò)展終端和存儲方式,實(shí)現(xiàn)了數(shù)據(jù)采集和存儲方式的多樣性,通過實(shí)時(shí)、穩(wěn)定的集群間數(shù)據(jù) 通信和任務(wù)分發(fā),可以快速地獲取、處理數(shù)據(jù),有效地控制負(fù)載均衡,加快數(shù)據(jù)的處理周期, 可靈活應(yīng)對企業(yè)數(shù)據(jù)的采集、存儲、分析的需求,極大地提高了處理效率。
[〇〇68] 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種基于Zookeeper集群的數(shù)據(jù)采集系統(tǒng),其特征在于,包括: 消息隊(duì)列建立單元,用于根據(jù)不同的數(shù)據(jù)源建立不同的消息隊(duì)列; Zookeeper集群,用于監(jiān)控多個(gè)采集器的狀態(tài),并使所述消息隊(duì)列中的任一消息數(shù)據(jù)僅 被多臺所述采集器中的一個(gè)采集器采集,其中每個(gè)所述消息隊(duì)列對應(yīng)于所述Zookeeper集 群的一個(gè)持久化節(jié)點(diǎn); 每個(gè)所述采集器,在所述Zookeeper集群的協(xié)調(diào)下獲取消息數(shù)據(jù),所述采集器對應(yīng)于 所述持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)。
2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)采集系統(tǒng),其特征在于,還包括: 所述Zookeeper集群根據(jù)采集器注冊時(shí)間為每個(gè)所述消息隊(duì)列動態(tài)產(chǎn)生采集器領(lǐng)導(dǎo) 者,將所述采集器領(lǐng)導(dǎo)者所在持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)作為領(lǐng)導(dǎo)者節(jié)點(diǎn),以及將所述持久 化節(jié)點(diǎn)下的其他臨時(shí)節(jié)點(diǎn)作為從節(jié)點(diǎn); 所述領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與所述從節(jié)點(diǎn)的通信以執(zhí)行預(yù)定任務(wù)。
3. 根據(jù)權(quán)利要求2所述的數(shù)據(jù)采集系統(tǒng),其特征在于,還包括: 所述Zookeeper集群根據(jù)心跳時(shí)間確定所述領(lǐng)導(dǎo)者節(jié)點(diǎn)是否丟失,如果確認(rèn)丟失,則 選擇下一個(gè)注冊的采集器作為采集器領(lǐng)導(dǎo)者。
4. 根據(jù)權(quán)利要求2或3所述的數(shù)據(jù)采集系統(tǒng),其特征在于,所述預(yù)定任務(wù)包括: 所述領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與從節(jié)點(diǎn)進(jìn)行文件屬性變更的通信; 所述領(lǐng)導(dǎo)者節(jié)點(diǎn)周期性地合并所述從節(jié)點(diǎn)上的文件數(shù)據(jù);以及 所述領(lǐng)導(dǎo)者節(jié)點(diǎn)定期調(diào)用預(yù)設(shè)腳本或程序?qū)λ胁杉魃傻奈募M(jìn)行分析。
5. 根據(jù)權(quán)利要求4所述的數(shù)據(jù)采集系統(tǒng),其特征在于,還包括: 數(shù)據(jù)庫,用于存儲分析后得到的數(shù)據(jù)。
6. -種基于Zookeeper集群的數(shù)據(jù)采集方法,其特征在于,包括: 根據(jù)不同的數(shù)據(jù)源建立不同的消息隊(duì)列; 通過Zookeeper集群監(jiān)控多個(gè)采集器的狀態(tài),并使所述消息隊(duì)列中的任一消息數(shù)據(jù)僅 被多臺所述采集器中的一個(gè)采集器采集,其中每個(gè)所述消息隊(duì)列對應(yīng)于所述Zookeeper集 群的一個(gè)持久化節(jié)點(diǎn); 每個(gè)所述采集器在所述Zookeeper集群的協(xié)調(diào)下獲取消息數(shù)據(jù),所述采集器對應(yīng)于所 述持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)。
7. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)采集方法,其特征在于,還包括: 所述Zookeeper集群根據(jù)采集器注冊時(shí)間為每個(gè)所述消息隊(duì)列動態(tài)產(chǎn)生采集器領(lǐng)導(dǎo) 者,將所述采集器領(lǐng)導(dǎo)者所在持久化節(jié)點(diǎn)下的臨時(shí)節(jié)點(diǎn)作為領(lǐng)導(dǎo)者節(jié)點(diǎn),以及將所述持久 化節(jié)點(diǎn)下的其他臨時(shí)節(jié)點(diǎn)作為從節(jié)點(diǎn);以及 所述領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與所述從節(jié)點(diǎn)的通信以執(zhí)行預(yù)定任務(wù)。
8. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)采集方法,其特征在于,還包括: 所述Zookeeper集群根據(jù)心跳時(shí)間確定所述領(lǐng)導(dǎo)者節(jié)點(diǎn)是否丟失,如果確認(rèn)丟失,則 選擇下一個(gè)注冊的采集器作為領(lǐng)導(dǎo)者節(jié)點(diǎn)。
9. 根據(jù)權(quán)利要求7或8所述的數(shù)據(jù)采集方法,其特征在于,所述預(yù)定任務(wù)包括: 所述領(lǐng)導(dǎo)者節(jié)點(diǎn)負(fù)責(zé)與從節(jié)點(diǎn)進(jìn)行文件屬性變更的通信; 所述領(lǐng)導(dǎo)者節(jié)點(diǎn)周期性地合并所述從節(jié)點(diǎn)上的文件數(shù)據(jù);以及 所述領(lǐng)導(dǎo)者節(jié)點(diǎn)定期調(diào)用預(yù)設(shè)腳本或程序?qū)λ胁杉魃傻奈募M(jìn)行分析。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)采集方法,其特征在于,還包括: 將分析后得到的數(shù)據(jù)存儲于數(shù)據(jù)庫中。
【文檔編號】G06F17/30GK104065741SQ201410319209
【公開日】2014年9月24日 申請日期:2014年7月4日 優(yōu)先權(quán)日:2014年7月4日
【發(fā)明者】費(fèi)英林 申請人:用友軟件股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1