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 命令。

此條目有幫助嗎?