基于Storm的流處理方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及基于Storm的流處理方法及系統(tǒng)。
【背景技術(shù)】
[0002] 數(shù)據(jù)挖掘可以通過對海量數(shù)據(jù)的整合、分析、統(tǒng)計,充分利用數(shù)據(jù)中蘊(yùn)含的價值, 挖掘出對企業(yè)管理、業(yè)務(wù)改進(jìn)、商機(jī)捕捉等更為有用的信息。隨著大數(shù)據(jù)時代的到來,數(shù)據(jù) 挖掘的數(shù)據(jù)量隨之增長。流處理技術(shù)可以對大數(shù)據(jù)進(jìn)行實時的分析,具有很強(qiáng)的時間價值。 [000 3]由于流式計算的開發(fā)過程復(fù)雜,Storm提供了 Spout、Bolt、Toplogy以及數(shù)據(jù)序列 化的接口,可方便數(shù)據(jù)挖掘人員基于Storm開發(fā)相應(yīng)的流處理系統(tǒng)。
[0004] 但S t 〇 rm入門比較困難,對于只想使用S t 〇 rm處理自己業(yè)務(wù)相關(guān)數(shù)據(jù)而不想去對 Storm有深入了解的數(shù)據(jù)服務(wù)人員,Storm的開發(fā)工作成為其使用流處理技術(shù)的主要障礙。
【發(fā)明內(nèi)容】
[0005] 為解決上述問題,本發(fā)明實施例提出了一種基于Storm的流處理方法及系統(tǒng)。
[0006] -方面,本發(fā)明實施例提供了一種基于Storm的流處理方法,所述方法包括:
[0007] 提取數(shù)據(jù);
[0008] 獲取配置文件,解析所述配置文件中的拓?fù)鋮?shù),所述拓?fù)鋮?shù)用于構(gòu)建拓?fù)渥?業(yè);
[0009] 根據(jù)所述拓?fù)鋮?shù)、所述數(shù)據(jù)構(gòu)建拓?fù)渥鳂I(yè);
[0010] 將所述拓?fù)渥鳂I(yè)進(jìn)行Storm流處理。
[0011] 可選地,所述提取數(shù)據(jù)之前,還包括:
[0012] 獲取各第一數(shù)據(jù)源的參數(shù),根據(jù)所述參數(shù)封裝各第一數(shù)據(jù)源;
[0013] 所述提取數(shù)據(jù),包括:
[0014] 獲取用戶存儲數(shù)據(jù)的第二數(shù)據(jù)源,所述第二數(shù)據(jù)源為所述第一數(shù)據(jù)源中的一個;
[0015] 根據(jù)封裝的第二數(shù)據(jù)源提取所述數(shù)據(jù)。
[0016] 可選地,所述所述第二數(shù)據(jù)源為Hadoop分布式文件系統(tǒng)HDFS數(shù)據(jù)源。
[0017] 可選地,所述提取數(shù)據(jù)之后,還包括:
[0018] 將所述數(shù)據(jù)存入存儲介質(zhì)中,以將所述數(shù)據(jù)封裝持久化。
[0019] 可選地,所述將所述數(shù)據(jù)存入存儲介質(zhì)中,包括:
[0020] 將所述數(shù)據(jù)存入HBase和/或Redis。
[0021 ]可選地,所述獲取配置文件,解析所述配置文件中的拓?fù)鋮?shù),包括:
[0022] 獲取用戶提供的配置文件,解析所述配置文件中的組件默認(rèn)參數(shù)和作業(yè)私有參 數(shù),根據(jù)所述組件默認(rèn)參數(shù)和作業(yè)私有參數(shù)形成拓?fù)鋮?shù)。
[0023] 可選地,所述根據(jù)所述拓?fù)鋮?shù)、所述數(shù)據(jù)構(gòu)建拓?fù)渥鳂I(yè),包括:
[0024]解析用戶自定義業(yè)務(wù);
[0025]根據(jù)所述拓?fù)鋮?shù)、所述數(shù)據(jù)、所述自定義業(yè)務(wù),構(gòu)建拓?fù)渥鳂I(yè)。
[0026] 另一方面,本發(fā)明實施例提供了一種基于Storm的流處理系統(tǒng),所述系統(tǒng)包括:數(shù) 據(jù)接入通用模塊、配置文件解析模塊和Storm流處理模塊;
[0027] 所述數(shù)據(jù)接入通用模塊,用于提取數(shù)據(jù);
[0028] 所述配置文件解析模塊,用于獲取配置文件,解析所述配置文件中的拓?fù)鋮?shù),所 述拓?fù)鋮?shù)用于構(gòu)建拓?fù)渥鳂I(yè);
[0029]所述Storm流處理模塊,用于根據(jù)所述配置文件解析模塊得到的拓?fù)鋮?shù)、所述數(shù) 據(jù)接入通用模塊提取的數(shù)據(jù)構(gòu)建拓?fù)渥鳂I(yè),將所述拓?fù)渥鳂I(yè)提交至Storm集群進(jìn)行流處理。 [0030]可選地,所述數(shù)據(jù)接入通用模塊,還用于,獲取各第一數(shù)據(jù)源的參數(shù),根據(jù)所述參 數(shù)封裝各第一數(shù)據(jù)源;獲取用戶存儲數(shù)據(jù)的第二數(shù)據(jù)源,所述第二數(shù)據(jù)源為所述第一數(shù)據(jù) 源中的一個;根據(jù)封裝的第二數(shù)據(jù)源提取所述數(shù)據(jù)。
[0031 ] 可選地,所述數(shù)據(jù)接入通用模塊,包括:Kafka_Spout通用組件和HDFS-Spout通用 組件;
[0032]所述HDFS-Spout通用組件,用于當(dāng)獲取用戶存儲數(shù)據(jù)的第二數(shù)據(jù)源為Hadoop分布 式文件系統(tǒng)HDFS數(shù)據(jù)源時,根據(jù)封裝的HDFS數(shù)據(jù)源提取所述數(shù)據(jù)。
[0033] 可選地,所述HDFS-Spout通用組件,還用于通過ZooKeeper實現(xiàn)斷點續(xù)傳;
[0034] 和/或通過ZooKeeper實現(xiàn)失敗重發(fā)。
[0035] 可選地,所述系統(tǒng),還包括:
[0036] 數(shù)據(jù)存儲通用模塊,用于將所述數(shù)據(jù)存入存儲介質(zhì)中,以將所述數(shù)據(jù)封裝持久化。
[0037] 可選地,所述數(shù)據(jù)存儲通用模塊,包括:HBase_Bolt通用組件和/或Redis-Bolt通 用組件;
[0038] 所述HBase-Bolt通用組件,用于將數(shù)據(jù)存入HBase;
[0039] 所述Redis-Bolt通用組件,用于將數(shù)據(jù)存入Redis。
[0040] 可選地,所述配置文件解析模塊,具體用于獲取用戶提供的配置文件,解析所述配 置文件中的組件默認(rèn)參數(shù)和作業(yè)私有參數(shù),根據(jù)所述組件默認(rèn)參數(shù)和作業(yè)私有參數(shù)形成拓 撲參數(shù)。
[0041 ] 可選地,所述Storm流處理模塊,包括:拓?fù)渥鳂I(yè)組裝組件、作業(yè)提交組件和Storm 集群;
[0042] 所述拓?fù)渥鳂I(yè)組裝組件,用于根據(jù)所述拓?fù)鋮?shù)、所述數(shù)據(jù)構(gòu)建拓?fù)渥鳂I(yè);
[0043] 所述作業(yè)提交組件,用于將所述拓?fù)渥鳂I(yè)組裝組件構(gòu)建的拓?fù)渥鳂I(yè)提交至Storm 集群;
[0044] 所述Storm集群,用于將所述作業(yè)提交組件提交的拓?fù)渥鳂I(yè)分配至處理節(jié)點,進(jìn)行 流處理。
[0045]可選地,所述Storm流處理模塊,還包括:自定義解析業(yè)務(wù)組件;
[0046] 所述自定義解析業(yè)務(wù)組件,用于解析用戶自定義業(yè)務(wù);
[0047] 所述拓?fù)渥鳂I(yè)組裝組件,用于根據(jù)所述拓?fù)鋮?shù)、所述數(shù)據(jù)、所述自定義解析業(yè)務(wù) 組件得到的自定義業(yè)務(wù),構(gòu)建拓?fù)渥鳂I(yè)。
[0048] 有益效果如下:
[0049]用戶僅需存儲數(shù)據(jù)并提供配置文件,本實施例提供的由數(shù)據(jù)接入通用模塊、數(shù)據(jù) 存儲通用模塊、配置文件解析模塊和Storm流處理模塊組成的基于Storm的流處理系統(tǒng),即 可自動根據(jù)數(shù)據(jù)及配置文件,生成拓?fù)渥鳂I(yè)提交至Storm集群進(jìn)行流處理,降低了用戶使用 通過Storm進(jìn)行流處理的技術(shù)難度,實現(xiàn)整個流處理框架中的通用組件及作業(yè)配置組裝,簡 化、加速流處理作業(yè)開發(fā)過程。
【附圖說明】
[0050] 下面將參照附圖描述本發(fā)明的具體實施例,其中:
[0051] 圖1示出了本發(fā)明一種實施例中提供的第一種基于Storm的流處理方法的流程圖; [0052]圖2示出了本發(fā)明一種實施例中提供的第一種基于Storm的流處理系統(tǒng)的結(jié)構(gòu)示 意圖;
[0053]圖3示出了本發(fā)明另一種實施例中提供的第二種基于Storm的流處理系統(tǒng)的結(jié)構(gòu) 示意圖;
[0054]圖4示出了本發(fā)明另一種實施例中提供的一種DFS-Spout通用組件處理流程示意 圖;
[0055]圖5示出了本發(fā)明另一種實施例中提供的第三種基于Storm的流處理系統(tǒng)的結(jié)構(gòu) 示意圖;
[0056]圖6示出了本發(fā)明另一種實施例中提供的第四種基于Storm的流處理系統(tǒng)的結(jié)構(gòu) 示意圖;
[0057]圖7示出了本發(fā)明另一種實施例中提供的一種HBase-Bolt通用組件處理流程示意 圖;
[0058]圖8示出了本發(fā)明另一種實施例中提供的一種Redis-Bolt通用組件處理流程示意 圖;
[0059]圖9示出了本發(fā)明另一種實施例中提供的第五種基于Storm的流處理系統(tǒng)的結(jié)