airflow.providers.apache.spark.operators.spark_submit

SparkSubmitOperator

包裝 spark-submit 二進位制檔案以啟動 spark-submit 作業;需要 PATH 中存在 "spark-submit" 二進位制檔案。

模組內容

class airflow.providers.apache.spark.operators.spark_submit.SparkSubmitOperator(*, application='', 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='arrow-spark', 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, openlineage_inject_parent_job_info=conf.getboolean('openlineage', 'spark_inject_parent_job_info', fallback=False), openlineage_inject_transport_info=conf.getboolean('openlineage', 'spark_inject_transport_info', fallback=False), **kwargs)[source]

Bases: airflow.models.BaseOperator

包裝 spark-submit 二進位制檔案以啟動 spark-submit 作業;需要 PATH 中存在 "spark-submit" 二進位制檔案。

另請參閱

有關如何使用此 Operator 的更多資訊,請檢視指南:SparkSubmitOperator

引數:
  • application (str) – 作為作業提交的應用程式,可以是 jar 或 py 檔案。(支援模板)

  • conf (dict[Any, Any] | None) – 任意 Spark 配置屬性。(支援模板)

  • conn_id (str) – 在 Airflow 管理介面中配置的 spark 連線 ID。當提供了無效的 connection_id 時,將預設為 yarn。

  • files (str | None) – 將附加檔案上傳到執行作業的 executor,用逗號分隔。檔案將放置在每個 executor 的工作目錄中。例如,序列化物件。(支援模板)

  • py_files (str | None) – 作業使用的附加 python 檔案,可以是 .zip, .egg 或 .py 檔案。(支援模板)

  • jars (str | None) – 提交要上傳並放置在 driver 和 executor classpath 中的附加 jar 檔案。(支援模板)

  • driver_class_path (str | None) – 附加的、driver 特定的 classpath 設定。(支援模板)

  • java_class (str | None) – Java 應用程式的主類

  • packages (str | None) – 要包含在 driver 和 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) 每個 executor 的核心數 (預設: 2)

  • executor_memory (str | None) – 每個 executor 的記憶體 (例如 1000M, 2G) (預設: 1G)

  • driver_memory (str | None) – 分配給 driver 的記憶體 (例如 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) – 在叢集模式下輪詢 driver 狀態之間的等待秒數 (預設: 1)

  • application_args (list[Any] | None) – 提交的應用程式的引數。(支援模板)

  • env_vars (dict[str, Any] | None) – spark-submit 的環境變數。也支援 yarn 和 k8s 模式。(支援模板)

  • verbose (bool) – 是否向 spark-submit 程序傳遞 verbose 標誌以進行除錯

  • spark_binary (str | None) – 用於 spark 提交的命令。某些發行版可能使用 spark2-submit 或 spark3-submit。(將覆蓋連線的 extra JSON 中定義的任何 spark_binary)

  • properties_file (str | None) – 從中載入額外屬性的檔案的路徑。如果未指定,將查詢 conf/spark-defaults.conf。

  • yarn_queue (str | None) – 提交應用程式的 YARN 佇列名稱。(將覆蓋連線的 extra JSON 中定義的任何 yarn queue)

  • deploy_mode (str | None) – 是否將 driver 部署在 worker 節點上 (叢集模式) 或本地作為客戶端執行。(將覆蓋連線的 extra JSON 中定義的任何 deployment mode)

  • use_krb5ccache (bool) – 如果為 True,配置 spark 使用 ticket 快取而不是依賴 keytab 進行 Kerberos 登入

template_fields: collections.abc.Sequence[str] = ('application', 'conf', 'files', 'py_files', 'jars', 'driver_class_path', 'packages',...[source]
ui_color = '#FF9933'[source]
application = ''[source]
conf = None[source]
files = None[source]
py_files = None[source]
driver_class_path = None[source]
jars = None[source]
packages = None[source]
exclude_packages = None[source]
keytab = None[source]
principal = None[source]
proxy_user = None[source]
name = 'arrow-spark'[source]
application_args = None[source]
env_vars = None[source]
properties_file = None[source]
execute(context)[source]

呼叫 SparkSubmitHook 執行提供的 spark 作業。

on_kill()[source]

覆蓋此方法以在任務例項被終止時清理子程序。

在 Operator 中使用 threading, subprocess 或 multiprocessing 模組時,需要進行清理,否則會留下殭屍程序。

此條目是否有幫助?