airflow.providers.google.cloud.hooks.dataproc

此模块包含一个 Google Cloud Dataproc hook。

模块内容

DataProcJobBuilder

用于构建 Dataproc 作业的辅助类。

DataprocHook

Google Cloud Dataproc API。

DataprocAsyncHook

与 Google Cloud Dataproc API 的异步交互。

exception airflow.providers.google.cloud.hooks.dataproc.DataprocResourceIsNotReadyError[源]

基类: airflow.exceptions.AirflowException

当资源未准备好创建 Dataproc 集群时引发。

class airflow.providers.google.cloud.hooks.dataproc.DataProcJobBuilder(project_id, task_id, cluster_name, job_type, properties=None)[源]

用于构建 Dataproc 作业的辅助类。

add_labels(labels=None)[源]

为 Dataproc 作业设置标签。

参数

labels (dict | None) – 作业查询的标签。

add_variables(variables=None)[源]

为 Dataproc 作业设置变量。

参数

variables (dict | None) – 作业查询的变量。

add_args(args=None)[源]

为 Dataproc 作业设置参数。

参数

args (list[str] | None) – 作业查询的参数。

add_query(query)[源]

为 Dataproc 作业添加查询。

参数

query (str | list[str]) – 作业的查询。

add_query_uri(query_uri)[源]

为 Dataproc 作业设置查询 URI。

参数

query_uri (str) – 作业查询的 URI。

add_jar_file_uris(jars=None)[源]

为 Dataproc 作业设置 jars URI。

参数

jars (list[str] | None) – jars URI 列表

add_archive_uris(archives=None)[源]

为 Dataproc 作业设置 archives URI。

参数

archives (list[str] | None) – archives URI 列表

add_file_uris(files=None)[源]

为 Dataproc 作业设置文件 URI。

参数

files (list[str] | None) – 文件 URI 列表

add_python_file_uris(pyfiles=None)[源]

为 Dataproc 作业设置 python 文件 URI。

参数

pyfiles (list[str] | None) – python 文件 URI 列表

set_main(main_jar=None, main_class=None)[源]

设置 Dataproc 主类。

参数
  • main_jar (str | None) – 主文件的 URI。

  • main_class (str | None) – 主类的名称。

引发

ValueError

set_python_main(main)[源]

设置 Dataproc 主 python 文件 URI。

参数

main (str) – python 主文件的 URI。

set_job_name(name)[源]

设置 Dataproc 作业名称。

作业名称已清理,将点替换为下划线。

参数

name (str) – 作业名称。

build()[source]

返回 Dataproc 作业。

返回

Dataproc 作业

返回类型

dict

class airflow.providers.google.cloud.hooks.dataproc.DataprocHook(gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]

基类:airflow.providers.google.common.hooks.base_google.GoogleBaseHook

Google Cloud Dataproc API。

在 hook 中使用 project_id 的所有方法都必须使用关键字参数而不是位置参数来调用。

get_cluster_client(region=None)[source]

创建 ClusterControllerClient。

get_template_client(region=None)[source]

创建 WorkflowTemplateServiceClient。

get_job_client(region=None)[source]

创建 JobControllerClient。

get_batch_client(region=None)[source]

创建 BatchControllerClient。

get_operations_client(region)[source]

创建 OperationsClient。

dataproc_options_to_args(options)[source]

从参数字典返回格式化的集群参数。

参数

options (dict) – 带有选项的字典

返回

参数列表

返回类型

list[str]

wait_for_operation(operation, timeout=None, result_retry=DEFAULT)[source]

等待长时间运行的操作完成。

create_cluster(region, project_id, cluster_name, cluster_config=None, virtual_cluster_config=None, labels=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

在指定的项目中创建集群。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 要创建的集群的名称。

  • labels (dict[str, str] | None) – 将分配给已创建集群的标签。

  • cluster_config (dict | google.cloud.dataproc_v1.Cluster | None) – 要创建的集群配置。 如果提供了 dict,则它的格式必须与 protobuf 消息 ClusterConfig 相同。

  • virtual_cluster_config (dict | None) – 虚拟集群配置,用于创建不直接控制底层计算资源的 Dataproc 集群,例如,当使用 VirtualClusterConfig 创建 Dataproc-on-GKE 集群时。

  • request_id (str | None) – 用于标识请求的唯一 ID。 如果服务器收到两个具有相同 ID 的 *CreateClusterRequest* 请求,则第二个请求将被忽略,并返回为第一个请求创建的操作并存储在后端。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

delete_cluster(region, cluster_name, project_id, cluster_uuid=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

删除项目中的集群。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 要删除的集群的名称。

  • cluster_uuid (str | None) – 如果指定,则如果不存在具有 UUID 的集群,则 RPC 应失败。

  • request_id (str | None) – 用于标识请求的唯一 ID。 如果服务器收到两个具有相同 ID 的 *DeleteClusterRequest* 请求,则第二个请求将被忽略,并返回为第一个请求创建的操作并存储在后端。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

diagnose_cluster(region, cluster_name, project_id, tarball_gcs_dir=None, diagnosis_interval=None, jobs=None, yarn_application_ids=None, retry=DEFAULT, timeout=None, metadata=())[source]

获取集群诊断信息。

操作完成后,响应包含诊断输出报告的 Cloud Storage URI,其中包含收集的诊断摘要。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 集群的名称。

  • tarball_gcs_dir (str | None) – 诊断 tarball 的输出 Cloud Storage 目录。如果未指定,将使用集群暂存存储桶中的特定于任务的目录。

  • diagnosis_interval (dict | google.type.interval_pb2.Interval | None) – 在集群上执行诊断的时间间隔。

  • jobs (collections.abc.MutableSequence[str] | None) – 指定要执行诊断的作业列表。格式:projects/{project}/regions/{region}/jobs/{job}

  • yarn_application_ids (collections.abc.MutableSequence[str] | None) – 指定要执行诊断的 yarn 应用程序列表。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

get_cluster(region, cluster_name, project_id, retry=DEFAULT, timeout=None, metadata=())[source]

获取项目中集群的资源表示。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 集群名称。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

list_clusters(region, filter_, project_id, page_size=None, retry=DEFAULT, timeout=None, metadata=())[source]

列出项目中所有 regions/{region}/clusters。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • filter – 用于约束集群的过滤器。区分大小写。

  • page_size (int | None) – 底层 API 响应中包含的最大资源数。如果按资源执行页面流式传输,则此参数不影响返回值。如果按页面执行页面流式传输,则此参数决定页面中的最大资源数。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

update_cluster(cluster_name, cluster, update_mask, project_id, region, graceful_decommission_timeout=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

更新项目中的集群。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 集群名称。

  • cluster (dict | google.cloud.dataproc_v1.Cluster) – 集群的更改。如果提供了 dict,则它必须与 protobuf 消息 Cluster 的格式相同。

  • update_mask (dict | google.protobuf.field_mask_pb2.FieldMask) –

    指定要更新的字段的路径,相对于 Cluster。例如,要将集群中的工作节点数更改为 5,则应将其指定为 config.worker_config.num_instances,并且 PATCH 请求正文将指定新值

    {"config": {"workerConfig": {"numInstances": "5"}}}
    

    同样,要将集群中可抢占工作节点数更改为 5,则应将其指定为 config.secondary_worker_config.num_instances,并且 PATCH 请求正文将是

    {"config": {"secondaryWorkerConfig": {"numInstances": "5"}}}
    

    如果提供了 dict,则它必须与 protobuf 消息 FieldMask 的格式相同。

  • graceful_decommission_timeout (dict | google.protobuf.duration_pb2.Duration | None) –

    YARN 正常停用超时。正常停用允许从集群中删除节点,而不会中断正在进行的作业。超时指定在强制删除节点(并可能中断作业)之前等待正在进行的作业完成的时间。默认超时为 0(用于强制停用),最大允许超时为一天。

    仅在 Dataproc 镜像版本 1.2 及更高版本上支持。

    如果提供了 dict,则它必须与 protobuf 消息 Duration 的格式相同。

  • request_id (str | None) – 用于标识请求的唯一 ID。如果服务器收到两个具有相同 ID 的 UpdateClusterRequest 请求,则将忽略第二个请求,并返回为第一个请求创建并存储在后端的操作。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

start_cluster(region, project_id, cluster_name, cluster_uuid=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

启动项目中的集群。

参数
  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • cluster_name (str) – 集群名称。

  • cluster_uuid (str | None) – 集群 UUID

  • request_id (str | None) – 用于标识请求的唯一 ID。如果服务器收到两个具有相同 ID 的 UpdateClusterRequest 请求,则将忽略第二个请求,并返回为第一个请求创建并存储在后端的操作。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

返回

一个 google.api_core.operation.Operation 的实例

返回类型

google.api_core.operation.Operation

stop_cluster(region, project_id, cluster_name, cluster_uuid=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

启动项目中的集群。

参数
  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • cluster_name (str) – 集群名称。

  • cluster_uuid (str | None) – 集群 UUID

  • request_id (str | None) – 用于标识请求的唯一 ID。如果服务器收到两个具有相同 ID 的 UpdateClusterRequest 请求,则将忽略第二个请求,并返回为第一个请求创建并存储在后端的操作。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

返回

一个 google.api_core.operation.Operation 的实例

返回类型

google.api_core.operation.Operation

create_workflow_template(template, project_id, region, retry=DEFAULT, timeout=None, metadata=())[source]

创建一个新的工作流模板。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • template (dict | google.cloud.dataproc_v1.WorkflowTemplate) – 要创建的 Dataproc 工作流模板。如果提供字典,则它必须与protobuf消息 WorkflowTemplate的格式相同。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

instantiate_workflow_template(template_name, project_id, region, version=None, request_id=None, parameters=None, retry=DEFAULT, timeout=None, metadata=())[source]

实例化模板并开始执行。

参数
  • template_name (str) – 要实例化的模板名称。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • version (int | None) – 要实例化的工作流模板的版本。如果指定,则只有当工作流模板的当前版本具有提供的版本时,才会实例化工作流。此选项不能用于实例化先前版本的工作流模板。

  • request_id (str | None) – 一个标签,用于防止运行具有相同标签的多个并发工作流实例。这可以降低由于重试而启动的并发实例的风险。

  • parameters (dict[str, str] | None) – 从参数名称到应为这些参数使用的值的映射。值不能超过 100 个字符。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

instantiate_inline_workflow_template(template, project_id, region, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

实例化模板并开始执行。

参数
  • template (dict | google.cloud.dataproc_v1.WorkflowTemplate) – 要实例化的工作流模板。如果提供字典,则它必须与protobuf消息 WorkflowTemplate 的格式相同。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • request_id (str | None) – 一个标签,用于防止运行具有相同标签的多个并发工作流实例。这可以降低由于重试而启动的并发实例的风险。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

wait_for_job(job_id, project_id, region, wait_time=10, timeout=None)[source]

轮询作业以检查其是否已完成。

参数
  • job_id (str) – Dataproc 作业 ID。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • wait_time (int) – 检查之间的秒数。

  • timeout (int | None) – 等待作业就绪的秒数。

get_job(job_id, project_id, region, retry=DEFAULT, timeout=None, metadata=())[source]

获取项目中作业的资源表示形式。

参数
  • job_id (str) – Dataproc 作业 ID。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

submit_job(job, project_id, region, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

将作业提交到集群。

参数
  • job (dict | google.cloud.dataproc_v1.Job) – 作业资源。如果提供字典,则它必须与protobuf消息 Job 的格式相同。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • request_id (str | None) – 一个标签,用于防止运行具有相同标签的多个并发工作流实例。这可以降低由于重试而启动的并发实例的风险。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

cancel_job(job_id, project_id, region=None, retry=DEFAULT, timeout=None, metadata=())[source]

启动一个取消作业的请求。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str | None) – 用于处理请求的 Cloud Dataproc 区域。

  • job_id (str) – 作业 ID。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

create_batch(region, project_id, batch, batch_id=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

创建一个批处理工作负载。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • batch (dict | google.cloud.dataproc_v1.Batch) – 要创建的批处理。

  • batch_id (str | None) – 用于批处理的 ID,这将成为批处理资源名称的最后一部分。此值必须为 4-63 个字符。有效字符为 [a-z][0-9]-

  • request_id (str | None) – 用于标识请求的唯一 ID。如果服务器收到两个具有相同 ID 的 CreateBatchRequest 请求,则第二个请求将被忽略,并且返回为第一个请求创建并存储在后端的运算。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

delete_batch(batch_id, region, project_id, retry=DEFAULT, timeout=None, metadata=())[source]

删除批处理工作负载资源。

参数
  • batch_id (str) – 批处理 ID。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

get_batch(batch_id, region, project_id, retry=DEFAULT, timeout=None, metadata=())[source]

获取批处理工作负载资源表示。

参数
  • batch_id (str) – 批处理 ID。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

list_batches(region, project_id, page_size=None, page_token=None, retry=DEFAULT, timeout=None, metadata=(), filter=None, order_by=None)[source]

列出批处理工作负载。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • page_size (int | None) – 每个响应中返回的最大批处理数。服务可能返回小于此值的值。默认页面大小为 20;最大页面大小为 1000。

  • page_token (str | None) – 从之前的 ListBatches 调用接收的页面令牌。提供此令牌以检索后续页面。

  • retry (google.api_core.retry.Retry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。 如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

  • filter (str | None) – ListBatchesRequest 中指定的结果过滤器

  • order_by (str | None) – 如何对 ListBatchesRequest 中指定的结果排序

wait_for_batch(batch_id, region, project_id, wait_check_interval=10, retry=DEFAULT, timeout=None, metadata=())[source]

等待批处理作业完成。

在提交批处理作业后,操作符会等待作业完成。但是,当 Airflow 重新启动或任务 pid 因任何原因被终止时,此钩子非常有用。在这种情况下,创建操作将再次发生,捕获引发的 AlreadyExists 异常,并在此函数中等待完成。

参数
  • batch_id (str) – 批处理 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • wait_check_interval (int) – 检查作业完成情况之间暂停的时间量。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

check_error_for_resource_is_not_ready_msg(error_msg)[source]

检查错误的理由是否为资源未就绪。

class airflow.providers.google.cloud.hooks.dataproc.DataprocAsyncHook(gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]

基类:airflow.providers.google.common.hooks.base_google.GoogleBaseHook

与 Google Cloud Dataproc API 的异步交互。

在 hook 中使用 project_id 的所有方法都必须使用关键字参数而不是位置参数来调用。

get_cluster_client(region=None)[source]

创建一个 ClusterControllerAsyncClient。

get_template_client(region=None)[source]

创建一个 WorkflowTemplateServiceAsyncClient。

get_job_client(region=None)[source]

创建 JobControllerAsyncClient。

get_batch_client(region=None)[source]

创建 BatchControllerAsyncClient。

get_operations_client(region)[source]

创建 OperationsClient。

async create_cluster(region, project_id, cluster_name, cluster_config=None, virtual_cluster_config=None, labels=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

在项目中创建一个集群。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 要创建的集群的名称。

  • labels (dict[str, str] | None) – 将分配给已创建集群的标签。

  • cluster_config (dict | google.cloud.dataproc_v1.Cluster | None) – 要创建的集群配置。 如果提供了 dict,则它的格式必须与 protobuf 消息 ClusterConfig 相同。

  • virtual_cluster_config (dict | None) – 虚拟集群配置,用于创建不直接控制底层计算资源的 Dataproc 集群,例如,当使用 VirtualClusterConfig 创建 Dataproc-on-GKE 集群时。

  • request_id (str | None) – 用于标识请求的唯一 ID。 如果服务器收到两个具有相同 ID 的 *CreateClusterRequest* 请求,则第二个请求将被忽略,并返回为第一个请求创建的操作并存储在后端。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async delete_cluster(region, cluster_name, project_id, cluster_uuid=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

删除项目中的集群。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 要删除的集群的名称。

  • cluster_uuid (str | None) – 如果指定,则如果不存在具有 UUID 的集群,则 RPC 应失败。

  • request_id (str | None) – 用于标识请求的唯一 ID。 如果服务器收到两个具有相同 ID 的 *DeleteClusterRequest* 请求,则第二个请求将被忽略,并返回为第一个请求创建的操作并存储在后端。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async diagnose_cluster(region, cluster_name, project_id, tarball_gcs_dir=None, diagnosis_interval=None, jobs=None, yarn_application_ids=None, retry=DEFAULT, timeout=None, metadata=())[source]

获取集群诊断信息。

操作完成后,响应包含诊断输出报告的 Cloud Storage URI,其中包含收集的诊断摘要。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 集群的名称。

  • tarball_gcs_dir (str | None) – 诊断 tarball 的输出 Cloud Storage 目录。如果未指定,将使用集群暂存存储桶中的特定于任务的目录。

  • diagnosis_interval (dict | google.type.interval_pb2.Interval | None) – 在集群上执行诊断的时间间隔。

  • jobs (collections.abc.MutableSequence[str] | None) – 指定要执行诊断的作业列表。格式:projects/{project}/regions/{region}/jobs/{job}

  • yarn_application_ids (collections.abc.MutableSequence[str] | None) – 指定要执行诊断的 yarn 应用程序列表。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async get_cluster(region, cluster_name, project_id, retry=DEFAULT, timeout=None, metadata=())[source]

获取项目中集群的资源表示。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 集群名称。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async list_clusters(region, filter_, project_id, page_size=None, retry=DEFAULT, timeout=None, metadata=())[source]

列出项目中所有 regions/{region}/clusters。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • filter – 用于约束集群的过滤器。区分大小写。

  • page_size (int | None) – 底层 API 响应中包含的最大资源数。如果按资源执行页面流式传输,则此参数不影响返回值。如果按页面执行页面流式传输,则此参数决定页面中的最大资源数。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async update_cluster(cluster_name, cluster, update_mask, project_id, region, graceful_decommission_timeout=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[source]

更新项目中的集群。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • cluster_name (str) – 集群名称。

  • cluster (dict | google.cloud.dataproc_v1.Cluster) – 集群的更改。如果提供了 dict,则它必须与 protobuf 消息 Cluster 的格式相同。

  • update_mask (dict | google.protobuf.field_mask_pb2.FieldMask) –

    指定要更新的字段的路径,相对于 Cluster。例如,要将集群中的工作节点数更改为 5,则应将其指定为 config.worker_config.num_instances,并且 PATCH 请求正文将指定新值

    {"config": {"workerConfig": {"numInstances": "5"}}}
    

    同样,要将集群中可抢占工作节点数更改为 5,则应将其指定为 config.secondary_worker_config.num_instances,并且 PATCH 请求正文将是

    {"config": {"secondaryWorkerConfig": {"numInstances": "5"}}}
    

    如果提供了 dict,则它必须与 protobuf 消息 FieldMask 的格式相同。

  • graceful_decommission_timeout (dict | google.protobuf.duration_pb2.Duration | None) –

    YARN 正常停用超时。正常停用允许从集群中删除节点,而不会中断正在进行的作业。超时指定在强制删除节点(并可能中断作业)之前等待正在进行的作业完成的时间。默认超时为 0(用于强制停用),最大允许超时为一天。

    仅在 Dataproc 镜像版本 1.2 及更高版本上支持。

    如果提供了 dict,则它必须与 protobuf 消息 Duration 的格式相同。

  • request_id (str | None) – 用于标识请求的唯一 ID。如果服务器收到两个具有相同 ID 的 UpdateClusterRequest 请求,则将忽略第二个请求,并返回为第一个请求创建并存储在后端的操作。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async create_workflow_template(template, project_id, region, retry=DEFAULT, timeout=None, metadata=())[source]

创建一个新的工作流模板。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • template (dict | google.cloud.dataproc_v1.WorkflowTemplate) – 要创建的 Dataproc 工作流模板。如果提供字典,则它必须与protobuf消息 WorkflowTemplate的格式相同。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async instantiate_workflow_template(template_name, project_id, region, version=None, request_id=None, parameters=None, retry=DEFAULT, timeout=None, metadata=())[source]

实例化模板并开始执行。

参数
  • template_name (str) – 要实例化的模板名称。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • version (int | None) – 要实例化的工作流模板的版本。如果指定,则只有当工作流模板的当前版本具有提供的版本时,才会实例化工作流。此选项不能用于实例化先前版本的工作流模板。

  • request_id (str | None) – 一个标签,用于防止运行具有相同标签的多个并发工作流实例。这可以降低由于重试而启动的并发实例的风险。

  • parameters (dict[str, str] | None) – 从参数名称到应为这些参数使用的值的映射。值不能超过 100 个字符。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async instantiate_inline_workflow_template(template, project_id, region, request_id=None, retry=DEFAULT, timeout=None, metadata=())[源代码]

实例化模板并开始执行。

参数
  • template (dict | google.cloud.dataproc_v1.WorkflowTemplate) – 要实例化的工作流模板。如果提供字典,则它必须与protobuf消息 WorkflowTemplate 的格式相同。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • request_id (str | None) – 一个标签,用于防止运行具有相同标签的多个并发工作流实例。这可以降低由于重试而启动的并发实例的风险。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async get_operation(region, operation_name)[源代码]
async get_job(job_id, project_id, region, retry=DEFAULT, timeout=None, metadata=())[源代码]

获取项目中作业的资源表示形式。

参数
  • job_id (str) – Dataproc 作业 ID。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async submit_job(job, project_id, region, request_id=None, retry=DEFAULT, timeout=None, metadata=())[源代码]

将作业提交到集群。

参数
  • job (dict | google.cloud.dataproc_v1.Job) – 作业资源。如果提供字典,则它必须与protobuf消息 Job 的格式相同。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • request_id (str | None) – 一个标签,用于防止运行具有相同标签的多个并发工作流实例。这可以降低由于重试而启动的并发实例的风险。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async cancel_job(job_id, project_id, region=None, retry=DEFAULT, timeout=None, metadata=())[源代码]

启动一个取消作业的请求。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str | None) – 用于处理请求的 Cloud Dataproc 区域。

  • job_id (str) – 作业 ID。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async create_batch(region, project_id, batch, batch_id=None, request_id=None, retry=DEFAULT, timeout=None, metadata=())[源代码]

创建一个批处理工作负载。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • batch (dict | google.cloud.dataproc_v1.Batch) – 要创建的批处理。

  • batch_id (str | None) – 用于批处理的 ID,这将成为批处理资源名称的最后一部分。此值必须为 4-63 个字符。有效字符为 [a-z][0-9]-

  • request_id (str | None) – 用于标识请求的唯一 ID。如果服务器收到两个具有相同 ID 的 CreateBatchRequest 请求,则第二个请求将被忽略,并且返回为第一个请求创建并存储在后端的运算。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async delete_batch(batch_id, region, project_id, retry=DEFAULT, timeout=None, metadata=())[源代码]

删除批处理工作负载资源。

参数
  • batch_id (str) – 批处理 ID。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async get_batch(batch_id, region, project_id, retry=DEFAULT, timeout=None, metadata=())[源代码]

获取批处理工作负载资源表示。

参数
  • batch_id (str) – 批处理 ID。

  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

async list_batches(region, project_id, page_size=None, page_token=None, retry=DEFAULT, timeout=None, metadata=(), filter=None, order_by=None)[源代码]

列出批处理工作负载。

参数
  • project_id (str) – 集群所属的 Google Cloud 项目 ID。

  • region (str) – 处理请求的 Cloud Dataproc 区域。

  • page_size (int | None) – 每个响应中返回的最大批处理数。服务可能返回小于此值的值。默认页面大小为 20;最大页面大小为 1000。

  • page_token (str | None) – 从之前的 ListBatches 调用接收的页面令牌。提供此令牌以检索后续页面。

  • retry (google.api_core.retry_async.AsyncRetry | google.api_core.gapic_v1.method._MethodDefault) – 用于重试请求的重试对象。如果为 None,则不会重试请求。

  • timeout (float | None) – 等待请求完成的时间(以秒为单位)。 如果指定了 retry,则超时适用于每个单独的尝试。

  • metadata (collections.abc.Sequence[tuple[str, str]]) – 提供给方法的其他元数据。

  • filter (str | None) – ListBatchesRequest 中指定的结果过滤器

  • order_by (str | None) – 如何对 ListBatchesRequest 中指定的结果排序

此条目是否有帮助?