2016-07-13 6 views
1

Ich benutze MeteorJS Framework für eines meiner Projekte. Ich habe einmal eine grundlegende WebApp erstellt, bevor ich MeteorJS benutze und es funktioniert perfekt, wenn es nur Client, Server und MongoDB ist.MeteorJS (MongoDB) mit Spark

In diesem Projekt möchte ich die MonogDB (die mit MeteorJS gebaut wird) Daten von Apache Spark zu füllen.

Grundsätzlich verarbeitet Apache Spark einige Daten und injiziert sie in mongoDB Ist dies machbar? Bitte können Sie mich auf das richtige Tutorial für diese Wie komplex ist das zu implementieren? Vielen Dank im Voraus für Ihre Hilfe

Antwort

2

Ja, das ist sehr möglich und ziemlich einfach. Das heißt, es wird nicht via MeteorJS sein, es wäre Teil des Apache Spark-Jobs und würde dort konfiguriert werden.

Verwenden Sie die MongoDB Spark Connector Daten aus einem DataFrame oder einer RDD und speichern sie in MongoDB ist einfach.

Zuerst würde konfigurieren Sie, wie und wo die Daten geschrieben werden:

// Configure where to save the data 
val writeConfig = WriteConfig(Map("uri" -> "mongodb://localhost/databaseName.collectionName")) 

Mit RDD ist, sollten Sie sie in Dokumente über eine Kartenfunktion zB umwandeln:

val documentRDD = rdd.map(data => Document) // map the RDD into documents 
MongoSpark.save(documentRDD, writeConfig) 

Wenn Sie Datenrahmen verwenden es viel einfacher, da Sie einfach einen DataFrameWriter und writeConfig bereitstellen können:

MongoSpark.save(dataFrame.write, writeConfig) 

Es gibt weitere Informationen in der documentation oder es gibt Beispiele in der github repo.

+0

Dank wird es versuchen. Warum hast du gesagt, dass es nicht über MeteorJS sein wird? Ich meine MeteorJS wird auch Mongo als Teil seines Pakets installieren. Also alles, was ich tun muss, ist die MongoDB Spark Connector zu injizieren Daten aus Spark -> Mongo Und dann, wenn Mongo mit neuen Daten aktualisiert wird, holt der Meteorserver die aktualisierten Daten und schieben Sie es zu seinen jeweiligen Clients über Web-Buchse, oder? Bitte korrigieren Sie mich, wenn ich falsch liege – Gol

+0

Ja, das klingt richtig. Ich erwähnte, dass es nicht via MeteorJS sein wird, da die Meteor-App orthogonal zum Kernproblem ist: Wie erhalten Sie Daten von Spark in MongoDB? – Ross

+0

Ich denke, der Punkt hier ist, dass Sie Ihre eigene Instanz von MongoDB einrichten müssen: Spark wird darauf speichern, und Sie müssen MONGO_URL verwenden, um Meteor darauf zu zeigen. Das heißt, verwenden Sie nicht die eingebaute Mongo-Instanz ... Wie auch immer, wenn Sie Spark verwenden, wird davon ausgegangen, dass Sie eine recht große Menge an Daten verarbeiten müssen. Eine einzelne MongoDB-Instanz wird wahrscheinlich nicht geeignet sein. Wenn du nicht so viele Daten hast, versuchst du vielleicht, eine Fliege mit einem Hammer zu töten, und du brauchst keinen Funken. – MrE