Apache Storm工作流程

2018-01-15 16:52 更新

一個(gè)工作的Storm集群應(yīng)該有一個(gè)Nimbus和一個(gè)或多個(gè)supervisors。另一個(gè)重要的節(jié)點(diǎn)是Apache ZooKeeper,它將用于nimbus和supervisors之間的協(xié)調(diào)。

現(xiàn)在讓我們仔細(xì)看看Apache Storm的工作流程 ?

  • 最初,nimbus將等待“Storm拓?fù)洹碧峤唤o它。

  • 一旦提交拓?fù)?,它將處理拓?fù)洳⑹占獔?zhí)行的所有任務(wù)和任務(wù)將被執(zhí)行的順序。

  • 然后,nimbus將任務(wù)均勻分配給所有可用的supervisors。

  • 在特定的時(shí)間間隔,所有supervisor將向nimbus發(fā)送心跳以通知它們?nèi)匀贿\(yùn)行著。

  • 當(dāng)supervisor終止并且不向心跳發(fā)送心跳時(shí),則nimbus將任務(wù)分配給另一個(gè)supervisor

  • 當(dāng)nimbus本身終止時(shí),supervisor將在沒(méi)有任何問(wèn)題的情況下對(duì)已經(jīng)分配的任務(wù)進(jìn)行工作。

  • 一旦所有的任務(wù)都完成后,supervisor將等待新的任務(wù)進(jìn)去。

  • 同時(shí),終止nimbus將由服務(wù)監(jiān)控工具自動(dòng)重新啟動(dòng)。

  • 重新啟動(dòng)的網(wǎng)絡(luò)將從停止的地方繼續(xù)。同樣,終止supervisor也可以自動(dòng)重新啟動(dòng)。由于網(wǎng)絡(luò)管理程序和supervisor都可以自動(dòng)重新啟動(dòng),并且兩者將像以前一樣繼續(xù),因此Storm保證至少處理所有任務(wù)一次。

  • 一旦處理了所有拓?fù)洌瑒t網(wǎng)絡(luò)管理器等待新的拓?fù)涞竭_(dá),并且類(lèi)似地,管理器等待新的任務(wù)。

默認(rèn)情況下,Storm集群中有兩種模式:

  • 本地模式 -此模式用于開(kāi)發(fā),測(cè)試和調(diào)試,因?yàn)樗遣榭此型負(fù)浣M件協(xié)同工作的最簡(jiǎn)單方法。在這種模式下,我們可以調(diào)整參數(shù),使我們能夠看到我們的拓?fù)淙绾卧诓煌腟torm配置環(huán)境中運(yùn)行。在本地模式下,storm拓?fù)湓诒镜貦C(jī)器上在單個(gè)JVM中運(yùn)行。

  • 生產(chǎn)模式 -在這種模式下,我們將拓?fù)涮峤坏焦ぷ?span>Storm集群,該集群由許多進(jìn)程組成,通常運(yùn)行在不同的機(jī)器上。如在storm的工作流中所討論的,工作集群將無(wú)限地運(yùn)行,直到它被關(guān)閉。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)