【问题标题】:Unable to execute spark job using SparkSubmitOperator无法使用 SparkSubmitOperator 执行火花作业
【发布时间】:2020-08-19 15:28:04
【问题描述】:

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


Here's 我的DAG for SparkSubmitOperatorstack-trace

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。如何通过 Spark 独立主 URL 更改 master 属性值?我可以设置哪些属性以在独立模式下运行Spark 作业?

【问题讨论】:

    标签: airflow


    【解决方案1】:

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

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

    您还可以在 extras 中提供以下命令:

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

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

    【讨论】:

    • 上述解决方案通过更改 spark-default 的连接详细信息完美运行。谢谢
    • 我正在运行两个容器,其中一个用于火花,另一个用于气流。如何设置 spark-submit 二进制文件?
    • 注意{"queue": "root.default", "deploy_mode": "cluster", "spark_home": "", "spark_binary": "spark-submit", "namespace": "default"},应该是deploy-mode而不是deploy_mode,使用spark 2.4.2 前者不行,调试起来不方便:)
    • {"queue": "default", "deploy-mode": "cluster", "spark-home": "", "spark-binary": "spark-submit", "namespace": "default"} 来自airflow.readthedocs.io/en/latest/howto/connection/spark.html
    猜你喜欢
    • 2017-08-27
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2017-06-01
    相关资源
    最近更新 更多