Управление заданиями PySpark
Создать задание
Примечание
Если кластер Yandex Data Processing подключен к кластеру Apache Hive™ 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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы отменить задание, выполните команду:
yc dataproc job cancel <имя_или_идентификатор_задания> \
--cluster-name=<имя_кластера>
Идентификатор и имя задания можно получить со списком заданий в кластере, имя кластера — со списком кластеров в каталоге.
Воспользуйтесь методом API cancel и передайте в запросе:
- Идентификатор кластера в параметре
clusterId. - Идентификатор задания в параметре
jobId.
Идентификатор кластера можно получить со списком кластеров в каталоге, идентификатор задания — со списком заданий в кластере.
Получить список заданий
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Задания.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить список заданий, выполните команду:
yc dataproc job list --cluster-name=<имя_кластера>
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Воспользуйтесь методом API list и передайте в запросе идентификатор кластера в параметре clusterId.
Идентификатор кластера можно получить со списком кластеров в каталоге.
Получить общую информацию о задании
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Задания.
- Нажмите на имя нужного задания.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Для получения общей информации о задании выполните команду:
yc dataproc job get \
--cluster-name=<имя_кластера> \
--name=<имя_задания>
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Воспользуйтесь методом API get и передайте в запросе:
- Идентификатор кластера в параметре
clusterId. Его можно получить со списком кластеров в каталоге - Идентификатор задания в параметре
jobId. Его можно получить со списком заданий в кластере.
Получить логи выполнения задания
Примечание
Вы можете просматривать логи выполнения заданий и искать в них информацию с помощью сервиса Yandex Cloud Logging. Подробнее см. в разделе Работа с логами.
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Задания.
- Нажмите на имя нужного задания.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить логи выполнения задания, выполните команду:
yc dataproc job log \
--cluster-name=<имя_кластера> \
--name=<имя_задания>
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Воспользуйтесь методом API listLog и передайте в запросе:
- Идентификатор кластера в параметре
clusterId. Его можно получить со списком кластеров в каталоге. - Идентификатор задания в параметре
jobId. Его можно получить со списком заданий в кластере.