我已在 Airflow 操作员的帮助下使用 Dataproc 工作流模板提交了 Hive 作业(DataprocWorkflowTemplateInstantiateInlineOperator https://airflow.readthedocs.io/en/stable/integration.html#airflow.contrib.operators.dataproc_operator.DataprocWorkflowTemplateInstantiateInlineOperator)用Python编写。提交作业后,某些名称将被指定为 jobId(例如:job0-abc2def65gh12
).
由于我无法获取 jobId,我尝试将 jobId 作为参数从 REST API 传递,但该 API 不起作用。
我可以获取 jobId,或者如果不可能,我可以将 jobId 作为参数传递吗?
JobId 将作为以下内容的一部分提供metadata
领域在Operation
从实例化操作返回的对象。请参阅这篇 [1] 文章了解如何使用元数据。
Airflow 运算符仅轮询 [2] 操作,但不返回最终的操作对象。您可以尝试添加返回execute
.
另一种选择是在工作流程完成后使用 dataproc Rest API [3]。分配给工作流本身的任何标签都将传播到集群和作业,以便您可以执行列表作业调用。例如,过滤器参数可能如下所示:filter = labels.my-label=12345
[1] https://cloud.google.com/dataproc/docs/concepts/workflows/debugging#using_workflowmetadata https://cloud.google.com/dataproc/docs/concepts/workflows/debugging#using_workflowmetadata
[2] https://github.com/apache/airflow/blob/master/airflow/contrib/operators/dataproc_operator.py#L1376 https://github.com/apache/airflow/blob/master/airflow/contrib/operators/dataproc_operator.py#L1376
[3] https://cloud.google.com/dataproc/docs/reference/rest/v1/projects.regions.jobs/list https://cloud.google.com/dataproc/docs/reference/rest/v1/projects.regions.jobs/list
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)