對于一堆時刻在增長的資料,如果要統計,可以采取什麼方法呢?
等資料增長到一定程度的時候,跑一個統計程式進行統計。适用于實時性要求不高的場景。
如将資料導到HDFS,再運作一個MAP REDUCE JOB。
如果實時性要求高的,上面的方法就不行了。是以就帶來第二種方法。
在資料每次增長一筆的時候,就進行統計JOB,結果放到DB或搜尋引擎的INDEX中。
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的消費者繼續處理