apache spark 独立连接到 mongodb 和 scala 使用 casbah

apache spark stand alone connecting to mongodb with scala using casbah

我想对 5 个文件执行 Apache Spark map-reduce,并将它们输出到 mongodb。我宁愿不使用 HDFS,因为 NameNode 是单点故障 (http://wiki.apache.org/hadoop/NameNode)。

一个。是否可以读取 RDD 中的多个文件,对所有文件中的一个键执行映射缩减,并使用 casbah 工具包将结果输出到 mongodb

乙。是否可以使用客户端从 mongodb 读取到 RDD,使用 casbah 工具包

执行 map reduce 并正确输出回 mongodb

C。是否可以读取 RDD 中的多个文件,将它们映射到 mongodb 中存在的键,将它们缩减为单个文档并将它们插入回 mongodb

我知道使用 mongo-hadoop 连接器可以实现所有这些。我只是不喜欢使用 HDFS 的想法,因为它是单点故障并且 backUpNameNodes 尚未实现。

网上看了一些东西,不是很清楚

MongoDBObject not being added to inside of an rrd foreach loop casbah scala apache spark

不确定那里发生了什么。 JSON 似乎无效...

资源:

https://github.com/mongodb/casbah

http://docs.mongodb.org/ecosystem/drivers/scala/

是的。我没有用过MongoDB,但根据我用Spark做过的其他事情,这些应该都是可以的。

但是,请记住,Spark 应用程序通常不是容错的。应用程序(又名 "driver")本身就是单点故障。有一个关于该主题的相关问题 (),但我认为目前没有很好的答案。

我没有运行关键HDFS集群的经验,所以我不知道单点故障的问题有多大。但另一个想法可能是 运行 在 Amazon S3 或 Google 云存储之上。我希望这些比你能做的任何事情都更可靠。他们拥有庞大的支持团队,并投入了大量资金和专业知识。