我正试图在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"
也来源这个文件。不知道如何调试这个,有人可以帮我吗?
答案 0 :(得分:2)
您可以从bash_command = 'echo $PATH'
开始查看您的路径是否正确更新。
这是因为您正在编辑 bash_profile ,但据我所知,Airflow正在以另一个用户身份运行。由于其他用户没有对bash_profile进行任何更改,因此可能缺少Spark的路径。
如此处所述(How do I set an environment variable for airflow to use?),您可以尝试在.bashrc
中设置路径。