【发布时间】:2021-10-23 07:50:14
【问题描述】:
我需要通过 SSL 连接到 PostgreSQL 数据库。我收到了 2 个证书和 1 个密钥 -> sslrootcert=root.crt sslcert=postgresql.crt 和 sslkey=postgresql.key.der
这是我从 Dataproc 导入的配置:
import
-Dmapreduce.job.user.classpath.first=true
-Dhadoop.security.credential.provider.path=jceks://hdfs/secrets/prod/db.jceks
--connect=jdbc:postgresql://xxx.x.x/DBNAME?sslrootcert=root.crt&sslcert=postgresql.crt&sslkey=postgresql.key.der
--username=user1
--table=db1
--target-dir=gs://bucket
--delete-target-dir
--as-avrodatafile
--password-alias=password
Dataproc 找不到我的 SSL 证书:
Error: java.lang.RuntimeException: java.lang.RuntimeException: org.postgresql.util.PSQLException: Could not open SSL certificate file postgresql.crt
如何将证书和密钥添加到 dataproc 以确保在连接配置中可以访问这些证书。
我应该在哪里存储 SSL 证书以便在运行作业期间在导入配置中使用它们:
--connect=jdbc:postgresql://xxx.x.x/DBNAME?sslrootcert=/???/??/root.crt&sslcert=/???/??/postgresql.crt&sslkey=/???/??/postgresql.key.der
【问题讨论】:
-
Dataproc 不包含 PostgreSQL,您是否尝试从 Dataproc 连接到外部 PostgreSQL?还有上面的代码 sn-p 是什么?它是 PySpark 工作吗?
-
@Dagang,是的,我正在尝试运行 sqoop 作业以连接到外部 PostgreSQL。数据需要从 PostgreSQL 传输到 GCS 存储桶
-
@大刚,我更新了一下评论
-
我认为您想将其添加到 Java 的默认证书位置
${JAVA_HOME}/jre/lib/security/cacerts,对于 Dataproc,它是/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre/lib/security/cacerts
标签: postgresql ssl sqoop google-cloud-dataproc