對于一堆時刻在增長的數據,如果要統計,可以采取什么方法呢?
- 等數據增長到一定程度的時候,跑一個統計程序進行統計。適用于實時性要求不高的場景。
如將數據導到HDFS,再運行一個MAP REDUCE JOB。
- 如果實時性要求高的,上面的方法就不行了。因此就帶來第二種方法。
在數據每次增長一筆的時候,就進行統計JOB,結果放到DB或搜索引擎的INDEX中。
STORM就是完成這種工作的。
HADOOP與STORM比較
- 數據來源:HADOOP是HDFS上某個文件夾下的可能是成TB的數據,STORM是實時新增的某一筆數據
- 處理過程:HADOOP是分MAP階段到REDUCE階段,STORM是由用戶定義處理流程,
流程中可以包含多個步驟,每個步驟可以是數據源(SPOUT)或處理邏輯(BOLT) - 是否結束:HADOOP最后是要結束的,STORM是沒有結束狀態,到最后一步時,就停在那,直到有新
數據進入時再從頭開始 - 處理速度:HADOOP是以處理HDFS上大量數據為目的,速度慢,STORM是只要處理新增的某一筆數據即可
可以做到很快。 - 適用場景:HADOOP是在要處理一批數據時用的,不講究時效性,要處理就提交一個JOB,STORM是要處理
某一新增數據時用的,要講時效性
- 與MQ對比:HADOOP沒有對比性,STORM可以看作是有N個步驟,每個步驟處理完就向下一個MQ發送消息,
監聽這個MQ的消費者繼續處理