溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

storm記錄--2-- Storm是什么

發(fā)布時(shí)間:2020-06-26 14:47:12 來源:網(wǎng)絡(luò) 閱讀:415 作者:zlfwmm 欄目:大數(shù)據(jù)
  1. Storm是什么:

    如果只用一句話來描述storm的話,可能會(huì)是這樣:分布式實(shí)時(shí)計(jì)算系統(tǒng)。按照storm作者的說法,storm對(duì)于實(shí)時(shí)計(jì)算的意義類似于hadoop對(duì)于批處理的意義。我們都知道,根據(jù)google mapreduce來實(shí)現(xiàn)的hadoop為我們提供了map, reduce原語,使我們的批處理程序變得非常地簡單和優(yōu)美。對(duì)比Hadoop的批處理,Storm是個(gè)實(shí)時(shí)的、分布式以及具備高容錯(cuò)的計(jì)算系統(tǒng)。同Hadoop一樣Storm也可以處理大批量的數(shù)據(jù),然而Storm在保證高可靠性的前提下還可以讓處理進(jìn)行的更加實(shí)時(shí);也就是說,所有的信息都會(huì)被處理。Storm可以擴(kuò)展到不同的機(jī)器上進(jìn)行大批量的數(shù)據(jù)處理,他同樣還有其他一些特性。

  2. Storm的架構(gòu):

    Storm的集群由一個(gè)主節(jié)點(diǎn)和多個(gè)工作節(jié)點(diǎn)組成。主節(jié)點(diǎn)運(yùn)行了一個(gè)名為“nimbus”的守護(hù)進(jìn)程,用于分配代碼、布置任務(wù)及故障檢測。每個(gè)工作節(jié)點(diǎn)都運(yùn)行了一個(gè)名為“supervisor”的守護(hù)進(jìn)程,用于監(jiān)聽工作,開始并終止工作進(jìn)程。Nimbus和Supervisor都能快速失敗,而且是無狀態(tài)的,這樣一來他們都變得十分健壯,兩者的協(xié)調(diào)工作是由Zookeeper來完成的。Zookeeper用于管理集群中的不同組件。ZeroMQ是內(nèi)部消息系統(tǒng),JZMQ是ZeroMQ的Java Binding。有個(gè)名為storm-deploy的子項(xiàng)目,可以在AWS上一鍵部署Storm集群。

  3. Storm優(yōu)勢:

    a.簡單的編程模型。類似于MapReduce降低了并行批處理復(fù)雜性,Storm降低了進(jìn)行實(shí)時(shí)處理的復(fù)雜性。

    b.服務(wù)化,一個(gè)服務(wù)框架,支持熱部署,即時(shí)上線或下線App。

    c.可以使用各種編程語言。你可以在Storm之上使用各種編程語言。默認(rèn)支持Clojure、Java、Ruby和Python。要增加對(duì)其他語言的支持,只需要實(shí)現(xiàn)一個(gè)簡單的Storm通信協(xié)議即可。

    d.容錯(cuò)性。Storm會(huì)管理工作進(jìn)程和節(jié)點(diǎn)故障。

    e.水平擴(kuò)展。計(jì)算是在多個(gè)線程、進(jìn)程和服務(wù)器之間并行進(jìn)行的。

    f.可靠的消息處理。Storm保證每個(gè)消息至少能得到一次完整處理。任務(wù)失敗時(shí),它會(huì)從消息源重試消息。

    g.快速。系統(tǒng)的設(shè)計(jì)保證了消息能得到快速的處理,使用ZeroMQ作為其底層的消息隊(duì)列。

    h.本地模式。Storm有一個(gè)“本地模式”,可以在處理過程中完全模擬Storm集群。這讓你可以快速進(jìn)行開發(fā)和單元測試。

  4. Storm存在的問題:

    a、目前的開源版本中只是單節(jié)點(diǎn)nimbus,掛掉只能自動(dòng)重啟,可以考慮實(shí)現(xiàn)一個(gè)雙nimbus的布局。

    b、Clojure是一個(gè)在JVM平臺(tái)運(yùn)行的動(dòng)態(tài)函數(shù)式編程語言,優(yōu)勢在于流程計(jì)算,Storm的部分核心內(nèi)容由Clojure編寫,雖然性能上提高不少但同時(shí)也提升了維護(hù)成本。

  5. storm的適用場景:

    流數(shù)據(jù)處理。Storm可以用來處理源源不斷流進(jìn)來的消息,處理之后將結(jié)果寫入到某個(gè)存儲(chǔ)中去。

    分布式rpc。由于storm的處理組件是分布式的,而且處理延遲極低,所以可以作為一個(gè)通用的分布式rpc框架來使用。當(dāng)然,其實(shí)我們的搜索引擎本身也是一個(gè)分布式rpc系統(tǒng)。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI