
* 每個應用執行個體部署一個日志agent
* agent實時将日志發送到kafka
* storm實時計算日志
* storm計算結果儲存到hbase
建立實時計算項目并引入storm和kafka相關的依賴
建立消費kafka的spout,直接用storm提供的KafkaSpout即可。
建立處理從kafka讀取資料的Bolt,JsonBolt負責解析kafka讀取到的json并發送到下個Bolt進一步處理(下一步處理的Bolt不再寫,隻要繼承BaseRichBolt就可以對tuple處理)。
建立拓撲MyTopology,先配置好KafkaSpout的配置SpoutConfig,其中zk的位址端口和根節點,将id為KAFKA_SPOUT_ID的spout通過shuffleGrouping關聯到jsonBolt對象。
本地測試時直接不帶運作參數運作即可,放到叢集是需帶拓撲名稱作為參數。
另外需要注意的是:KafkaSpout預設從上次運作停止時的位置開始繼續消費,即不會從頭開始消費一遍,因為KafkaSpout預設每2秒鐘會送出一次kafka的offset位置到zk上,如果要每次運作都從頭開始消費可以通過配置實作。
========廣告時間========
<a href="http://blog.csdn.net/wangyangzhizhou/article/details/74080321">為什麼寫《Tomcat核心設計剖析》</a>
=========================
歡迎關注: