Google Dataproc 到 SQL 服务器(基于 centos 7)连接错误?

Google Dataproc to SQL Server(based on centos 7) connection error?

我陷入了一个已经浪费了我 3 天时间的问题。我有一个 dataproc 集群 1.5,我还在 google VM 运行 centos 7 OS 上设置了 SQL 服务器。但是我无法通过来自 dataproc 集群的 pyspark 连接 SQL 服务器。您可以在附件中找到错误快照。 SQL 服务器上禁用了 SSL 加密。我可以通过 sqlcmd(安装在 dataproc 集群上)访问 SQL 服务器,也可以通过来自 dataproc 集群的 PYMSSQL 库访问。但不是用pyspark。尝试从 Sqoop 访问 MSSQL 时也会发生同样的错误。 请指导我,我已经尝试了互联网上所有可能的解决方案,但对我来说仍然没有运气。 提前致谢。 我的连接字符串是:

df = spark.read.format("jdbc") \
.option("url", "jdbc:sqlserver://x.x.x.x:1433;encrypt=false;databaseName=gcp") \
.option("dbtable", "xxx") \
.option("user", "xxx") \
.option("password", "xxxx") \
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver").load()

Connection Error Snapshot

这可能是因为 Dataproc 默认使用 Conscrypt 来提高性能。

取决于您使用的 MS SQL JDBC 派生版本,在使用 Conscrypt 时可能存在导致失败的错误。

要解决此问题,请尝试通过 cluster properties:

在 Dataproc 集群创建期间禁用 Conscrypt
gcloud dataproc clusters create $CLUSTER_NAME \
  --properties=dataproc:dataproc.conscrypt.provider.enable=false