Storm使用入門之引言

來源:互聯網
上載者:User

標籤:storm   storm特性   

從本篇開始,我們依次介紹Storm官方文檔中的第一部分和第二部分,首先咱們開始使用入門的引言部分。

過去十年,資料處理領域發生了很大的變化,可以認為是發生了一次革命。MapReduce、Hadoop以及其他相關技術使得在儲存和處理我們以前無法想象的大規模資料方面成為可能。然後不幸的是,這些資料處理技術並不是即時系統,而且他們命中註定也不是。無法將Hadoop轉換成即時系統,因為即時資料處理和批處理在要求上有本質的不同。

然後,大規模地即時資料處理需求在商業應用上已經越來越迫切。資料處理生態中缺少”即時Hadoop“(即類似於Hadoop在批處理領域的通用解決方案)已經成為一個最大的遺憾。Storm彌補了這個遺憾。

在Storm出現之前,我們通常需要手工構建一個由隊列和資料處理節點(我們將其稱之為”worker“)構成的網路來即時處理資料。Worker從隊列中接收訊息並加以處理、或者更新資料庫、亦或向其他隊列發送新的訊息以供下遊進一步處理。然而這種方式存在一系列的局限性:

1、Tedious:咱們花費了大量的開發時間來配置如何發送訊息、部署處理節點和用於在各節點之間其媒介作用的隊列。恰恰需要我們花心思重點關注的即時處理邏輯卻只佔據了很少的比例。

2、Brittle:我們有責任確保每個處理節點和隊列可靠持續運行,然後在這方面我們的容錯處理很少,系統非常脆弱。

3、Painful to scale:當單個的處理節點或者隊列輸送量過高時,我們需要對其進行重新分配以使訊息得以快速處理。我們需要重新設定其他的處理節點以使其知道新的訊息發送地址,這就引入了遷移與建立的工作,而在這一過程中非常容易失敗。因此,在面臨大規模的業務情境下,傳統方式會非常痛苦。

雖然,基於隊列和處理節點的處理模式在面臨大量訊息的使用情境時非常容易發生故障,但是,基於訊息的處理模式卻是Realtime Compute系統中一個非常基礎的處理模式。現在的問題是:我們如何設計系統來達到如下幾個目標:

1、不丟資料

2、大規模訊息的可擴充

3、便於使用與維護

Storm搞定了上述目標,那下面我來看看Storm如何達成這些目標,從而瞭解其為什麼如此重要。

Storm定義了一系列的原語用於處理Realtime Compute。MapReduce對原語的抽象使得編寫並行的批次程式非常容易,類似的,Storm的原語也保證了編寫並行的Realtime Compute程式非常簡單。

對於Storm,有如下幾個關鍵的特點:

1、極其廣泛的使用情境:Storm可以用於訊息處理以及在處理過程中更新資料庫(即通常所說的串流)、基於資料流執行持續查詢並將結果以流的方式發送給用戶端(即持續計算情境)、並行化查詢(即DRPC)等。Storm非常小的原語集滿足了大量使用情境的需求。

2、延展性:Storm的伸縮性體現在通過水平擴充得以每秒處理大量訊息。對於計算作業(即topology)而言,我們通過添加機器以及提高topology的並行度就可以完成水平擴充。例如:Storm叢集有一個應用,目前運行在10個節點構成的叢集上,每秒能夠處理百萬的訊息,以及數百次的資料庫訪問。鑒於Storm自身在叢集協調方面採用了Zookeeper,因此,其可以非常容易的擴大叢集規模。

3、訊息可靠性:對於一個即時系統而言,其需要保證資料被成功處理。一個存在丟數問題的系統在使用情境上會存在很大的局限。Storm可以保證每條訊息都被處理,此特性也是Storm與其他即時系統(如S4)一個顯著且直接的區別。

4、健壯性:與那些難以管理的系統(如Hadoop)不同,Storm運行與維護非常容易,這也是Storm項目的一個重要目標:改善Storm叢集管理者的體驗,使Storm叢集易於管理。

5、容錯:使用者計算任務在運行過程中發生錯誤,Storm會對任務進行重新分配。Storm保證一個計算任務持久運行直至使用者主動將其kill

6、程式設計語言無關性:對於一個平台而言,健壯性和伸縮性是一個基本要求。Storm支援以任意語言來編寫計算任務(即Topology)以及處理組件(即Component),從而使得Storm使用儘可能地福士化。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.