Domanda

Ho letto Tempesta e giocando con gli esempi di Storm Starter.

Penso di aver ottenuto il concetto e si applica molto bene a molti casi. Ho un progetto di test che voglio fare per saperne di più, ma mi chiedo se Storm sia davvero adatto per questo.

Il problema concettuale che sto avendo è con la definizione di "streaming". Sembra che le tempeste funzionano come un incantesimo che si iscrive a un flusso e lo elabora in tempo reale, ma non ho davvero un flusso, ma piuttosto una raccolta finita di dati che voglio elaborare.

So che c'è Hadoop per questo, ma sono interessato alle capacità in tempo reale di Storm e ad altri punti interessanti che Nathan, che ha scritto Storm, menziona nei suoi colloqui.

Quindi mi chiedevo, le persone scrivono i beccuccio quel sondaggio API non streaming e poi differiscono i risultati forse per emulare un flusso?

Il secondo punto importante è che sembra che le topologie della tempesta non finiscano mai l'elaborazione fino a quando non si interrompe, il che non si applica al mio caso. Vorrei che la mia topologia sapesse che una volta terminato il mio elenco finito di dati di origine, l'elaborazione può terminare e un risultato finale può essere emesso.

Quindi, tutto ha senso in termini di tempesta o sto guardando la cosa sbagliata? In tal caso, quali alternative proponi per questo tipo di esigenze di calcolo parallele in tempo reale?

Grazie!

È stato utile?

Soluzione

Ho trovato la risposta in Storm Google Group. Sembra che le topologie DRCP emetteranno una tupla con parametri che viene ricevuta da DRCP SPOUT come flusso e quindi indicheranno quando l'elaborazione è terminata (utilizzando ID univoco chiamato ID richiesta).

In quella stessa discussione afferma che Hadoop è probabilmente più adatto a questi casi, a meno che i dati non siano abbastanza grandi e non possano essere elaborati tutto il tempo.

Altri suggerimenti

È certamente possibile utilizzare Storm per elaborare una raccolta limitata di dati e fermare una volta elaborati tutti gli elementi. Le topologie DRPC sono un modo per farlo, ma il lancio della tua soluzione non è difficile.

L'idea è di tenere traccia di quali elementi nel set di dati finiti sono stati elaborati o meno, il che è facilmente eseguito nel beccuccio utilizzando i metodi ACK () e Fail ().

Se stai cercando una soluzione di elaborazione batch rapida, interattivamente utilizzabile e per gli sviluppatori, potresti voler guardare Apache Spark invece di tempesta.

Trident/DRPC è più utile quando si desidera eseguire query sul tuo calcolo continuo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top