天天看點

storm消費kafka實作實時計算

storm消費kafka實作實時計算

* 每個應用執行個體部署一個日志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>

=========================

歡迎關注:

storm消費kafka實作實時計算