2016-08-17 49 views
0

我试图使用Mesos将Apache Spark连接到MongoDB。这里是我的架构: -通过Mesos发送给MongoDB

MongoDB:MongoDB 2个碎片,1个配置服务器和1个查询服务器的集群。 Mesh:1 Mesos Master,4 Mesos Slaves

现在我已经在1个节点上安装了Spark。那里没有太多可用的信息。我只是想提出几个问题: -

据我所知,我可以通过mesos连接Spark到MongoDB。换句话说,我最终将MongoDB用作存储层。我真的需要Hadoop吗?是否必须将所有数据都拉入Hadoop中才能读取Spark?

这是我问这个问题的原因。 Spark安装期望设置HADOOP_HOME变量。这似乎是非常紧密的耦合!网上的大多数帖子都讲述了MongoDB-Hadoop连接器。如果你迫使我把所有东西都搬到hadoop,这没有任何意义。

有没有人有答案?

问候 马里奥

回答

0

火花本身占用在HDFS上Hadoop和数据的相关性可以被用作一个数据源。

但是,如果您使用Mongo Spark Connector,则可以使用MongoDB作为Spark的数据源,而无需通过Hadoop。

+0

谢谢罗斯。但是,正如Youe上面提到的,Spark希望在安装时设置HADOOP_HOME变量!这清楚地表明,它与Hadoop绑定在一起,不管他们对Spark的看法是独立的。 – Mario

0

Spark-mongo connector是个好主意,而且如果您在hadoop集群中执行Spark,则需要设置HADOOP_HOME。

检查requeriments并对其进行测试(tutorial

Basic working knowledge of MongoDB and Apache Spark. Refer to the MongoDB documentation and Spark documentation. 
Running MongoDB instance (version 2.6 or later). 
Spark 1.6.x. 
Scala 2.10.x if using the mongo-spark-connector_2.10 package 
Scala 2.11.x if using the mongo-spark-connector_2.11 package 

新的MongoDB连接器的Apache星火提供更高的性能,更强的易用性,并获得比MongoDB的连接器Hadoop的更先进的星火功能。下表比较了两个连接器的功能。

然后,你需要与mesos配置星火:

Connecting Spark to Mesos

To use Mesos from Spark, you need a Spark binary package available in a place accessible by Mesos, and a Spark driver program configured to connect to Mesos. 

Alternatively, you can also install Spark in the same location in all the Mesos slaves, and configure spark.mesos.executor.home (defaults to SPARK_HOME) to point to that location. 
+0

不,我不希望有这种Hadoop依赖性。我正在谈论Spark通过Mesos直接进入MongoDB。 – Mario