Big Data Road

          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集群由一個主節點和多個工作節點組成,分布式的架構大多如此,沒什么好說的。主節點運行了一個名為“Nimbus”的守護進程,用于分配代碼、布置任務及故障檢測。每個工作節點都運行了一個名為“Supervisor”的守護進程,用于監聽工作,開始并終止工作進程。NimbusSupervisor都能快速失敗,而且是無狀態的,這樣十分健壯,兩者的協調當然是由Zookeeper來完成的,ZooKeeper用于管理集群中的不同組件,ZeroMQ是內部消息系統,JZMQZeroMQMQJava Binding。

          posted on 2012-01-14 17:08 徐紅星 閱讀(395) 評論(0)  編輯  收藏 所屬分類: Storm


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          留言簿

          隨筆分類

          文章分類

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 肥城市| 贵南县| 秦皇岛市| 白沙| 通河县| 林周县| 石门县| 丰城市| 江川县| 虞城县| 岚皋县| 进贤县| 十堰市| 聂拉木县| 西贡区| 霍林郭勒市| 肥城市| 来凤县| 泸西县| 汝南县| 万荣县| 镇坪县| 宁南县| 雷波县| 西华县| 莫力| 衡东县| 井冈山市| 巴彦淖尔市| 从化市| 界首市| 黔西县| 拜泉县| 河南省| 巨鹿县| 东山县| 渝中区| 绥芬河市| 昭平县| 额敏县| 阳城县|