2016-09-19 95 views
2

我使用官方的mongo spark連接器。Mongo Spark連接器和mongo 3.2,root用戶無法讀取數據庫

  • 我的火花版本是2.0
  • 我蒙戈版本3.2.x中
  • 我的火花蒙戈連接器1.1.0

在我的數據庫,我有一個管理員與根的作用,所以他沒事。

我創建了一個配置如下:

 val readConfig = ReadConfig(Map("spark.mongodb.auth.uri" -> "mongodb://<userName>:<password>@<ip>:27017/admin", 
"spark.mongodb.input.uri" -> "mongodb://<ip>:27017/MyDatabase.myCollection")) 

但是當我嘗試讀一些數據我得到一個錯誤「無權執行命令。」

我不明白爲什麼我的root用戶沒有被授權。

回答

3

這是因爲"spark.mongodb.auth.uri"不是配置設置。

由於輸入uri沒有認證參數,所以讀取未被授權。

嘗試:

val readConfig = ReadConfig(Map(
    "uri" -> "mongodb://<userName>:<password>@<ip>:27017/myDatabase.myCollection?authSource=admin")) 

或:

val readConfig = ReadConfig(Map(
    "uri" -> "mongodb://<userName>:<password>@<ip>:27017", // uses the default db to auth against (admin) 
    "database" -> "myDatabase", 
    "collection" -> "myCollection")) 
+1

謝謝,第一個選項的工作完美:)! – harksin

+0

如何使用ReadConfig在Mongodb上查詢以避免全表掃描? – Akki

+0

Akki - 也許問一個新的問題。而不是在評論一箇舊的問題。 – Ross