气流中找不到spark-submit命令

时间:2018-04-16 22:16:28

标签: bash apache-spark pyspark airflow

我正试图在airflow中运行我的spark工作,当我在终端中执行此命令spark-submit --class dataload.dataload_daily /home/ubuntu/airflow/dags/scripts/data_to_s3-assembly-0.1.jar时,它运行正常,没有任何问题。

但是,我在气流中做同样的事情,但不断收到错误

  

/ tmp / airflowtmpKQMdzp / spark-submit-scalaWVer4Z:第1行:spark-submit:   命令未找到

t1 = BashOperator(task_id = 'spark-submit-scala',
bash_command = 'spark-submit --class dataload.dataload_daily \
/home/ubuntu/airflow/dags/scripts/data_to_s3-assembly-0.1.jar',
dag=dag,
retries=0,
start_date=datetime(2018, 4, 14))

我在bash_profile中提到了我的火花路径,

export SPARK_HOME=/opt/spark-2.2.0-bin-hadoop2.7
export PATH="$SPARK_HOME/bin/:$PATH"

也来源这个文件。不知道如何调试这个,有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

您可以从bash_command = 'echo $PATH'开始查看您的路径是否正确更新。

这是因为您正在编辑 bash_profile ,但据我所知,Airflow正在以另一个用户身份运行。由于其他用户没有对bash_profile进行任何更改,因此可能缺少Spark的路径。

如此处所述(How do I set an environment variable for airflow to use?),您可以尝试在.bashrc中设置路径。