當(dāng)下情況我們需要給Spout和Bolt設(shè)計(jì)一種能夠處理大量數(shù)據(jù)(日志文件)的topology,當(dāng)一個(gè)特定數(shù)據(jù)值超過預(yù)設(shè)的臨界值時(shí)促發(fā)警報(bào)。使用Storm的topology,逐行讀入日志文件并且監(jiān)視輸入數(shù)據(jù)。在Storm組件方面,Spout負(fù)責(zé)讀入輸入數(shù)據(jù)。它不僅從現(xiàn)有的文件中讀入數(shù)據(jù),同時(shí)還監(jiān)視著新文件。文件一旦被修改Spout會(huì)讀入新的版本并且覆蓋之前的tuple(可以被Bolt讀入的格式),將tuple發(fā)射給Bolt進(jìn)行臨界分析,這樣就可以發(fā)現(xiàn)所有可能超臨界的記錄。
下一節(jié)將對(duì)用例進(jìn)行詳細(xì)介紹。
臨界分析
這一節(jié),將主要聚焦于臨界值的兩種分析類型:瞬間臨界(instant thershold)和時(shí)間序列臨界(time series threshold)。
- 瞬間臨界值監(jiān)測(cè):一個(gè)字段的值在那個(gè)瞬間超過了預(yù)設(shè)的臨界值,如果條件符合的話則觸發(fā)一個(gè)trigger。舉個(gè)例子當(dāng)車輛超越80公里每小時(shí),則觸發(fā)trigger。
- 時(shí)間序列臨界監(jiān)測(cè):字段的值在一個(gè)給定的時(shí)間段內(nèi)超過了預(yù)設(shè)的臨界值,如果條件符合則觸發(fā)一個(gè)觸發(fā)器。比如:在5分鐘類,時(shí)速超過80KM兩次及以上的車輛。
Listing> 這里將創(chuàng)建一個(gè)對(duì)應(yīng)的XML文件,這將包含引入數(shù)據(jù)的模式。這個(gè)XML將用于日志文件的解析。XML的設(shè)計(jì)模式和對(duì)應(yīng)的說明請(qǐng)見下表。