2016-12-01 6 views
0

私はスパーク・モンゴー・コネクター(https://docs.mongodb.com/spark-connector/)を使用しています。私は他の事は、私はMongosに読取り問合せを作っていているスパーク・モンゴー・コネクター読み取り設定を確認する方法

val courseReadConfig = ReadConfig(Map(
    "uri" -> "mongodb://ip:port/db.collection?read_preference=Primary([{\"cloudType\" : \"aws\",\"dataCenter\" : \"us-east-1\"}])", 
    "partitionerOptions.shardkey" -> "key", 
    "partitioner" -> "MongoShardedPartitioner" 
)) 

読み取り設定を使用しています..私が使用しています読み取りコンフィグ設定がない上正しければ、物事のカップルは、私がverfiyしたいがありますサーバー、私はクエリがmongosによって処理されていることを知りたいと思うし、Mongosからネットワークトポロジーを取得した後にスパークまたはスパークに結果を戻し、個々のmongo servrers/primary/secondaryにデータを読み込ませます。

おかげで、 のPrashant

答えて

1

ドキュメントには、再設定をすることはもはや正しくありませんあなたはreadPreference.namereadPreference.tagsなどを設定する必要がありadPreference:

val courseReadConfig = ReadConfig(Map(
    "uri" -> "mongodb://ip:port/db.collection" 
    "readPreference.name"="primary", 
    "readPreference.tags"="""[{"cloudType" : "aws", "dataCenter" : "us-east-1"}]""", 
    "partitionerOptions.shardkey" -> "key", 
    "partitioner" -> "MongoShardedPartitioner" 
)) 

私はクエリが、その後mongosによって処理され、それがネットワークトポロジを取得した後、点火スパークかどうかに戻って結果を送信するかどうかを知りたいですMongosから

パーティショニングが最初に起きた後、各パーティションに対して、スパークワーカーはURIに接続し、結果セクションを処理します。これは、労働者からMongoへの接続は、URIで提供されているMongoSのいずれかを介して行われることを意味します。あなたが1つだけを供給すれば、そのMongoSはすべてのSpark Workerによって使用されるでしょう。したがって、冗長性とパフォーマンス目的のために、複数のSpark Workersを提供する必要があります。ドキュメントの「How can I achieve data locality?」セクションに少し詳しい情報があります。 Mongo Spark ConnectorはShardのMongoDに直接接続しません。誤った情報がユーザーに返される危険性があります。

+0

ロスあなたはもう少し詳細を教えてください。もし私がURIでmongosサーバーを与えても、すべてのスパーク作業員が結果のためにmongosに接続するのでしょうか、結果のためのmongoデータノードに接続しますか?私が読むことができるドキュメントはありますか?ありがとうございます。 –

+0

@PrashantVerma私はあなたの質問への回答を含めるために自分の答えを編集しました。 – Ross

関連する問題