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

OpenShift上用pyiceberg对接Hive Metastore遇SSL证书错误的OSError问题

解决PyIceberg连接Minio时的SSL证书验证错误

这个错误是因为PyIceberg访问Minio S3桶时默认会验证SSL证书,而Minio使用的自签名证书或未受信任证书触发了验证失败。以下是可行的解决方案:

方案1:在HiveCatalog初始化时直接禁用SSL验证

在HiveCatalog的构造参数中添加s3_ssl_verify=False,让PyIceberg跳过S3连接的SSL证书校验:

from pyiceberg.catalog.hive import HiveCatalog

catalog = HiveCatalog(
    "docs",
    uri="thrift://localhost:8087",
    warehouse=TRINO_HOST,
    s3_endpoint=S3_HOST,
    py_io_impl="pyiceberg.io.pyarrow.PyArrowFileIO",
    s3_access_key_id=S3_ACCESS_KEY,
    s3_secret_access_key=S3_SECRET_KEY,
    s3_ssl_verify=False  # 新增参数:禁用SSL证书验证
)

print('catalog', catalog.list_namespaces())

table = catalog.load_table(f'{schemaname}.{tablename}')

方案2:通过环境变量全局禁用SSL验证

如果方案1不生效,可以通过环境变量强制跳过验证:

  • Linux/macOS终端临时设置:
    export PYICEBERG_S3_SSL_VERIFY=false
    
  • Windows命令行临时设置:
    set PYICEBERG_S3_SSL_VERIFY=false
    
  • 或者在Python代码开头添加:
    import os
    os.environ["PYICEBERG_S3_SSL_VERIFY"] = "false"
    

补充说明

之前list_namespaces操作正常是因为它仅与Hive Metastore的Thrift连接交互,不需要访问Minio存储;而load_table需要读取存储在Minio桶中的Iceberg表元数据文件,这时候才会触发S3连接的SSL验证,因此出现了证书错误。

内容的提问来源于stack exchange,提问作者o.O

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:32:39