Как получить идентификатор задания, который был отправлен с использованием шаблона рабочего процесса Dataproc - PullRequest
0 голосов
/ 06 февраля 2019

Я отправил задание Hive с использованием шаблона рабочего процесса Dataproc с помощью оператора Airflow ( DataprocWorkflowTemplateInstantiateInlineOperator ), написанного на Python.Как только задание будет отправлено, имя будет присвоено в качестве jobId (пример: job0-abc2def65gh12).

Поскольку я не смог получить jobId, я попытался передать jobId в качестве параметра из REST API, который не работает.

Могу ли я получить jobId или, если это невозможно, я могу передать jobId в качестве параметра?

1 Ответ

0 голосов
/ 06 февраля 2019

JobId будет доступен как часть поля metadata в Operation объекте, который возвращается из операции Instantiate.См. Эту [1] статью о том, как работать с метаданными.

Оператор воздушного потока только опрашивает [2] операции, но не возвращает конечный объект операции.Вы можете попытаться добавить возврат к execute.

Другой вариант - использовать API dataproc rest [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

...