Dataproc Serverless - 如何设置 javax.net.ssl.trustStore 属性 以修复 java.security.cert.CertPathValidatorException

Dataproc Serverless - how to set javax.net.ssl.trustStore property to fix java.security.cert.CertPathValidatorException

尝试将 google-cloud-dataproc-servelessspark.jars.repositories 选项一起使用

gcloud beta dataproc batches submit pyspark sample.py --project=$GCP_PROJECT --region=$MY_REGION --properties \
spark.jars.repositories='https://my.repo.com:443/artifactory/my-maven-prod-group',\
spark.jars.packages='com.spark.mypackage:my-module-jar',spark.dataproc.driverEnv.javax.net.ssl.trustStore=.,\
spark.driver.extraJavaOptions='-Djavax.net.ssl.trustStore=. -Djavax.net.debug=true' \
--files=my-ca-bundle.crt

给这个例外

 javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException

尝试使用 spark.dataproc.driverEnv/spark.driver.extraJavaOptions 设置此 属性 javax.net.ssl.trustStore,但它不起作用。

是否可以通过设置正确的配置属性和值来解决这个问题, 要么 自定义映像是唯一的解决方案,带有预安装的证书?

您需要 Java trust store 并导入您的证书。然后用

提交批次
--files=my-trust-store.jks \
--properties spark.driver.extraJavaOptions='-Djavax.net.ssl.trustStore=./my-trust-store.jks',spark.executor.extraJavaOptions='-Djavax.net.ssl.trustStore=./my-trust-store.jks'