airflow.providers.apache.spark.hooks.spark_submit

属性

DEFAULT_SPARK_BINARY

ALLOWED_SPARK_BINARIES

SparkSubmitHook

封装 `spark-submit` 二进制文件以启动 `spark-submit` 作业;需要 `spark-submit` 二进制文件位于 PATH 中。

模块内容

airflow.providers.apache.spark.hooks.spark_submit.DEFAULT_SPARK_BINARY = 'spark-submit'[源码]
airflow.providers.apache.spark.hooks.spark_submit.ALLOWED_SPARK_BINARIES[源码]
class airflow.providers.apache.spark.hooks.spark_submit.SparkSubmitHook(conf=None, conn_id='spark_default', files=None, py_files=None, archives=None, driver_class_path=None, jars=None, java_class=None, packages=None, exclude_packages=None, repositories=None, total_executor_cores=None, executor_cores=None, executor_memory=None, driver_memory=None, keytab=None, principal=None, proxy_user=None, name='default-name', num_executors=None, status_poll_interval=1, application_args=None, env_vars=None, verbose=False, spark_binary=None, properties_file=None, yarn_queue=None, deploy_mode=None, *, use_krb5ccache=False)[源码]

基类: airflow.hooks.base.BaseHook, airflow.utils.log.logging_mixin.LoggingMixin

封装 `spark-submit` 二进制文件以启动 `spark-submit` 作业;需要 “spark-submit” 二进制文件位于 PATH 中。

参数:
  • conf (dict[str, Any] | None) – 任意 Spark 配置属性

  • spark_conn_id – Airflow 管理界面中配置的 spark 连接 ID。如果提供无效的 `connection_id`,则将默认为 yarn。

  • files (str | None) – 上传额外文件到运行作业的 executor,用逗号分隔。文件将放置在每个 executor 的工作目录中。例如,序列化对象。

  • py_files (str | None) – 作业使用的额外 Python 文件,可以是 .zip、.egg 或 .py。

  • archives (str | None) – Spark 应解压(并可能使用 #ALIAS 标记)到应用程序工作目录中的归档文件。

  • driver_class_path (str | None) – 额外的、驱动程序特定的 classpath 设置。

  • jars (str | None) – 提交额外 jar 文件上传并放置在驱动程序和 executor 的 classpath 中。

  • java_class (str | None) – Java 应用程序的主类

  • packages (str | None) – 要包含在驱动程序和 executor 的 classpath 中的 jar 包的 Maven 坐标列表,用逗号分隔。

  • exclude_packages (str | None) – 在解析 ‘packages’ 中提供的依赖项时要排除的 jar 包的 Maven 坐标列表,用逗号分隔。

  • repositories (str | None) – 要搜索与 ‘packages’ 一起提供的 Maven 坐标的额外远程仓库列表,用逗号分隔。

  • total_executor_cores (int | None) – (仅限 Standalone 和 Mesos) 所有 executor 的总核数 (默认值: worker 上所有可用核数)

  • executor_cores (int | None) – (仅限 Standalone、YARN 和 Kubernetes) 每个 executor 的核数 (默认值: 2)

  • executor_memory (str | None) – 每个 executor 的内存 (例如 1000M, 2G) (默认值: 1G)

  • driver_memory (str | None) – 分配给驱动程序的内存 (例如 1000M, 2G) (默认值: 1G)

  • keytab (str | None) – 包含 keytab 的文件的完整路径(将覆盖连接的 extra JSON 中定义的任何 keytab)

  • principal (str | None) – 用于 keytab 的 kerberos principal 名称(将覆盖连接的 extra JSON 中定义的任何 principal)

  • proxy_user (str | None) – 提交应用程序时模拟的用户

  • name (str) – 作业名称 (默认为 airflow-spark)

  • num_executors (int | None) – 要启动的 executor 数量

  • status_poll_interval (int) – 在集群模式下轮询驱动程序状态之间的等待秒数 (默认值: 1)

  • application_args (list[Any] | None) – 提交的应用程序的参数

  • env_vars (dict[str, Any] | None) – `spark-submit` 的环境变量。也支持 yarn 和 k8s 模式。

  • verbose (bool) – 是否将 verbose 标志传递给 `spark-submit` 进程进行调试

  • spark_binary (str | None) – 用于 `spark submit` 的命令。一些发行版可能使用 `spark2-submit` 或 `spark3-submit`。(将覆盖连接的 extra JSON 中定义的任何 `spark_binary`)

  • properties_file (str | None) – 加载额外属性的文件的路径。如果未指定,将查找 `conf/spark-defaults.conf`。

  • yarn_queue (str | None) – 提交应用程序的 YARN 队列名称。(将覆盖连接的 extra JSON 中定义的任何 yarn 队列)

  • deploy_mode (str | None) – 是否将驱动程序部署在 worker 节点 (cluster 模式) 或本地作为客户端 (client 模式)。(将覆盖连接的 extra JSON 中定义的任何部署模式)

  • use_krb5ccache (bool) – 如果为 True,配置 spark 使用 ticket cache 而不是依赖 keytab 进行 Kerberos 登录

conn_name_attr = 'conn_id'[源码]
default_conn_name = 'spark_default'[源码]
conn_type = 'spark'[源码]
hook_name ='Spark'[源码]
classmethod get_ui_field_behaviour()[源码]

返回 Spark 连接的自定义 UI 字段行为。

classmethod get_connection_form_widgets()[源码]

返回要添加到 Spark 连接表单的连接 widget。

spark_binary = None[源码]
get_conn()[源码]

返回 hook 的连接。

submit(application='', **kwargs)[源码]

远程 Popen 执行 `spark-submit` 作业。

参数:
  • application (str) – 提交的应用程序、jar 或 py 文件

  • kwargs (Any) – Popen 的额外参数 (参见 subprocess.Popen)

on_kill()[源码]

杀死 Spark submit 命令。

此条目有帮助吗?