Kubernetes集群中Spark Worker进程异常退出问题求助
Spark Worker在MicroK8s集群异常退出解决方案
问题根因
日志中Spark Driver的访问地址、Worker绑定地址均为127.0.0.1本地回环地址,Kubernetes集群中不同Pod的本地回环地址相互隔离,Executor启动后无法通过127.0.0.1访问到Driver进程,因此直接退出返回状态码1,与你的判断一致。
修复步骤
- 提交Spark任务时显式指定Driver的集群可路由地址,配置
spark.driver.host为Driver Pod在集群内的Pod IP或者Pod DNS名称,避免默认绑定本地回环。 - 同步配置
spark.driver.bindAddress=0.0.0.0,允许Driver接收所有网卡的连接请求,适配Kubernetes Pod的网络机制。 - 若使用集群模式提交(Driver运行在Kubernetes Pod中),可直接在提交命令中添加以下参数自动获取Driver Pod IP:
--conf spark.kubernetes.driverEnv.MY_POD_IP=status.podIP --conf spark.driver.host=$(MY_POD_IP) --conf spark.driver.bindAddress=0.0.0.0
- 按需配置
spark.executor.host为Executor Pod的集群IP,避免Executor也绑定本地回环导致通信异常。
验证方式
任务提交后查看Worker侧的Executor启动日志,确认--driver-url字段中的IP已替换为Driver的集群内可访问IP,不再显示127.0.0.1即可确认配置生效。
内容的提问来源于stack exchange,提问作者Rafaelgx0
相关产品推荐
相关产品推荐

