如何将documentdb连接到emr实例中的spark应用程序



当我试图在EMR实例中配置spark与mongodb时,我遇到了错误。下面是命令-

spark-shell --conf "spark.mongodb.output.uri=mongodb://admin123:Vibhuti21!@docdb-2021-09-18-15-29-54.cluster-c4paykiwnh4d.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false" "spark.mongodb.output.collection="ecommerceCluster" --packages org.mongodb.spark:mongo-spark-connector_2.11:2.4.3

我是Spark的初学者&AWS。有人能帮忙吗?

DocumentDB需要在每个启动spark执行器的节点上安装一个CA bundle。因此,您首先需要在每个实例上安装CA证书,AWS在JAVA部分的两个bash脚本中提供了这方面的指南,这使事情变得更容易。

一旦安装了这些证书,您的spark命令需要使用您可以传递给spark的配置参数来引用信任库及其密码。下面是我运行的一个例子,它工作得很好。

spark-submit 
--packages org.mongodb.spark:mongo-spark-connector_2.11:2.4.3  
--conf "spark.executor.extraJavaOptions=  
-Djavax.net.ssl.trustStore=/tmp/certs/rds-truststore.jks  
-Djavax.net.ssl.trustStorePassword=<yourpassword>"   pytest.py

你也可以在spark-shell中提供相同的配置选项。

我发现有一件事很棘手,就是mongo spark连接器似乎不知道连接字符串中的ssl_ca_certs参数,所以我删除了这一点,以避免spark发出警告,因为spark执行器无论如何都会在配置中引用密钥库。

相关内容