Для запланированных взаимодействий Dataproc (создание кластера, отправка задания, ожидание задания, удаление кластера, а также обработка ошибок) API шаблонов рабочего процесса Dataproc является лучшим выбором, чем попытки организовать их самостоятельно. Ключевым преимуществом является то, что рабочие процессы работают по принципу «запустил и забыл», и любые созданные кластеры также будут удалены по завершении.
Если ваш шаблон рабочего процесса относительно прост и его параметры не меняются между вызовами, более простым способом планирования было бы использование Cloud Scheduler
. Cloud Functions
- хороший выбор, если вам нужно запустить рабочий процесс в ответ на файлы в GCS или события в PubSub. Наконец, Cloud Composer
отлично подходит, если параметры вашего рабочего процесса динамические или есть другие продукты GCP.
Предполагая, что вашими вариантами использования являются простой рабочий процесс с одинаковыми параметрами, я продемонстрирую использование Cloud Scheduler
:
В моем проекте я создал рабочий процесс под названием terasort-example
.
Затем я создал новую учетную запись службы в моем проекте под названием [email protected]
и дал ей роль Dataproc Editor
; однако чего-то более ограниченного с использованием всего dataproc.workflows.instantiate
также достаточно.
После включения Cloud Scheduler
API я перешел к Cloud Scheduler в консоли разработчика. Я создал такую работу:
Цель: HTTP
URL: https://dataproc.googleapis.com/v1/projects/example/regions/global/workflowTemplates/terasort-example:instantiate?alt=json
Метод HTTP: POST
Тело: {}
Заголовок аутентификации: токен OAuth
Учетная запись службы: [email protected]
Область: (оставлено пустым)
Вы можете проверить это, нажав Run Now
.
Обратите внимание, что вы также можете скопировать все содержимое рабочего процесса в тело как полезную нагрузку JSON. Последняя часть URL-адреса станет workflowTemplates:instantiateInline?alt=json
Просмотрите этот официальный документ, в котором обсуждаются другие варианты планирования. .
person
tix
schedule
12.12.2019