2016-08-17 47 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