从Airflow SparkSubmitOperator提交Spark应用程序时如何设置YARN队列

时间:2020-02-20 21:47:07

标签: apache-spark hadoop airflow yarn

我是Airflow和SparkSubmitOperator的新手。我可以看到,在定位YARN时,Spark应用程序已提交到“ root.default”队列中。

一个简单的问题-如何设置自定义队列名称?

wordcount = SparkSubmitOperator(
    application='/path/to/wordcount.py',
    task_id="wordcount",
    conn_id="spark_default",
    dag=dag
)

p.s。我已经阅读了文档:

https://airflow.apache.org/docs/stable/_modules/airflow/contrib/operators/spark_submit_operator.html

谢谢

2 个答案:

答案 0 :(得分:3)

我现在可以看到--queue值来自Airflow spark-default连接:

Conn Id = spark_default
Host = yarn
Extra = {"queue": "root.default"}

转到“管理”菜单>“连接”,选择spark默认并进行编辑:
在Airflow WebServer用户界面中将多余的{"queue": "root.default"}更改为{"queue": "default"}

这当然意味着每个队列都需要气流连接。

enter image description here

答案 1 :(得分:0)

明确地说,至少有两种方法可以做到这一点:

  1. 菲利普回答,通过 Spark 连接。
  2. 通过 --conf 参数,Dustan 在评论中提到。

根据我的测试,如果在 Connection 的 queue 字段中设置了 Extra,则无论您向 SparkSubmit conf 传递什么内容,都会使用该设置。

但是,如果您在 Connection 中从 queueremove Extra,并将其发送到 SparkSubmitOperator conf arg 中,如下所示,YARN 将正确显示它.

conf={
       "spark.yarn.queue": "team_the_best_queue",
       "spark.submit.deployMode": "cluster",
       "spark.whatever.configs.you.have" = "more_config",
}