2016-09-19 2 views
2

공식 mongo 스파크 커넥터를 사용합니다.Mongo Spark 커넥터 및 mongo 3.2, 루트 사용자가 데이터베이스를 읽을 수 없습니다

  • 내 스파크 버전 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")) 

을하지만 난 일부 데이터를 읽을하려고 할 때 오류가 발생하는 "명령을 실행할 수있는 권한이 없습니다."

내 루트 사용자가 허가되지 않은 이유를 모르겠습니다.

답변

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

관련 문제