Can';t使用SSL和.pem配置将Spark和Scala 2.11连接到MongoDB
我在从scala&spark应用程序连接到Mongodb时遇到了一个问题,尽管我在C#上成功了Can';t使用SSL和.pem配置将Spark和Scala 2.11连接到MongoDB,mongodb,scala,apache-spark,Mongodb,Scala,Apache Spark,我在从scala&spark应用程序连接到Mongodb时遇到了一个问题,尽管我在C#上成功了 My C# code: var url = "mongodb://user:pass@servername:27017/admin?ssl=true"; var clientSettings = MongoClientSettings.FromUrl(new MongoUrl(url)); var byte
My C# code:
var url = "mongodb://user:pass@servername:27017/admin?ssl=true";
var clientSettings = MongoClientSettings.FromUrl(new MongoUrl(url));
var bytes = Convert.FromBase64String("MIID5TCCAs2gAwIBAgIJANoGBQADggEBAHaIdU9ri.....");
var cert = new X509Certificate2(bytes);
clientSettings.SslSettings = new SslSettings
{
ClientCertificates = new[] { cert },
CheckCertificateRevocation = false
};
clientSettings.UseSsl = true;
clientSettings.VerifySslCertificate = false;
var client = new MongoClient(clientSettings);
database = client.GetDatabase("databasename");
我搜索了office mongodb驱动器文档,但每个版本都有很大的不同,而且都不对。请您提供有关Scala 2.11和Spark 2.3的建议?我的mongodb产品是使用.pem文件配置的
多谢各位!
TrinhSpark MongoDB的SSL配置没有很好的文档记录。
本质上,您需要将信任库和密钥库配置添加到驱动程序和执行器配置中,请参阅
因此,您需要将该配置添加到spark submit命令中,例如:
--conf“spark.executor.extraJavaOptions=-Djavax.net.ssl.trustStore=path_to_trustStore-Djavax.net.ssl.trustStorePassword=trustPassword-Djavax.net.ssl.keyStore=path_to_keyStore-Djavax.net.ssl.keystrepassword=keyPassword”
您需要将crt
(可能是.pem
的第一部分)添加到密钥库中,如:
keytool-alias mongodb-importcert-trustcacerts-file mongodb.crt-keystore path\u to\u keystore-storepass keyPassword
如果您找到更好的解决方案,请告诉我谢谢Tom的支持。我正在尝试连接像IDEA这样的开发工具。您是否有任何文档可以帮助连接IntelliJ IDEA?只需将它们添加到VM选项中(不带
spark.executor.extraJavaOptions=
)