Apache Storm - Introduzione
Cos'è Apache Storm?
Apache Storm è un sistema di elaborazione di big data distribuito in tempo reale. Storm è progettato per elaborare grandi quantità di dati in un metodo scalabile orizzontale e con tolleranza agli errori. È un framework di dati in streaming che ha la capacità dei più alti tassi di ingestione. Sebbene Storm sia senza stato, gestisce l'ambiente distribuito e lo stato del cluster tramite Apache ZooKeeper. È semplice e puoi eseguire tutti i tipi di manipolazioni sui dati in tempo reale in parallelo.
Apache Storm continua a essere leader nell'analisi dei dati in tempo reale. Storm è facile da configurare, utilizzare e garantisce che ogni messaggio verrà elaborato attraverso la topologia almeno una volta.
Apache Storm contro Hadoop
Fondamentalmente i framework Hadoop e Storm vengono utilizzati per analizzare i big data. Entrambi si completano a vicenda e differiscono per alcuni aspetti. Apache Storm esegue tutte le operazioni tranne la persistenza, mentre Hadoop è bravo in tutto ma è in ritardo nel calcolo in tempo reale. La tabella seguente confronta gli attributi di Storm e Hadoop.
Tempesta | Hadoop |
---|---|
Elaborazione del flusso in tempo reale | Elaborazione in lotti |
Apolidi | Stateful |
Architettura Master / Slave con coordinamento basato su ZooKeeper. Il nodo master è chiamato comenimbus e gli schiavi lo sono supervisors. | Architettura master-slave con / senza coordinamento basato su ZooKeeper. Il nodo principale èjob tracker e il nodo slave è task tracker. |
Un processo di streaming Storm può accedere a decine di migliaia di messaggi al secondo sul cluster. | Hadoop Distributed File System (HDFS) utilizza il framework MapReduce per elaborare enormi quantità di dati che richiedono minuti o ore. |
La topologia Storm viene eseguita fino all'arresto da parte dell'utente o fino a un errore irreversibile imprevisto. | I lavori MapReduce vengono eseguiti in ordine sequenziale e alla fine completati. |
Both are distributed and fault-tolerant | |
Se nimbus / supervisore muore, il riavvio lo fa continuare da dove si era fermato, quindi nulla viene influenzato. | Se JobTracker muore, tutti i lavori in esecuzione vengono persi. |
Casi d'uso di Apache Storm
Apache Storm è molto famoso per l'elaborazione in tempo reale di grandi flussi di dati. Per questo motivo, la maggior parte delle aziende utilizza Storm come parte integrante del proprio sistema. Alcuni esempi notevoli sono i seguenti:
Twitter- Twitter utilizza Apache Storm per la sua gamma di "prodotti di Publisher Analytics". I "Prodotti di analisi dei publisher" elaborano ogni singolo tweet e clic nella piattaforma Twitter. Apache Storm è profondamente integrato con l'infrastruttura di Twitter.
NaviSite- NaviSite utilizza Storm per il sistema di monitoraggio / verifica del registro eventi. Tutti i registri generati nel sistema passeranno attraverso la tempesta. Storm verificherà il messaggio rispetto al set configurato di espressioni regolari e se c'è una corrispondenza, quel particolare messaggio verrà salvato nel database.
Wego- Wego è un metasearch di viaggio con sede a Singapore. I dati relativi ai viaggi provengono da molte fonti in tutto il mondo con tempi diversi. Storm aiuta Wego a cercare dati in tempo reale, risolve i problemi di concorrenza e trova la migliore corrispondenza per l'utente finale.
Vantaggi di Apache Storm
Ecco un elenco dei vantaggi offerti da Apache Storm:
Storm è open source, robusto e facile da usare. Potrebbe essere utilizzato sia nelle piccole aziende che nelle grandi società.
Storm è a tolleranza di errore, flessibile, affidabile e supporta qualsiasi linguaggio di programmazione.
Consente l'elaborazione del flusso in tempo reale.
Storm è incredibilmente veloce perché ha un enorme potere di elaborazione dei dati.
Storm può mantenere le prestazioni anche sotto carico crescente aggiungendo risorse in modo lineare. È altamente scalabile.
Storm esegue l'aggiornamento dei dati e la risposta di consegna end-to-end in pochi secondi o minuti a seconda del problema. Ha una latenza molto bassa.
Storm ha intelligenza operativa.
Storm fornisce un'elaborazione dei dati garantita anche se uno dei nodi connessi nel cluster muore o i messaggi vengono persi.