Apache Storm - Architettura cluster

Uno dei punti salienti di Apache Storm è che è un'applicazione a tolleranza d'errore, veloce e senza applicazione distribuita "Single Point of Failure" (SPOF). Possiamo installare Apache Storm in tutti i sistemi necessari per aumentare la capacità dell'applicazione.

Diamo un'occhiata a come è progettato il cluster Apache Storm e alla sua architettura interna. Il diagramma seguente mostra il design del cluster.

Apache Storm ha due tipi di nodi, Nimbus (nodo master) e Supervisor(nodo di lavoro). Nimbus è il componente centrale di Apache Storm. Il compito principale di Nimbus è eseguire la topologia Storm. Nimbus analizza la topologia e raccoglie l'attività da eseguire. Quindi, distribuirà l'attività a un supervisore disponibile.

Un supervisore avrà uno o più processi di lavoro. Il supervisore delegherà le attività ai processi di lavoro. Il processo di lavoro genererà tutti gli esecutori necessari ed eseguirà l'attività. Apache Storm utilizza un sistema di messaggistica distribuito interno per la comunicazione tra nimbus e supervisori.

Componenti Descrizione
Nimbus Nimbus è un nodo master del cluster Storm. Tutti gli altri nodi nel cluster vengono chiamati comeworker nodes. Il nodo principale è responsabile della distribuzione dei dati tra tutti i nodi di lavoro, dell'assegnazione di attività ai nodi di lavoro e del monitoraggio degli errori.
Supervisore I nodi che seguono le istruzioni fornite dal nimbus sono chiamati Supervisori. UNsupervisor ha più processi di lavoro e governa i processi di lavoro per completare le attività assegnate dal nimbus.
Processo di lavoro Un processo di lavoro eseguirà attività correlate a una topologia specifica. Un processo di lavoro non eseguirà un'attività da solo, ma creaexecutorse chiede loro di eseguire un compito particolare. Un processo di lavoro avrà più esecutori.
Esecutore Un esecutore non è altro che un singolo thread generato da un processo di lavoro. Un esecutore esegue una o più attività ma solo per uno specifico beccuccio o catenaccio.
Compito Un'attività esegue l'effettiva elaborazione dei dati. Quindi, o è un beccuccio o un bullone.
Framework ZooKeeper

Apache ZooKeeper è un servizio utilizzato da un cluster (gruppo di nodi) per coordinarsi tra loro e mantenere i dati condivisi con solide tecniche di sincronizzazione. Nimbus è senza stato, quindi dipende da ZooKeeper per monitorare lo stato del nodo di lavoro.

ZooKeeper aiuta il supervisore a interagire con il nimbus. È responsabile del mantenimento dello stato di nimbus e supervisore.

Storm è di natura apolide. Anche se la natura apolide presenta i suoi svantaggi, in realtà aiuta Storm a elaborare i dati in tempo reale nel modo migliore e più rapido possibile.

Storm non è però del tutto apolide. Memorizza il suo stato in Apache ZooKeeper. Poiché lo stato è disponibile in Apache ZooKeeper, un nimbus guasto può essere riavviato e fatto funzionare da dove era partito. Di solito, strumenti di monitoraggio del servizio comemonit monitorerà Nimbus e lo riavvierà in caso di guasto.

Apache Storm ha anche una topologia avanzata chiamata Trident Topologycon manutenzione dello stato e fornisce anche un'API di alto livello come Pig. Discuteremo tutte queste caratteristiche nei prossimi capitoli.