【问题标题】:apache spark stand alone connecting to mongodb with scala using casbahapache spark 独立使用 casbah 通过 scala 连接到 mongodb
【发布时间】:2015-02-02 19:42:51
【问题描述】:

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

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

B.是否可以使用客户端从 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 scala apache-spark casbah


    【解决方案1】:

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

    但是,请记住,Spark 应用程序通常不是容错的。应用程序(又名“驱动程序”)本身就是单点故障。有一个关于该主题的相关问题 (Resources/Documentation on how does the failover process work for the Spark Driver (and its YARN Container) in yarn-cluster mode),但我认为目前还没有一个很好的答案。

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

    【讨论】:

    • 但另一个想法可能是在 Amazon S3 或 Google Cloud Storage 之上运行。我希望这些比你可以做的任何事情都更可靠@daniel - 毫无疑问这是真的,但它不是一个选择。您能否详细说明驱动程序如何成为单点故障?您是指实际的 scala/java/python map-reduce 应用程序还是 casbah 工具包?还是火花本身?
    • scala/java/python 应用程序本身。如果它死了,存储在 Spark RDD 中的所有内容都会丢失。
    • 当然,如果您只是临时使用 RDD 并将数据存储在 MongoDB 中,那么您可能处于一个好位置!
    猜你喜欢
    • 2019-09-24
    • 2012-03-06
    • 2015-12-07
    • 2014-12-19
    • 2020-02-06
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多