2013-06-17 15 views
5

Sto progettando un prototipo di monitor in tempo reale per l'elaborazione di quantità piuttosto elevate (> 30G/giorno) di dati numerici in streaming. Mi piacerebbe scriverlo in Clojure, poiché il linguaggio sembra ben adattato al tipo di sistema "Observer + State Machine" che probabilmente finirà per essere.Lamina vs Storm

I due candidati principali che ho trovato per un framework sono Lamina e Storm. C'è anche Riemann e Pulse, ma il primo sembra più una soluzione completa piuttosto che un framework, e preferisco non impegnarmi ancora in un progetto definitivo; Il repository di Pulse sembra un po 'non mantenuto?

Quello che mi piacerebbe sapere è; per quali tipi di dati e flusso di lavoro sono ottimizzati questi due progetti? Storm sembra essere più maturo, ma Lamina sembra più compositiva e "Clojureic" (il mio background è Python, quindi tendo a valutare questo valore).

Quello che ho trovato dalla lettura on-line:

  • tempesta sembra essere Big Data (flusso) concentrata, il nucleo è Java dritto con un modem DSL Clojure. Sembra che siano pre = compilati gestori per un certo numero di fonti di dati esistenti.

  • Lamina è più un componente leggero e riutilizzabile che fa la cosa Clojure della codifica per le astrazioni, il che significa che può essere reused as a base for other eventing systems. Le fonti di dati devono essere gestite nel codice.

  • Entrambe dispongono di un insieme utile di funzioni di aggregazione/divisione/computazione della libreria. L'integrazione graphviz di Lamina è un bel tocco.

risposta

4

Tempesta incorpora la gestione e la manipolazione dei nodi falliti cluster nel flusso perché è stato progettato per essere una sorta di "come Hadoop, ma per lo streaming", che da quanto ho capito le vostre esigenze sembra essere più vicino al tuo uso Astuccio.

+0

Dà un sacco di cose in bundle, quindi ho intenzione di fare un tentativo e vedere se è eccessivo. Lamina, dal mio armeggiare con esso, sembra un po 'troppo di basso livello, anche se molto snella ed elegante. Grazie! – CLF

1

Lamina sembra una scelta accettabile, ma sembra che manchi totalmente la caratteristica killer di Storm: la gestione del cluster computing. Un cluster Storm si prenderà cura della maggior parte del lavoro sporco di distribuzione del calcolo su un cluster di nodi, lasciandovi semplicemente concentrare l'attenzione sulla logica di business fintanto che lo si inserisce nel framework Storm. Lamina, da quello che posso vedere, fornisce un buon modo per organizzare il tuo calcolo, ma poi dovrai prenderti cura di tutti i dettagli del ridimensionamento se questo è qualcosa che ti serve.

8

Storm probabilmente non è una cattiva scelta, ma "oltre 30 GB al giorno" di dati numerici non sono big data, sono piccoli dati. Qualsiasi computer semi-moderno può gestire facilmente molti più dati su un nodo con la lamina. Potresti comunque voler andare con Storm, così che una volta entrato in un reame in cui hai bisogno di più server puoi scalare facilmente, ma immagino ci sia un certo frizione iniziale nell'ottenere Storm (e qualche attrito nel mantenere il cluster) , che andrà sprecato se non dovessi mai scalare.