亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

跟我一起云計算(1)——storm

系統 1612 0

跟我一起云計算(1)——storm

概述

?

最近要做一個實時分析的項目,所以需要深入一下storm。

?

為什么storm

?

綜合下來,有以下幾點:

?

1. 生逢其時

?

MapReduce 計算模型打開了分布式計算的另一扇大門,極大的降低了實現分布式計算的門檻。有了MapReduce架構的支持,開發者只需要把注意力集中在如何使用 MapReduce的語義來解決具體的業務邏輯,而不用頭疼諸如容錯,可擴展性,可靠性等一系列硬骨頭。一時間,人們拿著MapReduce這把榔頭去敲 各種各樣的釘子,自然而然的也試圖用MapReduce計算模型來解決流處理想要解決的問題。各種失敗的嘗試之后,人們意識到,改良MapReduce并 不能使之適應于流處理的場景,必須發展出全新的架構來完成這一任務(MapReduce不適合做流處理的原因Yahoo!在其S4的介紹論文里面有比較詳 細的闡述,而UCBerkeley的SparkStreaming項目現在正在嘗試挑戰這一結論,感興趣的同志請自行查看)。另一方面,人們對傳統的 CEP解決方案心存疑慮,認為其非分布式的架構可擴展性不夠,無法scaleout來滿足海量的數據處理要求。這時候,Yahoo!的S4以及 Twitter的Storm恰到好處的撓到了人們的癢處。

?

2. 可擴展性

?

更加明確的說,是scaleout的能力。所謂Scale out ( http://en.wikipedia.org/wiki/Scalability#Scale_horizontally_.28scale_out.29 ), 簡單來說就是當一個集群的處理能力不夠用的時候,只要往里面再追加一些新的節點,計算有能力遷移到這些新的節點來滿足需要??赡艿那闆r下,選擇 Scaleout 而非Scale up,這個觀念已經深入人心。一般來說,實現Scaleout的關鍵是Shared nothing architecture,即計算所需要的各種狀態都是自滿足的,不存在對特定節點強依賴,這樣,計算就可以很容易的在節點間遷移,整個系統計算能力不夠 用的時候,加入新的節點就可以了。Storm的計算模型本身是Scaleout友好的,Topology 對應的Spout和Bolt并不需要和特定節點綁定,可以很容易的分布在多個節點上。此外,Storm還提供了一個非常強大的命令 (rebalance),可以動態調整特定Topology中各組成元素(Spout/Bolt)的數量以及其和實際計算節點的對應關系。

?

3. 系統可靠性

?

Storm 這個分布式流計算框架是建立在Zookeeper的基礎上的,大量系統運行狀態的元信息都序列化在Zookeeper中。這樣,當某一個節點出錯時,對應 的關鍵狀態信息并不會丟失,換言之Zookeeper的高可用保證了Storm的高可用。文檔(https://github.com /nathanmarz/storm/wiki/Fault-tolerance)討論了Storm各個子系統的錯誤冗余行為,可以進一步參考。

?

4. 計算的可靠性

?

分 布式計算涉及到多節點/進程之間的通信和依賴,正確的維護所有參與者的狀態和依賴關系,是一件非常有挑戰性的任務。Storm實現了一整套機制,確保消息 會被完整處理(https://github.com/nathanmarz/storm/wiki/Guaranteeing-message- processing)。 此外,通過TransactionalTopology(https://github.com/nathanmarz/storm/wiki /Transactional-topologies) ,Storm可以保證每個tuple“被且僅被處理一次”。

?

5. Opensource

?

這個就不用多說了,開源使得Storm社區及其活躍,到本文寫作的時候,Storm已經發展到了0.81,Storm的使用者已經有了一個長長的名單( https://github.com/nathanmarz/storm/wiki/Powered-By ),其中不乏比如淘寶,支付寶,Twitter,Groupon這種互聯網巨頭。

?

6. Clojure基礎上的實現

?

Storm的核心代碼是Clojure和Java。Clojure是一門JVM基礎上的函數式編程語言( http://clojure.org/ ), 是支持STM(SoftwareTransactional Memory)的少數幾門語言之一。Clojure推出以來,得到了廣泛關注,人們普遍認為,其函數式編程所具有的各種特性能在分布式環境中大有用武之 地, 而Storm則給出了一個很好的實例。從另一個角度來說,Storm也能大大的推動Clojure的普及。

?

總言之,時勢造英雄,Storm在正確的時間出現在了正確的地點,而且剛剛好做了正確的事情,想不紅都沒有道理。

?

高層架構

?

從高來看storm的架構:

?

?

指南

?

在這個指南中,你將學到如何創建strom架構和部署它的集群。Java將是示例中用到的主要語言,在其它的一些示例中將使用python來描述strom支持多語言的能力。

?

先安裝strom,可以參考:

?

http://my.oschina.net/leejun2005/blog/147607?from=20130804

?

上面的文章里面已經描述的很清楚了。

?

可以先從示例storm-starter開始學習strom。

?

地址是:

?

https://github.com/nathanmarz/storm-starter

?

先決條件

?

你需要安裝git和java然后設置這個用戶的環境變量。另外還有兩個示例需要安裝python和ruby。

?

然后創建新目錄下載storm-starter

?

      $ git clone git:
      
        //
      
      
        github.com/nathanmarz/storm-starter.git && cd storm-starter
      
    

?

storm-starter概述

?

storm-starter包含很多使用storm的示例。如果你第一次使用storm,首先了解一下它的架構:

?

  1. ExclamationTopology : Java編寫的基本示例
  2. WordCountTopology : 和python一起使用的例子
  3. ReachTopology : 復雜的DRPC的例子

?

當你熟悉了上面的示例之后,可以在in? src/jvm/storm/starter/ ?下例如 RollingTopWords ?去熟悉一些更高級的實現。

?

如果你要學習更多的示例,可以到 Storm project page .

?

使用storm-starter

?

使用storm-starter有多種方式,可以使用Leiningen或者maven。這里使用maven。

?

首先編譯:

?

      mvn -f m2-pom.xml compile exec:java -Dexec.classpathScope=compile -Dexec.mainClass=storm.starter.WordCountTopology
    

?

然后打包:

?

      mvn -f m2-pom.xml package
    

?

運行測試:

?

      mvn -f m2-pom.xml test
    

?

然后就是把打包的jar包發送到storm里運行了。

?

正在討論的架構

?

下面就是我們正在處理的項目中使用的架構,還在討論階段,也希望對這個有見解的童鞋發表一下自己的觀點:

?

實時查詢架構

?

古有“即生瑜,何生亮”,不過我覺得如果沒有瑜和亮,可能誰都無法打敗曹操,和現在的架構一下,如果不是把流框架storm和任務處理框架hadoop結合起來,也許處理實時的大數據真的很難!

?

如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的 推薦 】按鈕。
如果,您希望更容易地發現我的新博客,不妨關注一下 skyme。
因為,我的寫作熱情也離不開您的肯定支持。
未注明轉載的文章,版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

?

?

?

分類:?

?
?

跟我一起云計算(1)——storm


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品久久久久一区二区 | 亚洲国产成人超福利久久精品 | 9191久久久久视频 | 亚洲成人免费网站 | 成人黄色小视频 | 一本大道高清香蕉中文大在线 | 免费一级毛片在线播放视频 | 国产成人精品久久亚洲高清不卡 | 国产精品视频免费视频 | 四房快播 | 成年性视频bbixx | 天天操天天操天天操香蕉 | 大片刺激免费播放视频 | 男人你懂的网站 | 韩国高清乱理伦片中文 | 亚洲 欧美 日韩 在线 香蕉 | 伊人狠狠丁香婷婷综合色 | 国产一级视频 | 免费人成激情视频在线看 | 激情时刻 | 日韩欧美亚洲国产一区二区三区 | 一级片免费网址 | 亚洲精品色综合久久久 | 欧美成人手机在线视频 | 四虎永久免费地址在线网站 | 成人公开视频 | 在线观看国产精品入口 | 国产精品成人一区二区1 | 波多野结衣视频一区 | 国产精品u任我爽爆在线播放 | 亚洲综合精品一二三区在线 | 五月天狠狠干 | 欧美激情一区二区三区中文字幕 | 苦瓜se影院在线视频网站 | 日本免费的一级绿象 | 五月综合色 | 99视频精品全部免费观看 | 久久久高清国产999尤物 | 亚洲国产精品成人久久 | 精品色视频 | 爱唯侦察1024入口地址 |