Управление заданиями SparkConnect
Примечание
Функциональность находится на стадии Preview.
Создать задание
Важно
Задание будет запущено автоматически после его создания.
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Apache Spark. -
Нажмите на имя нужного кластера и выберите вкладку Задания.
-
Нажмите кнопку Создать задание.
-
Укажите имя задания.
-
В поле Тип задания выберите
SparkConnect. -
(Опционально) Задайте продвинутые настройки:
-
Укажите пути к нужным файлам и архивам.
-
Укажите пути к JAR-файлам в формате:
Размещение файла Формат пути Файловая система инстанса file:///<путь_к_файлу>Бакет Object Storage s3a://<имя_бакета>/<путь_к_файлу>Интернет http://<путь_к_файлу>илиhttps://<путь_к_файлу>Допускается использование архивов стандартных для Linux форматов:
zip,gz,xz,bz2и т. д.Сервисному аккаунту кластера необходим доступ на чтение ко всем файлам в бакете. Пошаговые инструкции по настройке доступа к Object Storage приведены в разделе Редактирование ACL бакета.
-
В поле Настройки укажите свойства компонентов в виде пар
ключ-значение. -
Укажите координаты используемых и исключаемых Maven-пакетов, а также URL дополнительных репозиториев для поиска пакетов.
-
-
Нажмите кнопку Создать задание.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы создать задание SparkConnect:
-
Посмотрите описание команды CLI для создания задания:
yc managed-spark job create-spark-connect --help -
Создайте задание, выполнив команду:
yc managed-spark job create-spark-connect \ --cluster-id <идентификатор_кластера> \ --name <имя_задания> \ --jar-file-uris <список_путей_к_JAR-файлам> \ --file-uris <список_путей_к_файлам> \ --archive-uris <список_путей_к_архивам> \ --packages <список_Maven-координат_пакетов> \ --repositories <список_URL_репозиториев_для_поиска_пакетов>\ --exclude-packages <список_Maven-координат_исключаемых_пакетов> \ --properties <список_свойств>Где:
-
--cluster-id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
--name(Опционально) — имя задания. -
--jar-file-uris— список путей к используемым JAR-файлам в формате:Размещение файла Формат пути Файловая система инстанса file:///<путь_к_файлу>Бакет Object Storage s3a://<имя_бакета>/<путь_к_файлу>Интернет http://<путь_к_файлу>илиhttps://<путь_к_файлу>Допускается использование архивов стандартных для Linux форматов:
zip,gz,xz,bz2и т. д.Сервисному аккаунту кластера необходим доступ на чтение ко всем файлам в бакете. Пошаговые инструкции по настройке доступа к Object Storage приведены в разделе Редактирование ACL бакета.
-
--file-uris— список путей к используемым файлам. -
--archive-uris— список путей к используемым архивам. -
--packages— список Maven-координат JAR-файлов в форматеgroupId:artifactId:version. -
--repositories— список URL дополнительных репозиториев для поиска пакетов. -
--exclude-packages— список Maven-координат пакетов, которые нужно исключить, в форматеgroupId:artifactId. -
--properties— список свойств компонентов в форматеключ=значение.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом JobService.Create и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/job_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "name": "<имя_задания>", "spark_connect_job": { "jar_file_uris": [ <список_путей_к_JAR-файлам> ], "file_uris": [ <список_путей_к_файлам> ], "archive_uris": [ <список_путей_к_архивам> ], "properties": { <список_свойств> }, "packages": [ <список_Maven-координат_пакетов> ], "repositories": [ <список_URL_репозиториев_для_поиска_пакетов> ], "exclude_packages": [ <список_Maven-координат_исключаемых_пакетов> ] } }' \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.JobService.CreateГде:
-
cluster_id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
name(Опционально) — имя задания. -
spark_connect_job— параметры SparkConnect-задания:-
jar_file_uris— список путей к используемым JAR-файлам в формате:Размещение файла Формат пути Файловая система инстанса file:///<путь_к_файлу>Бакет Object Storage s3a://<имя_бакета>/<путь_к_файлу>Интернет http://<путь_к_файлу>илиhttps://<путь_к_файлу>Допускается использование архивов стандартных для Linux форматов:
zip,gz,xz,bz2и т. д.Сервисному аккаунту кластера необходим доступ на чтение ко всем файлам в бакете. Пошаговые инструкции по настройке доступа к Object Storage приведены в разделе Редактирование ACL бакета.
-
file_uris— список путей к используемым файлам. -
archive_uris— список путей к используемым архивам. -
properties— список свойств компонентов в формате"ключ":"значение". -
packages— список Maven-координат JAR-файлов в форматеgroupId:artifactId:version. -
repositories— список URL дополнительных репозиториев для поиска пакетов. -
exclude_packages— список Maven-координат пакетов, которые нужно исключить, в форматеgroupId:artifactId.
-
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Для запущенных заданий SparkConnect доступен эндпоинт, который можно использовать для подключения через PySpark. Эндпоинт можно получить с информацией о задании. Его значение указано в поле connect_url CLI и API или в поле URL подключения в консоли управления.
Например:
sc://connect-api-c9q9veov4uql********-c9q8ml85r1oh********.spark.yandexcloud.net:443.
Отменить задание
Примечание
Задания в статусах ERROR, DONE или CANCELLED отменить нельзя. Чтобы узнать статус задания, получите список заданий в кластере.
- Перейдите на страницу каталога
и выберите сервис Managed Service for Apache Spark. - Нажмите на имя нужного кластера и выберите вкладку Задания.
- Нажмите на имя нужного задания.
- В правом верхнем углу страницы нажмите кнопку Отменить.
- В открывшемся окне выберите Отменить задание.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы отменить задание:
-
Посмотрите описание команды CLI для отмены задания:
yc managed-spark job cancel --help -
Отмените задание, выполнив команду:
yc managed-spark job cancel <имя_или_идентификатор_задания> \ --cluster-id <идентификатор_кластера>Идентификатор кластера можно получить со списком кластеров в каталоге.
Имя и идентификатор задания можно получить со списком заданий в кластере.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом JobService.Cancel и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/job_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "job_id": "<идентификатор_задания>" }' \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.JobService.CancelИдентификатор кластера можно получить со списком кластеров в каталоге, идентификатор задания — со списком заданий в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список заданий
- Перейдите на страницу каталога
и выберите сервис Managed Service for Apache Spark. - Нажмите на имя нужного кластера и выберите вкладку Задания.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить список заданий кластера:
-
Посмотрите описание команды CLI для получения списка заданий:
yc managed-spark job list --help -
Получите список заданий, выполнив команду:
yc managed-spark job list \ --cluster-id <идентификатор_кластера>Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом JobService.List и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/job_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.JobService.ListИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить общую информацию о задании
- Перейдите на страницу каталога
и выберите сервис Managed Service for Apache Spark. - Нажмите на имя нужного кластера и выберите вкладку Задания.
- Нажмите на имя нужного задания.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить информацию о задании:
-
Посмотрите описание команды CLI для получения информации о задании:
yc managed-spark job get --help -
Получите информацию о задании, выполнив команду:
yc managed-spark job get <идентификатор_задания> \ --cluster-id <идентификатор_кластера>Идентификатор кластера можно получить со списком кластеров в каталоге.
Идентификатор задания можно получить со списком заданий в кластере.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом JobService.Get и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/job_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "job_id": "<идентификатор_задания>" }' \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.JobService.GetИдентификатор кластера можно получить со списком кластеров в каталоге, идентификатор задания — со списком заданий в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить логи выполнения задания
Важно
Чтобы получать логи выполнения заданий, включите запись логов в кластере при его создании.
- Перейдите на страницу каталога
и выберите сервис Managed Service for Apache Spark. - Нажмите на имя нужного кластера и выберите вкладку Задания.
- Нажмите на имя нужного задания.
- В поле Логи выполнения задания нажмите на ссылку.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить логи выполнения задания:
-
Посмотрите описание команды CLI для получения логов задания:
yc managed-spark job log --help -
Получите логи задания, выполнив команду:
yc managed-spark job log <идентификатор_задания> \ --cluster-id <идентификатор_кластера>Идентификатор кластера можно получить со списком кластеров в каталоге.
Идентификатор задания можно получить со списком заданий в кластере.
Чтобы получить логи нескольких заданий, перечислите их идентификаторы через пробел, например:
yc managed-spark job log c9q9veov4uql******** c9qu8uftedte******** \ --cluster-id c9q8ml85r1oh********
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом JobService.ListLog и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/job_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "job_id": "<идентификатор_задания>" }' \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.JobService.ListLogИдентификатор кластера можно запросить со списком кластеров в каталоге, идентификатор задания — со списком заданий в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.