You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Spark Native Connector连接ClickHouse Cloud时持续遇Connection Reset错误如何解决?

解决ClickHouse Spark Native Connector连接Cloud时的Connection reset问题

问题背景

已按照ClickHouse Spark Native Connector文档指引,下载以下依赖:

  • clickhouse-spark-runtime-3.5.2_0.8.0
  • clickhouse-jdbc-all-0.9.2

Catalog配置项:

  • 用户名、密码、主机名均正确配置
  • SSL模式设为true
  • 端口使用8443
  • 协议指定为https

连接时触发错误:

com.clickhouse.spark.CHException: [HTTP] user@host:8443/default [210] Connection reset

curl及Airflow均可正常访问目标ClickHouse Cloud实例,仅Spark连接出现问题。

可能的解决方案

1. 对齐JDBC与Spark Runtime版本兼容性

clickhouse-spark-runtime-0.8.0官方建议搭配0.8.x系列的JDBC驱动,你当前使用的clickhouse-jdbc-all-0.9.2属于跨大版本,存在兼容性冲突风险。建议替换为clickhouse-jdbc-all-0.8.2(与Spark Runtime版本匹配的稳定版),重新部署依赖后测试连接。

2. 补充SSL证书信任配置

仅开启SSL可能因证书校验失败导致连接重置,在Spark Catalog配置中添加以下参数:

  • spark.sql.catalog.clickhouse.security.ssl.trustStorePath:指定JDK默认证书库路径(例如/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/security/cacerts,路径根据你的Java环境调整)
  • spark.sql.catalog.clickhouse.security.ssl.trustStorePassword:默认证书库密码为changeit
  • 测试环境可临时添加spark.sql.catalog.clickhouse.security.ssl.insecure=true跳过证书校验(生产环境禁用)

3. 延长连接超时与重试次数

连接重置可能由超时触发,添加以下参数调整阈值:

  • spark.sql.catalog.clickhouse.http.connectionTimeout=30000(设置为30秒)
  • spark.sql.catalog.clickhouse.http.socketTimeout=60000(设置为60秒)
  • spark.sql.catalog.clickhouse.http.maxRetries=3

4. 排查Spark节点网络权限

虽然curl和Airflow能访问,但Spark集群节点可能受不同网络策略限制:

  • 在Spark节点上执行curl https://host:8443/ping,确认网络连通性
  • 检查Spark节点是否被防火墙/安全组限制访问8443端口
  • 若使用代理,需在Spark配置中添加代理参数:
    spark.sql.catalog.clickhouse.http.proxyHost=你的代理主机
    spark.sql.catalog.clickhouse.http.proxyPort=你的代理端口
    

5. 切换为Native协议连接

ClickHouse Spark Connector支持Native TCP协议,尝试切换配置:

  • 协议改为native
  • 端口改为ClickHouse Cloud的Native SSL端口9440
  • 核心配置示例:
    spark.sql.catalog.clickhouse=com.clickhouse.spark.ClickHouseCatalog
    spark.sql.catalog.clickhouse.host=你的ClickHouse主机
    spark.sql.catalog.clickhouse.protocol=native
    spark.sql.catalog.clickhouse.port=9440
    spark.sql.catalog.clickhouse.security.ssl=true
    spark.sql.catalog.clickhouse.user=你的用户名
    spark.sql.catalog.clickhouse.password=你的密码
    

内容的提问来源于stack exchange,提问作者megadarkfriend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:42:14