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

运行spark-client snap时特定节点Executor Pod无法启动问题排查

问题排查:MicroK8s集群中Spark Executor在新Ubuntu节点启动失败

环境与问题概述

  • 集群部署:通过snap install microk8s --classic搭建本地多节点MicroK8s集群,搭配snap install spark-client --edge部署spark-client
  • 节点构成:2个基于Windows 11 WSL2的Ubuntu节点,新增1台物理Ubuntu笔记本节点
  • 核心问题:执行spark-client.spark-shell ...时,WSL节点的Spark Executor可正常启动,新Ubuntu节点的Executor启动失败;新节点可正常运行HDFS Pod,具备基础Pod运行能力
  • 关键错误日志:Executor Pod失败时仅捕获到一行日志:error: unknown command "executor", see 'pebble help'

已知线索

  • Pod配置包含executor参数,推测问题与该参数相关
  • 使用镜像为ghcr.io/canonical/charmed-spark:3.4.0-22.04_edge,本地可直接运行该镜像
  • 不同节点上该镜像的sha256值存在差异

解决与进一步排查思路

  • 统一节点镜像版本:在新节点手动拉取指定镜像,执行docker pull ghcr.io/canonical/charmed-spark:3.4.0-22.04_edge,拉取完成后对比WSL节点的镜像sha256值,确保所有节点使用完全一致的镜像版本,避免镜像差异导致的命令不兼容
  • 保留失败Pod以排查细节:修改Spark提交配置,添加spark.kubernetes.executor.deleteOnTermination=false参数,执行spark-client.spark-shell --conf spark.kubernetes.executor.deleteOnTermination=false ...,让失败的Executor Pod保留,通过kubectl logs <Pod名称>查看完整日志,或kubectl get pod <Pod名称> -o yaml检查Pod的启动命令与参数配置
  • 本地验证镜像命令兼容性:在新节点直接运行镜像并尝试执行executor命令,执行docker run --rm ghcr.io/canonical/charmed-spark:3.4.0-22.04_edge executor,确认镜像本身是否支持该命令,排查是否是镜像本地运行环境的问题
  • 对比节点MicroK8s版本:在所有节点执行microk8s version,确认新节点与WSL节点的MicroK8s版本是否一致,避免因版本差异导致Pod调度后的运行逻辑不同
  • 检查Pebble配置与版本:进入新节点的镜像容器,查看Pebble的配置目录(通常为/var/lib/pebble/default/),确认是否存在executor命令的定义;同时对比WSL节点与新节点中镜像内的Pebble版本,排查是否因Pebble版本差异导致命令不识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:37:33