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

K8s集群中Spark History Server对接非SSL MinIO存储连接被拒问题求助

问题根因分析
  • 最常见原因是MinIO HTTP端口缺失:你当前配置的endpoint仅写了http://someIpv4,未携带MinIO HTTP服务端口,默认会访问80端口,而MinIO默认HTTP端口为9000,端口不匹配直接导致连接被拒绝。
  • 配置被全局默认值覆盖:Spark History Server启动时会优先加载$SPARK_HOME/conf/spark-defaults.conf、系统Hadoop配置文件中的s3a相关参数,你传入的自定义配置可能被旧的SSL、端点配置覆盖。
  • 网络策略限制:运行Spark History Server的K8s Pod/节点,未开放到MinIO HTTP端口的网络访问权限,之前正常运行的spark-submit任务可能运行在有权限的网络空间中。
  • 依赖包缺失:Spark History Server运行环境的$SPARK_HOME/jars目录下未放入aws-java-sdk、hadoop-aws依赖包,或版本与正常运行的spark-submit任务依赖版本不一致。
排查步骤
  1. 首先验证端点连通性:登录到运行History Server的节点/进入对应K8s Pod,执行命令 curl http://<MinIO_IP>:<HTTP端口>/minio/health/live,确认网络连通性正常,端口配置正确。
  2. 校验生效配置:启动History Server时添加参数 --conf spark.logConf=true,查看启动日志中打印的s3a相关配置项,确认spark.hadoop.fs.s3a.endpoint、spark.hadoop.fs.s3a.connection.ssl.enabled等值与你自定义配置一致,未被全局配置覆盖。
  3. 检查依赖包:对比History Server运行环境与正常spark-submit任务的依赖包,确认aws-java-sdk、hadoop-aws版本一致,且已放入Spark的jars加载目录。
解决方案
  • 补全Endpoint端口:将配置文件中的spark.hadoop.fs.s3a.endpoint修改为http://someIpv4:<MinIO_HTTP端口>,默认端口为9000,自行修改过端口的话填对应值即可。
  • 避免全局配置干扰:启动时临时指定空的配置目录,命令改为 SPARK_CONF_DIR=/tmp ./start-history-server.sh --properties-file my_conf_file,确保仅加载你传入的自定义配置。
  • 补充依赖与配置:将aws-java-sdk-1.7.4.jar、hadoop-aws-2.7.3.jar放入$SPARK_HOME/jars目录,同时在配置文件中添加spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem,hadoop-aws 2.7.3版本已包含该类,缺失为环境未正确加载依赖导致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:15:01