阿里類似Hadoop MapReduce的系統:jstorm
Storm 是一個類似Hadoop MapReduce的系統, 用戶按照指定的接口實現一個任務,然后將這個任務遞交給JStorm系統,Jstorm將這個任務跑起來,并且按7 * 24小時運行起來,一旦中間一個worker 發生意外故障, 調度器立即分配一個新的worker替換這個失效的worker。因此,從應用的角度,JStorm 應用是一種遵守某種編程規范的分布式應用。從系統角度, JStorm一套類似MapReduce的調度系統。 從數據的角度, 是一套基于流水線的消息處理機制。實時計算現在是大數據領域中最火爆的一個方向,因為人們對數據的要求越來越高,實時性要求也越來越快,傳統的 Hadoop Map Reduce,逐漸滿足不了需求,因此在這個領域需求不斷。
特點:在Storm和JStorm出現以前,市面上出現很多實時計算引擎,但自storm和JStorm出現后,基本上可以說一統江湖,其優點:
開發非常迅速: 接口簡單,容易上手,只要遵守Topology,Spout, Bolt的編程規范即可開發出一個擴展性極好的應用,底層rpc,worker之間冗余,數據分流之類的動作完全不用考慮。
擴展性極好:當一級處理單元速度,直接配置一下并發數,即可線性擴展性能
健壯:當worker失效或機器出現故障時, 自動分配新的worker替換失效worker
數據準確性: 可以采用Acker機制,保證數據不丟失。 如果對精度有更多一步要求,采用事務機制,保證數據準確。
應用場景:
JStorm處理數據的方式是基于消息的流水線處理, 因此特別適合無狀態計算,也就是計算單元的依賴的數據全部在接受的消息中可以找到, 并且最好一個數據流不依賴另外一個數據流。
日志分析:從日志中分析出特定的數據,并將分析的結果存入外部存儲器如數據庫。目前,主流日志分析技術就使用JStorm或Storm
管道系統: 將一個數據從一個系統傳輸到另外一個系統, 比如將數據庫同步到Hadoop
消息轉化器: 將接受到的消息按照某種格式進行轉化,存儲到另外一個系統如消息中間件
統計分析器: 從日志或消息中,提煉出某個字段,然后做count或sum計算,最后將統計值存入外部存儲器。中間處理過程可能更復雜。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!