python-3.x - 如何获取使用 Dataproc 工作流模板提交的 jobId
问题描述
在用 Python 编写的 Airflow 运算符 ( DataprocWorkflowTemplateInstantiateInlineOperator )的帮助下,我使用 Dataproc 工作流模板提交了 Hive 作业。提交作业后,某些名称将被分配为 jobId(例如:)job0-abc2def65gh12
。
由于我无法获得 jobId,我尝试将 jobId 作为参数从 REST API 传递,但它不起作用。
我可以获取 jobId 吗,或者,如果不可能,我可以将 jobId 作为参数传递吗?
解决方案
JobId 将作为从 Instantiate 操作返回的对象中的metadata
字段的一部分提供。Operation
有关如何使用元数据的信息,请参阅这篇 [1] 文章。
Airflow 运算符仅对 Operation 进行轮询 [2],但不返回最终的 Operation 对象。您可以尝试将返回添加到execute
.
另一种选择是在工作流完成后使用 dataproc rest API [3]。分配给工作流本身的任何标签都将传播到集群和作业,因此您可以进行列表作业调用。例如,过滤器参数可能如下所示:filter = labels.my-label=12345
[1] 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
[3] https://cloud.google.com/dataproc/docs/reference/rest/v1/projects.regions.jobs/list
推荐阅读
- html - 怎么做
材料 ui 抽屉演示中的 100% 高度 - android - LazyColumn 项目位置
- batch-file - 批处理文件在 Windows 10 中无法正确运行
- javascript - 浏览器卡住上传大文件
- x86-64 - 是否可以在具有 64 位处理器的 32 位操作系统上运行 64 位代码?
- google-app-engine - Google App Engine:应用引擎仪表板与计费导出之间的不可预测的成本和差异
- javascript - 为什么我没有必要的 jQuery DataTables 分页按钮?
- variables - 变量的SSIS值不变
- swift - 如何使用 Swift 找到一个免费的本地端口?
- ios - Xamarin 窗体停止屏幕截图并在 ios 中记录