【问题标题】:Connecting to DB2 with SSL using Pyspark使用 Pyspark 通过 SSL 连接到 DB2
【发布时间】:2022-04-06 22:42:16
【问题描述】:

我正在尝试在 Linux 上使用 Pyspark 通过 SSL 连接到 DB2。我尝试了以下

user = "xxxx"
password = "xxxxx"
jdbcURL = "jdbc:db2://nn.nn.nnn.nnn:nnnn/<database>"
prop = {"user": user, "password": password, "driver": 
"com.ibm.db2.jcc.DB2Driver", "sslConnection": "true"}
table = "<schema>.<table name>"
df = spark.read.jdbc(url=jdbcURL, table=table, properties=prop)

我也试过

user = "xxxx"
password = "xxxxx"
jdbcURL = "jdbc:db2://nn.nn.nnn.nnn:nnnn/<database>"
prop = {"user": user, "password": password, "driver": 
"com.ibm.db2.jcc.DB2Driver", "sslConnection": "true"
"Security": "SSL", "SSLServerCertificate": "<path to arm file>"}}
table = "<schema>.<table name>"
df = spark.read.jdbc(url=jdbcURL, table=table, properties=prop)

在这两种情况下我都会遇到相同的错误 或套接字输出流。

错误位置:Reply.fill() - socketInputStream.read (-1)。信息: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径。错误代码=-4499, SQLSTATE=08001

我不确定指定 .arm 路径的语法。卡住。请帮忙

象头神

附:我可以使用

连接 python 和 ibm_db 模块
import ibm_db
conn = ibm_db.connect("DATABASE=<database> 
;HOSTNAME=nn.nn.nnn.nnn:nnnn;SECURITY=SSL;SSLServerCertificate=<path to arm 
file> ;UID=<user>;PWD=<password>","","")

这行得通。

【问题讨论】:

  • 编辑您的问题以指定 Db2 服务器 版本 和平台(z/os、i-series、linux/unix/windows)。还要指定您的 Db2 客户端(它提供 Db2 jdbc 驱动程序)版本和修订包
  • 另外,您是否为 SSL 正确配置了 JRE?关注文档ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/…
  • 我可以使用 ibm_db 模块通过 python 连接到 SSL。所以配置没问题
  • ibm_db 模块使用 CLI (no java) ,但 pySpark 使用 JDBC ,所以 DIFFERENT RULES,你的配置是可疑的。
  • @mao,使用 Pyspark 通过 SSL 连接 DB2 的语法是什么?

标签: ssl pyspark db2


【解决方案1】:

通过重新安装 Java 证书解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2010-09-21
    • 2015-04-13
    • 2014-08-14
    相关资源
    最近更新 更多