无法使用SparkSubmitOperator执行spark作业

时间:2018-05-25 15:44:26

标签: airflow

我可以使用Spark运行BashOperator个工作,但我想使用SparkSubmitOperator 独立模式来使用Spark

Here's我的DAG SparkSubmitOperator堆栈跟踪

args = {
    'owner': 'airflow',
    'start_date': datetime(2018, 5, 24)
}
dag = DAG('spark_job', default_args=args, schedule_interval="*/10 * * * *")

operator = SparkSubmitOperator(
    task_id='spark_submit_job',
    application='/home/ubuntu/test.py',
    total_executor_cores='1',
    executor_cores='1',
    executor_memory='2g',
    num_executors='1',
    name='airflow-spark',
    verbose=False,
    driver_memory='1g',
    conf={'master':'spark://xx.xx.xx.xx:7077'},
    dag=dag,
)

查看spark_submit_hook的来源,似乎_resolve_connection()始终设置master=yarn。如何通过master独立主网址更改Spark 属性值?我可以设置哪些属性以独立模式运行Spark作业

1 个答案:

答案 0 :(得分:5)

您可以使用Airflow Web UI创建新连接,也可以更改spark-default连接。

Change Spark-default connection in Airflo

主人可以是localyarnspark://HOST:PORTmesos://HOST:PORTk8s://https://<HOST>:<PORT>

您还可以在附加内容中提供以下命令:

{"queue": "root.default", "deploy_mode": "cluster", "spark_home": "", "spark_binary": "spark-submit", "namespace": "default"}

Airflow Spark Submit Extras

“spark-submit”二进制文件应该在PATH中,或者spark-home在连接中的额外设置。