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

Airflow中Spark任务显示成功但Spark UI无记录求助排查

本地Airflow+Spark任务问题排查方案

1. 处理ps命令未找到的问题

  • 先在终端执行which ps确认命令路径(一般是/bin/ps或/usr/bin/ps)。
  • 确保Airflow运行环境的PATH包含该路径:
    • 若用终端启动Airflow,检查当前终端PATH,缺失则执行export PATH=$PATH:/bin:/usr/bin(根据实际路径调整)后再启动Airflow;
    • 若用systemd管理Airflow,在service配置文件中添加Environment="PATH=/bin:/usr/bin:$PATH";
    • 也可在Airflow的airflow.cfg中通过env_vars全局设置PATH。

2. 配置JAVA_HOME环境变量

  • 找到Java安装路径,执行update-alternatives --list java可查看系统中Java的安装位置,比如/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java,取到jvm下的目录作为JAVA_HOME(即/usr/lib/jvm/java-8-openjdk-amd64)。
  • 给Airflow配置JAVA_HOME:
    • 终端启动Airflow:先执行export JAVA_HOME=/path/to/your/java再启动;
    • systemd服务:在service文件中添加Environment="JAVA_HOME=/path/to/your/java";
    • DAG中单独配置:在SparkSubmitOperator里指定env_vars参数:
      SparkSubmitOperator(
          task_id="run_pyspark",
          application="/path/to/your/script.py",
          env_vars={"JAVA_HOME": "/usr/lib/jvm/java-8-openjdk-amd64"},
          master="local[*]",
          # 其他必要参数
      )
      

3. 修复spark-submit错误码1的问题

  • 先手动在终端执行spark-submit /path/to/your/script.py,确认脚本和Spark本身能正常运行,排除代码或Spark基础配置问题。
  • 确保Airflow能找到spark-submit:要么将Spark的bin目录(比如/opt/spark/bin)加入Airflow的PATH,要么在SparkSubmitOperator中指定spark_submit_path="/opt/spark/bin/spark-submit"。
  • 检查SparkSubmitOperator的master参数,本地模式需设为local[*],避免因master地址错误导致提交失败。

4. 解决Airflow任务显示成功但无Spark应用记录的问题

  • 前面三个问题是根源,修复后重新运行DAG:
    • 查看任务日志,确认spark-submit执行成功,无报错;
    • 访问Spark历史服务器(默认http://localhost:18080)查看已完成应用,若任务运行中可访问http://localhost:4040查看实时应用。
  • Airflow之前显示任务成功可能是因为错误捕获逻辑未正确识别spark-submit的失败状态,修复环境问题后状态会和实际执行结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:08:20