无法使用SparkSubmitOperator执行Spark作业

man*_*dar 6 airflow

我可以使用运行Spark作业,BashOperator但我想SparkSubmitOperator使用Spark 独立模式使用它。


这是我的DAGfor 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,
)
Run Code Online (Sandbox Code Playgroud)

寻找来源spark_submit_hook似乎_resolve_connection()总在进行master=yarn。如何通过独立的主URL 更改master 属性值Spark?我可以设置哪些属性Spark独立模式运行作业?

kax*_*xil 10

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

更改Airflo中的Spark默认连接

法师可以是localyarnspark://HOST:PORTmesos://HOST:PORTk8s://https://<HOST>:<PORT>

您还可以在其他内容中提供以下命令:

{"queue": "root.default", "deploy_mode": "cluster", "spark_home": "", "spark_binary": "spark-submit", "namespace": "default"}
Run Code Online (Sandbox Code Playgroud)

气流火花提交额外内容

“ spark-submit”二进制文件应该放在PATH中,或者将火花宿主设置在连接的多余部分中。

  • 小心 `{"queue": "root.default", "deploy_mode": "cluster", "spark_home": "", "spark_binary": "spark-submit", "namespace": "default"}`,它应该是`deploy-mode`而不是`deploy_mode`,使用spark 2.4.2前者不起作用,调试起来并不简单:) (4认同)
  • 我正在运行两个容器,其中一个用于火花,另一个用于气流。如何设置 Spark-Submit 二进制文件? (3认同)