2016-07-13 4 views
1

Я использую среду MeteorJS для одного из моих проектов. Я создал базовый webApp один раз перед использованием MeteorJS, и он отлично работает, когда его просто клиент, сервер и MongoDB.MeteorJS (MongoDB) с Spark

В этом проекте я хочу, чтобы monogDB (который встроен в MeteorJS) заполнял данные из Apache Spark.

В принципе, Apache Spark обрабатывает некоторые данные и вводит их в mongoDB Возможно ли это? . Можете ли вы указать мне правильный учебник для этого Насколько сложным это реализовать? Заранее за вашу помощь

ответ

2

Да, это очень возможно и довольно легко. Тем не менее, это не будет через MeteorJS, это будет частью задания Apache Spark и будет настроено там.

Использование MongoDB Spark Connector с использованием данных DataFrame или RDD и сохранение его в MongoDB очень просто.

Сначала вы должны настроить, как и где данные записываются:

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

С РДД Вам необходимо конвертировать их в документы с помощью функции карты, например:

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

Если вы используете DataFrames это гораздо проще, так как вы можете просто предоставить DataFrameWriter и writeConfig:

MongoSpark.save(dataFrame.write, writeConfig) 

В разделе documentation есть дополнительная информация, или есть примеры в github repo.

+0

Спасибо, дайте ему попробовать. Почему вы сказали, что это не будет через MeteorJS? Я имею в виду, что MeteorJS также установит монго как часть своего пакета. Итак, все, что мне нужно сделать, это использовать коннектор Spark MongoDB для ввода данных из Spark. -> Mongo И затем, когда mongo обновляется с новыми данными, метеоритный сервер будет получать обновленные данные и подталкивать их соответствующим клиентам через веб-сокет, правильно? Пожалуйста, исправьте меня, если я ошибаюсь – Gol

+0

Да, это звучит правильно. Я упомянул, что это не будет через MeteorJS, поскольку приложение метеоритов является ортогональным для основной проблемы: как вы получаете данные от Spark в MongoDB. – Ross

+0

Я думаю, что здесь вам нужно настроить свой собственный экземпляр MongoDB: Spark сохранит его, и вам нужно использовать MONGO_URL, чтобы указать на Meteor. То есть, не используйте встроенный экземпляр Mongo ... В любом случае, если вы используете Spark, это предполагает, что у вас есть достаточное количество данных для обработки, и один экземпляр MongoDB, вероятно, не подходит. Если у вас нет таких данных, возможно, вы пытаетесь убить муху молотком, и вам не нужен Spark.) – MrE

Смежные вопросы