在气流中找不到 spark-submit 命令
spark-submit command not found in 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: line 1: spark-submit:
command not found
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、
中提到了我的 spark 路径
export SPARK_HOME=/opt/spark-2.2.0-bin-hadoop2.7
export PATH="$SPARK_HOME/bin/:$PATH"
也获取了此文件。不确定如何调试,谁能帮我解决这个问题?
您可以从 bash_command = 'echo $PATH'
开始,看看您的路径是否更新正确。
这是因为您正在提及编辑 bash_profile,但据我所知,Airflow 正在 运行 作为另一个用户。由于其他用户在 bash_profile 中没有任何更改,因此可能缺少 Spark 的路径。
如此处所述 (How do I set an environment variable for airflow to use?),您可以尝试在 .bashrc
中设置路径。
我正在尝试 运行 我在气流中的 spark 作业,当我在终端中执行此命令 spark-submit --class dataload.dataload_daily /home/ubuntu/airflow/dags/scripts/data_to_s3-assembly-0.1.jar
时,它工作正常,没有任何问题。
然而,我在气流中做同样的事情,但不断收到错误
/tmp/airflowtmpKQMdzp/spark-submit-scalaWVer4Z: line 1: spark-submit: command not found
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、
中提到了我的 spark 路径export SPARK_HOME=/opt/spark-2.2.0-bin-hadoop2.7
export PATH="$SPARK_HOME/bin/:$PATH"
也获取了此文件。不确定如何调试,谁能帮我解决这个问题?
您可以从 bash_command = 'echo $PATH'
开始,看看您的路径是否更新正确。
这是因为您正在提及编辑 bash_profile,但据我所知,Airflow 正在 运行 作为另一个用户。由于其他用户在 bash_profile 中没有任何更改,因此可能缺少 Spark 的路径。
如此处所述 (How do I set an environment variable for airflow to use?),您可以尝试在 .bashrc
中设置路径。