Frage

Kann jemand bitte mir sagen, über die trade-offs beteiligt, wenn es die Wahl zwischen Sturm und MapReduce in Hadoop-Cluster für die Datenverarbeitung?Natürlich, abgesehen von der naheliegenden, dass Hadoop (MapReduce-Verarbeitung über die in einem Hadoop-Cluster) ist eine batch-Verarbeitung system, und Storm ist ein real-time-processing-system.

Ich arbeitete ein wenig mit Hadoop Eco-System, aber ich haben nicht funktioniert, mit Sturm.Nachdem wir uns durch eine Menge von Vorträgen und Artikeln, die ich noch immer nicht in der Lage zu finden eine zufriedenstellende und umfassende Antwort.

Hinweis:Der Begriff Kompromiss ist hier nicht gemeint zu vergleichen, um ähnliche Dinge.Es ist bedeutete zu vertreten die Konsequenzen, die Ergebnisse in Echtzeit, die in Abwesenheit von einer batch-Verarbeitung system.

War es hilfreich?

Lösung

Karte verkleinern: Ein Fehlertolerant verteilter Rechenrahmen. Mit MapReduce können Sie über große Datenmengen arbeiten- mit viel Arbeit, um einen Fehler aufgrund von Hardware zu verhindern. MapReduce ist eine schlechte Wahl für die Computerergebnisse im laufenden Fliegen, da es langsam ist. (Ein typischer MapReduce -Job nimmt die Reihenfolge von Minuten oder Stunden an, nicht in Mikrosekunden)

Ein MapReduce -Job nimmt eine Datei (oder einen Datenspeicher) als Eingabe an und schreibt eine Ergebnisdatei. Wenn Sie diese Ergebnisse einer Anwendung zur Verfügung haben, liegt es in Ihrer Verantwortung, diese Daten an einem zugänglichen Ort zu setzen. Dies ist wahrscheinlich langsam und es wird eine Verzögerung zwischen den Werten und den Werten geben, die Ihr System in seinem aktuellen Zustand darstellen.

Eine wichtige Unterscheidung, die bei der Verwendung von MapReduce im Erstellen von Echtzeitsystemen in Betracht gezogen werden muss, ist das Training Ihres Modells und die Anwendung Ihres Modells. Wenn Sie der Meinung sind, dass sich Ihre Modellparameter nicht schnell ändern, können Sie sie mit MapReduce passen und dann einen Mechanismus für den Zugriff auf diese Vor-Fit-Parameter haben, wenn Sie Ihr Modell anwenden möchten.

Sturm: Ein Echtzeit-Streaming-Computersystem. Storm ist Online -Framework, was bedeutet, in diesem Sinne ein Dienst, der mit einer laufenden Anwendung interagiert. Im Gegensatz zu MapReduce empfängt es kleine Datenstücke (keine ganze Datei), wie sie in Ihrer Anwendung verarbeitet werden. Sie definieren eine Dag von Operationen, um die Daten auszuführen. Ein häufiger und einfacher Anwendungsfall für Storm ist die Verfolgung von Zählern und die Verwendung dieser Informationen, um ein Echtzeit-Dashboard zu füllen.

Storm hat (notwendigerweise) nichts damit zu tun, Ihre Daten zu behalten. Hier ist Streaming eine andere Möglichkeit, die Informationen zu behalten, die Ihnen wichtig sind und den Rest wegwerfen. In Wirklichkeit haben Sie wahrscheinlich eine Persistenzschicht in Ihrer Anwendung, die die Daten bereits aufgezeichnet hat, und dies ist eine gute und gerechtfertigte Trennung von Bedenken.

Wenn Sie mehr wissen wollen ...Wenn Sie mehr über Echtzeitsysteme erfahren möchten, die Parameter mit MR entsprechen, und die Modelle auf andere Weise anwenden Hier sind Folien für einen Vortrag, den ich über den Bau von Echtzeit-Empfehlungsmotoren auf HBase gehalten habe.

Ein ausgezeichnetes Papier, das das Zählen und Beharrlichkeit in Echtzeit auf interessante Weise heiratet, ist Google News Personalisierung: Skalierbares Online -Kollaborationsfilterung

Eine weitere interessante Ehe von MR und Storm ist Summingbird. Mit Summingbird können Sie Datenanalyseoperationen definieren, die über Storm oder MR angewendet werden können.

Andere Tipps

Das ist wie zu Fragen über die Kompromisse zwischen der Pfanne und der Schublade für Besteck.Sie sind nicht zwei Dinge, die Sie vergleichen, wirklich.Sie Sie nutzen können zusammen als Teil eines größeren Projekts.

Hadoop selbst ist nicht eine Sache, sondern eine Bezeichnung für eine Vereinigung von Dienstleistungen, wie HDFS, Hive, HBase, MapReduce, etc.Sturm ist etwas, das Sie verwenden, einige dieser Dienstleistungen, wie HDFS oder HBase.Es ist ein stream-processing-framework.Es gibt andere, die innerhalb des erweiterten Hadoop-ökosystem, wie Spark Streaming.

Wenn Sie sich für einen stream-processing-framework?wenn Sie brauchen, um zu reagieren, um neue Daten in near-real-time.Wenn Sie brauchen diese Art von tool, die Sie bereitstellen, diese Art von Werkzeug.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top