Databricks调用Collibra REST API遇SSL EOF错误求助
Databricks中调用Collibra REST API出现SSL EOF错误的解决思路
问题场景
- 本地Python环境可正常运行调用Collibra REST API的脚本,但在Databricks Notebook(Python 3.10)中执行以下代码时报错:
requests.get("https://organisationName.collibra.com/rest/2.0/assets/1230b974-4c83-4f22-88a7-11c5e1ty1234", headers=headers, verify=False) - 收到错误:
SSLError: HTTPSConnectionPool(host='organisationName.collibra.com', port=443): Max retries exceeded with url: /rest/2.0/assets/1230b974-4c83-4f22-88a7-11c5e1ty1234 (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)')))
- 已尝试操作:取消
verify=False设置、安装/更新ndg-httpsclient/pyopenssl等包,均无效果;使用的requests版本为2.28.1
解决步骤
1. 检查Databricks集群的网络访问限制
Databricks集群通常受企业网络策略管控,可能无法正常建立SSL连接到外部服务:
- 测试集群是否能访问Collibra域名:在Notebook中执行以下命令验证连通性
!telnet organisationName.collibra.com 443 # 或者用curl查看详细连接日志 !curl -v https://organisationName.collibra.com - 确认集群所在VPC是否允许出站访问
organisationName.collibra.com的443端口 - 检查是否需要配置企业内部的HTTP/HTTPS代理(很多企业环境下Databricks集群必须通过代理访问外部网络)
2. 强制指定SSL协议版本
部分环境中默认的SSL协议协商可能出现兼容性问题,可尝试强制使用TLS 1.2或1.3:
import requests from requests.adapters import HTTPAdapter from urllib3.poolmanager import PoolManager import ssl class TLSAdapter(HTTPAdapter): def init_poolmanager(self, connections, maxsize, block=False): self.poolmanager = PoolManager( num_pools=connections, maxsize=maxsize, block=block, ssl_version=ssl.PROTOCOL_TLSv1_2 # 可尝试替换为 ssl.PROTOCOL_TLSv1_3 ) session = requests.Session() session.mount('https://', TLSAdapter()) response = session.get( "https://organisationName.collibra.com/rest/2.0/assets/1230b974-4c83-4f22-88a7-11c5e1ty1234", headers=headers, verify=False )
3. 手动配置SSL证书信任
Databricks集群的根证书库可能缺少Collibra证书的签发机构证书,可尝试手动指定证书文件:
- 获取Collibra服务的CA证书文件
- 将证书上传到DBFS或集群本地存储
- 在请求中指定证书路径:
response = requests.get( "https://organisationName.collibra.com/rest/2.0/assets/1230b974-4c83-4f22-88a7-11c5e1ty1234", headers=headers, verify="/dbfs/path/to/collibra_ca.crt" )
4. 公司内部求助对象建议
- Databricks集群管理员:负责集群网络配置、权限管理,可协助排查出站规则、代理设置问题
- 企业安全/网络团队:管控防火墙、代理策略、SSL证书信任体系,能确认外部访问的合规性
- Collibra管理员:可验证Collibra服务的访问策略、证书配置是否有变更
内容的提问来源于stack exchange,提问作者Bat
相关产品推荐
相关产品推荐

