1.storm入門簡介

Storm是什麼?
StormTwitter開源的分佈式實時大數據處理框架,被業界稱爲實時版Hadoop。(全量|增量     硬盤|內存     離線|實時)隨着越來越多的場景對HadoopMapReduce高延遲無法容忍,比如網站統計、推薦系統、預警系統、金融系統(高頻交易、股票)等等,大數據實時處理解決方案(流計算)的應用日趨廣泛,目前已是分佈式技術領域最新爆發點,而Storm更是流計算技術中的佼佼者和主流。
按照storm作者的說法,Storm對於實時計算的意義類似於Hadoop對於批處理的意義。Hadoop提供了mapreduce原語,使我們的批處理程序變得簡單和高效。同樣,Storm也爲實時計算提供了一些簡單高效的原語,而且StormTrident是基於Storm原語更高級的抽象框架,類似於基於HadoopPig框架,讓開發更加便利和高效。本課程會深入、全面的講解Storm,並穿插企業場景實戰講述Storm的運用。

Storm 常見場景
推薦系統:實時推薦,根據下單或加入購物車推薦相關商品(而不是相似商品)
金融系統
預警系統
網站統計:實時銷量、流量統計,如淘寶雙11效果圖
 

實時處理
試想一下你自己實現實時計算的方案?
數據源務必實時,所以採用Message Queue作爲數據源,消息處理Comsumer實時從MQ獲取數據進行處理,返回結果到Web或寫DB
這種方式有以下幾個缺陷:
1、單機模式,能處理的數據量有限
2、不健壯,服務器掛掉即結束。而Storm集羣節點掛掉後,任務會重新分配給其他節點,作業不受影響。
3、失敗重試、事務等,你需要在代碼上進行控制,過多精力放在業務開發之外。
4、伸縮性差: 當一個消息處理者的消息量達到閥值,你需要對這些數據進行分流, 你需要配置這些新的處理者以讓他們處理分流的消息。

Storm一些關鍵特性
1.適用場景廣泛: storm可以實時處理消息和更新DB,對一個數據量進行持續的查詢並返回客戶端(持續計算),對一個耗資源的查詢作實時並行化的處理(分佈式方法調用,即DRPC),storm的這些基礎API可以滿足大量的場景。
2.可伸縮性高:  Storm的可伸縮性可以讓storm每秒可以處理的消息量達到很高。擴展一個實時計算任務,你所需要做的就是加機器並且提高這個計算任務的並行度 。Storm使用ZooKeeper來協調集羣內的各種配置使得Storm的集羣可以很容易的擴展。
3. 保證無數據丟失: 實時系統必須保證所有的數據被成功的處理。 那些會丟失數據的系統的適用場景非常窄, 而storm保證每一條消息都會被處理, 這一點和S4相比有巨大的反差。
4. 異常健壯 storm集羣非常容易管理,輪流重啓節點不影響應用。
5. 容錯性好:在消息處理過程中出現異常, storm會進行重試
6. 語言無關性 Stormtopology和消息處理組件(Bolt)可以用任何語言來定義, 這一點使得任何人都可以使用storm.
發佈了46 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章