Storm簡介
Storm簡介
Storm是一個分布式的、容錯的實時計算系統,可以方便地在一個計算機集群中編寫與擴展復雜的實時計算。在海量領域里,Storm用于實時數據的處理,Hadoop用于批數據的處理,兩者可以說是絕代雙雄!Storm保證每個消息都會得到處理,而且它很快——在一個小集群中,每秒可以處理數以百萬計的消息。
Storm的優點
1. 簡單的編程模型。類似于MapReduce降低了并行批處理復雜性,Storm降低了進行實時處理的復雜性。
2. 服務化,一個服務框架,支持熱部署,即時上線或下線App.
3. 可以使用各種編程語言。你可以在Storm之上使用各種編程語言。默認支持Clojure、Java、Ruby和Python。要增加對其他語言的支持,只需實現一個簡單的Storm通信協議即可。
4. 容錯性。Storm會管理工作進程和節點的故障。
5. 水平擴展。計算是在多個線程、進程和服務器之間并行進行的。
6. 可靠的消息處理。Storm保證每個消息至少能得到一次完整處理。任務失敗時,它會負責從消息源重試消息。
7. 快速。系統的設計保證了消息能得到快速的處理,使用ZeroMQ作為其底層消息隊列。
8. 本地模式。Storm有一個“本地模式”,可以在處理過程中完全模擬Storm集群。這讓你可以快速進行開發和單元測試。
有優點,必定有缺點。不過相對來說,我覺得這些問題都不大
1. 目前的開源版本中只是單節點Nimbus(我們可以在生產環境實現一個雙nimbus的布局)。
2. Clojure是一個在JVM平臺運行的動態函數式編程語言,優勢在于流程計算,Storm的部分核心內容由Clojure編寫,雖然性能上提高不少但同時也提升了維護成本--學學Clojure也很不錯,只要你融入里面。
Storm架構
Storm是一個分布式的、容錯的實時計算系統,可以方便地在一個計算機集群中編寫與擴展復雜的實時計算。在海量領域里,Storm用于實時數據的處理,Hadoop用于批數據的處理,兩者可以說是絕代雙雄!Storm保證每個消息都會得到處理,而且它很快——在一個小集群中,每秒可以處理數以百萬計的消息。
Storm的優點
1. 簡單的編程模型。類似于MapReduce降低了并行批處理復雜性,Storm降低了進行實時處理的復雜性。
2. 服務化,一個服務框架,支持熱部署,即時上線或下線App.
3. 可以使用各種編程語言。你可以在Storm之上使用各種編程語言。默認支持Clojure、Java、Ruby和Python。要增加對其他語言的支持,只需實現一個簡單的Storm通信協議即可。
4. 容錯性。Storm會管理工作進程和節點的故障。
5. 水平擴展。計算是在多個線程、進程和服務器之間并行進行的。
6. 可靠的消息處理。Storm保證每個消息至少能得到一次完整處理。任務失敗時,它會負責從消息源重試消息。
7. 快速。系統的設計保證了消息能得到快速的處理,使用ZeroMQ作為其底層消息隊列。
8. 本地模式。Storm有一個“本地模式”,可以在處理過程中完全模擬Storm集群。這讓你可以快速進行開發和單元測試。
有優點,必定有缺點。不過相對來說,我覺得這些問題都不大
1. 目前的開源版本中只是單節點Nimbus(我們可以在生產環境實現一個雙nimbus的布局)。
2. Clojure是一個在JVM平臺運行的動態函數式編程語言,優勢在于流程計算,Storm的部分核心內容由Clojure編寫,雖然性能上提高不少但同時也提升了維護成本--學學Clojure也很不錯,只要你融入里面。
Storm架構
Storm集群由一個主節點和多個工作節點組成,分布式的架構大多如此,沒什么好說的。主節點運行了一個名為“Nimbus”的守護進程,用于分配代碼、布置任務及故障檢測。每個工作節點都運行了一個名為“Supervisor”的守護進程,用于監聽工作,開始并終止工作進程。Nimbus和Supervisor都能快速失敗,而且是無狀態的,這樣十分健壯,兩者的協調當然是由Zookeeper來完成的,ZooKeeper用于管理集群中的不同組件,ZeroMQ是內部消息系統,JZMQ是ZeroMQMQ的Java Binding。
posted on 2012-01-14 17:08 徐紅星 閱讀(395) 評論(0) 編輯 收藏 所屬分類: Storm