apache-spark - 如何将 documentdb 连接到 emr 实例中的 spark 应用程序
问题描述
在我的 EMR 实例中尝试使用 mongodb 配置 spark 时出现错误。下面是命令——
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 包。因此,您首先需要在每个实例上安装 CA 证书,AWS 在 JAVA 部分下有一个指南,其中包含两个 bash 脚本,这使事情变得更容易。1
安装这些证书后,您的 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 执行器无论如何都会在配置中引用密钥库。
推荐阅读
- android - 获取 Flow 发出的最后一项并且不接收更新
- ruby-on-rails - 从查询后生成的模型中删除属性
- sql - 访问查询:使用用户输入在sql中选择要查询的列
- graphql - 无法在 GraphQL 中实现联合
- xpath - DOM4J XPath 2.0
- sql - 在 SQL Server 2005 中启用 CDC 不起作用?
- google-apps-script - 如何搜索包含空格的文件名,以便消除空格
- reactjs - React js 上传大文件(视频或pdf)
- swiftui - 如何使用 DateFormatter 显示昨天、今天和明天
- python - Django 使用 Piexif 更新 InMemoryUploadedFile