mongodb - Mongo Spark连接器和mongo 3.2,root用户无法读取数据库

标签 mongodb apache-spark

我使用官方的 mongo spark 连接器。

  • 我的spark版本是2.0
  • 我的 mongo 版本是 3.2.x
  • 我的 spark mongo 连接器是 1.1.0

在我的数据库中,我有一个具有 root 角色的管理员,所以他有权限。

我已经创建了一个配置如下:

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

但是当我尝试读取一些数据时,出现错误“未授权执行命令。”

我不明白为什么我的 root 用户没有被授权。

最佳答案

这是因为 "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"))

关于mongodb - Mongo Spark连接器和mongo 3.2,root用户无法读取数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39576857/

相关文章:

hadoop - 绕过 org.apache.hadoop.mapred.InvalidInputException : Input Pattern s3n://[. ..] 匹配 0 个文件

scala - scala 中案例类字段的最大数量是多少?

python - 如何使用 pymongo 的 collection.update_one 或 update_many 指定不安全/安全写入

javascript - 在 MongoDB 中最后对 Null 值进行排序

linux - 创建 MongoDB 启动脚本

javascript - Meteor Collection 文档 ID : Random. id() 或 Meteor.Collection.ObjectID()

node.js - ObjectID 显示 Unicode 乱码而不是字符串

java - 如何使用 Java 将 Spark 数据集的所有列转换为字符串

apache-spark - 为什么reduceByKey后所有数据都在一个分区?

apache-spark - Tachyon 默认情况下是否由 Apache Spark 中的 RDD 实现?