1. 程式人生 > >Storm WordCount

Storm WordCount

本地 mage pos 環境 mapreduce bsp red ntb orm

技術分享圖片

特別註意,在本地運行的時候應該去掉<scope>provided</scope>,否則會報java.lang.ClassNotFoundException: org.apache.storm.topology.IRichSpout

集群環境中運行的時候應該加上

技術分享圖片

在這個例子中,有一個spout,兩個bolt,也就是說這個任務分為兩步。spout隨機發送一句話到stream,而SplitBolt負責將其分隔成一個一個單詞,CountBolt負責計數。運行的時候,spout的並行數是3,SplitBolt的並行數是2,也就是說相當於有3個spout,2個SplitBolt,1個CountBolt。

運行的時候,直接右鍵運行main方法即可,輸出結果大概是這樣的:

技術分享圖片

簡單的對比hadoop,可以這樣理解storm:

Storm中的Topology相當於Hadoop中的Job

Storm中的Spout相當於Hadoop中的輸入文件,而Bolt相當於MapReduce任務

Storm中的每一個處理是一個Bolt再到下一個Bolt,而Hadoop中是一個MapReduce任務再下一個MapReduce

如果一個任務需要分多步完成的話,那麽在Storm中每一步就相當於一個Bolt,而在Hadoop中每一步相當於一個MapReduce任務

Storm WordCount