Управление заданиями PySpark
Создать задание
Примечание
Если кластер Yandex Data Processing подключен к кластеру Metastore, добавьте свойство spark:spark.sql.hive.metastore.sharedPrefixes
со значением com.amazonaws,ru.yandex.cloud
в кластер Yandex Data Processing. Тогда задания PySpark будут успешно выполнены. Задать свойство можно при создании или изменении кластера Yandex Data Processing.
Чтобы создать задание PySpark:
-
Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. -
Нажмите на имя нужного кластера и выберите вкладку Задания.
-
Нажмите кнопку Создать задание.
-
(Опционально) Укажите имя задания.
-
В поле Тип задания выберите
PySpark
. -
В поле Main python файл укажите путь к основному PY-файлу приложения в формате:
Размещение файла Формат пути Файловая система инстанса file:///<путь_к_файлу>
Распределенная файловая система кластера hdfs:///<путь_к_файлу>
Бакет Object Storage s3a://<имя_бакета>/<путь_к_файлу>
Интернет http://<путь_к_файлу>
илиhttps://<путь_к_файлу>
Допускается использование архивов стандартных для Linux форматов:
zip
,gz
,xz
,bz2
и т. д.Сервисному аккаунту кластера необходим доступ на чтение ко всем файлам в бакете. Пошаговые инструкции по настройке доступа к Object Storage приведены в разделе Редактирование ACL бакета.
-
(Опционально) Укажите пути к PY-файлам, если они используются.
-
Укажите аргументы задания.
Если аргумент, переменная или свойство состоит из нескольких частей, разделенных пробелом, указывайте каждую часть отдельно. При этом важно сохранить порядок объявления аргументов, переменных и свойств.
Например, аргумент
-mapper mapper.py
должен быть преобразован в два аргумента-mapper
иmapper.py
, стоящих последовательно. -
(Опционально) Укажите пути к JAR-файлам, если они используются.
-
(Опционально) Задайте продвинутые настройки:
- Укажите пути к необходимым файлам и архивам.
- В поле Настройки укажите свойства компонентов в виде пары
ключ-значение
.
-
Нажмите кнопку Создать задание.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать задание:
-
Посмотрите описание команды CLI для создания заданий типа
PySpark
:yc dataproc job create-pyspark --help
-
Создайте задание (в примере приведены не все доступные параметры):
yc dataproc job create-pyspark \ --cluster-name=<имя_кластера> \ --name=<имя_задания> \ --main-python-file-uri=<путь_к_основному_py-файлу_приложения> \ --python-file-uris=<пути_к_дополнительным_py-файлам> \ --jar-file-uris=<пути_к_jar-файлам> \ --archive-uris=<пути_к_архивам> \ --properties=<свойства_компонентов> \ --args=<аргументы> \ --packages=<Maven_координаты_jar-файлов> \ --repositories=<дополнительные_репозитории> \ --exclude-packages=<пакеты_для_исключения>
Где:
--properties
— свойства компонентов в виде парыключ-значение
.--args
— аргументы, передаваемые заданию.--packages
— Maven координаты jar-файлов в форматеgroupId:artifactId:version
.--repositories
— дополнительные репозитории для поискаpackages
.--exclude-packages
— пакеты в форматеgroupId:artifactId
, которые надо исключить.
Пути к необходимым для выполнения задания файлам передавайте в формате:
Размещение файла Формат пути Файловая система инстанса file:///<путь_к_файлу>
Распределенная файловая система кластера hdfs:///<путь_к_файлу>
Бакет Object Storage s3a://<имя_бакета>/<путь_к_файлу>
Интернет http://<путь_к_файлу>
илиhttps://<путь_к_файлу>
Допускается использование архивов стандартных для Linux форматов:
zip
,gz
,xz
,bz2
и т. д.Сервисному аккаунту кластера необходим доступ на чтение ко всем файлам в бакете. Пошаговые инструкции по настройке доступа к Object Storage приведены в разделе Редактирование ACL бакета.
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Воспользуйтесь методом API create и передайте в запросе:
- идентификатор кластера в параметре
clusterId
; - имя задания в параметре
name
; - свойства задания в параметре
pysparkJob
.
Идентификатор кластера можно получить со списком кластеров в каталоге.
Отменить задание
Примечание
Задания в статусах ERROR
, DONE
или CANCELLED
отменить нельзя. Чтобы узнать статус задания, получите список заданий в кластере.
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Задания.
- Нажмите на имя нужного задания.
- В правом верхнем углу страницы нажмите кнопку Отменить.
- В открывшемся окне выберите Отменить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы отменить задание, выполните команду:
yc dataproc job cancel <имя_или_идентификатор_задания> \
--cluster-name=<имя_кластера>
Идентификатор и имя задания можно получить со списком заданий в кластере, имя кластера — со списком кластеров в каталоге.
Воспользуйтесь методом API cancel и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. - Идентификатор задания в параметре
jobId
.
Идентификатор кластера можно получить со списком кластеров в каталоге, идентификатор задания — со списком заданий в кластере.
Получить список заданий
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Задания.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список заданий, выполните команду:
yc dataproc job list --cluster-name=<имя_кластера>
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Воспользуйтесь методом API list и передайте в запросе идентификатор кластера в параметре clusterId
.
Идентификатор кластера можно получить со списком кластеров в каталоге.
Получить общую информацию о задании
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Задания.
- Нажмите на имя нужного задания.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Для получения общей информации о задании выполните команду:
yc dataproc job get \
--cluster-name=<имя_кластера> \
--name=<имя_задания>
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Воспользуйтесь методом API get и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Его можно получить со списком кластеров в каталоге - Идентификатор задания в параметре
jobId
. Его можно получить со списком заданий в кластере.
Получить логи выполнения задания
Примечание
Вы можете просматривать логи выполнения заданий и искать в них информацию с помощью сервиса Yandex Cloud Logging. Подробнее см. в разделе Работа с логами.
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Задания.
- Нажмите на имя нужного задания.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить логи выполнения задания, выполните команду:
yc dataproc job log \
--cluster-name=<имя_кластера> \
--name=<имя_задания>
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Воспользуйтесь методом API listLog и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Его можно получить со списком кластеров в каталоге. - Идентификатор задания в параметре
jobId
. Его можно получить со списком заданий в кластере.