Apache Storm集群架構(gòu)

2018-01-04 17:19 更新

Apache Storm的主要亮點(diǎn)是,它是一個(gè)容錯(cuò),快速,沒(méi)有“單點(diǎn)故障”(SPOF)分布式應(yīng)用程序。我們可以根據(jù)需要在多個(gè)系統(tǒng)中安裝Apache Storm,以增加應(yīng)用程序的容量。

讓我們看看Apache Storm集群如何設(shè)計(jì)和其內(nèi)部架構(gòu)。下圖描述了集群設(shè)計(jì)。

動(dòng)物園管理員框架

Apache Storm有兩種類型的節(jié)點(diǎn),Nimbus(主節(jié)點(diǎn))和Supervisor(工作節(jié)點(diǎn))。Nimbus是Apache Storm的核心組件。Nimbus的主要工作是運(yùn)行Storm拓?fù)洹?span>Nimbus分析拓?fù)洳⑹占獔?zhí)行的任務(wù)。然后,它將任務(wù)分配給可用的supervisor。

Supervisor將有一個(gè)或多個(gè)工作進(jìn)程。Supervisor將任務(wù)委派給工作進(jìn)程。工作進(jìn)程將根據(jù)需要產(chǎn)生盡可能多的執(zhí)行器并運(yùn)行任務(wù)。Apache Storm使用內(nèi)部分布式消息傳遞系統(tǒng)來(lái)進(jìn)行Nimbus和管理程序之間的通信。

組件描述
Nimbus(主節(jié)點(diǎn))Nimbus是Storm集群的主節(jié)點(diǎn)。集群中的所有其他節(jié)點(diǎn)稱為工作節(jié)點(diǎn)。主節(jié)點(diǎn)負(fù)責(zé)在所有工作節(jié)點(diǎn)之間分發(fā)數(shù)據(jù),向工作節(jié)點(diǎn)分配任務(wù)和監(jiān)視故障。
Supervisor(工作節(jié)點(diǎn))遵循指令的節(jié)點(diǎn)被稱為Supervisors。Supervisor有多個(gè)工作進(jìn)程,它管理工作進(jìn)程以完成由nimbus分配的任務(wù)。
Worker process(工作進(jìn)程)工作進(jìn)程將執(zhí)行與特定拓?fù)湎嚓P(guān)的任務(wù)。工作進(jìn)程不會(huì)自己運(yùn)行任務(wù),而是創(chuàng)建執(zhí)行器并要求他們執(zhí)行特定的任務(wù)。工作進(jìn)程將有多個(gè)執(zhí)行器。
Executor(執(zhí)行者)執(zhí)行器只是工作進(jìn)程產(chǎn)生的單個(gè)線程。執(zhí)行器運(yùn)行一個(gè)或多個(gè)任務(wù),但僅用于特定的spoutbolt。
Task(任務(wù))任務(wù)執(zhí)行實(shí)際的數(shù)據(jù)處理。所以,它是一個(gè)spoutbolt。
ZooKeeper frameworkZooKeeper框架

Apache的ZooKeeper的是使用群集(節(jié)點(diǎn)組)自己和維護(hù)具有強(qiáng)大的同步技術(shù)共享數(shù)據(jù)之間進(jìn)行協(xié)調(diào)的服務(wù)。Nimbus是無(wú)狀態(tài)的,所以它依賴于ZooKeeper來(lái)監(jiān)視工作節(jié)點(diǎn)的狀態(tài)。

ZooKeeper的幫助supervisornimbus交互。它負(fù)責(zé)維持nimbus,supervisor的狀態(tài)。

Storm是無(wú)狀態(tài)的。即使無(wú)狀態(tài)性質(zhì)有它自己的缺點(diǎn),它實(shí)際上幫助Storm以最好的可能和最快的方式處理實(shí)時(shí)數(shù)據(jù)。

Storm雖然不是完全無(wú)狀態(tài)的。它將其狀態(tài)存儲(chǔ)在Apache ZooKeeper中。由于狀態(tài)在Apache ZooKeeper中可用,故障的網(wǎng)絡(luò)可以重新啟動(dòng),并從它離開的地方工作。通常,像monit這樣的服務(wù)監(jiān)視工具將監(jiān)視Nimbus,并在出現(xiàn)任何故障時(shí)重新啟動(dòng)它。

Apache Storm還有一個(gè)稱為Trident拓?fù)涞母呒?jí)拓?fù)洌哂袪顟B(tài)維護(hù),并且還提供了一個(gè)高級(jí)API,如Pig。我們將在接下來(lái)的章節(jié)中討論所有這些功能。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)