DLI Spark Джобы предоставляют полностью управляемые сервисы вычислений Spark.
На Обзор странице, щелкните Создать Джобу в правом верхнем углу Spark Джобы вкладке или щелкните Создать Джобу в правом верхнем углу Spark Джобы страница. Отображается страница редактирования Spark Джобы.
На странице редактирования Spark Джобы отображается сообщение, указывающее, что будет создан временный DLI бакет данных. Созданный бакет используется для хранения временных данных, генерируемых DLI, таких как журналы задач и результаты задач. Вы не сможете просматривать журналы задач, если решите не создавать бакет. Бакет будет создан, и будет использовано имя бакета по умолчанию.
Если вам не нужно создавать временный DLI бакет данных и вы не хотите получать это сообщение, выберите Не показывать снова и нажмите Отмена.
В Ресурсы > Управление очередью странице, найдите созданную очередь, нажмите Больше в Операция столбце, и выберите Тестировать соединение адреса чтобы проверить, является ли сетевое соединение между очередью и источником данных нормальным. Для получения подробностей см. Тестирование сетевого соединения между очередью и источником данных.
Нажмите Создать Джоб в правом верхнем углу. В окне редактирования Джобы вы можете задавать параметры в Заполнить форму режим или Записать API режим.
Следующее использует Заполнить форму в качестве примера. В Записать API режим, обратитесь к Data Lake Insight справочник API для настройки параметров.
Рекомендуется не использовать Spark разных версий длительное время.
Параметр | Описание |
|---|---|
Приложение | Выберите пакет для выполнения. Значение может быть .jar или .py. Существует следующие способы управления JAR‑файлами:
Для Spark 3.3.x в более поздних версиях вы можете выбирать пакеты только в путях OBS. |
Agency | Перед использованием Spark 3.3.1 и более поздних версий (сценарий общих очередей Spark) для выполнения задач необходимо создать агентство в консоли IAM и добавить информацию о новом агентстве. Подробнее см. Customizing DLI Agency Permissions. Распространённые сценарии создания агентства: DLI разрешено читать и записывать данные из OBS и в OBS для передачи журналов. DLI разрешено получать доступ к DEW для получения учётных данных доступа к данным и доступа к каталогам для получения метаданных. |
Главный класс (--class) | Введите имя главного класса. Когда тип приложения .jar, имя главного класса не может быть пустым. |
Параметры приложения | Пользовательские параметры. Разделяйте несколько параметров Введите. Эти параметры могут быть заменены глобальными переменными. Например, если вы создаете глобальную переменную batch_num на Глобальная конфигурация > Глобальные переменные странице, вы можете использовать {{batch_num}} чтобы заменить параметр этой переменной после отправки задания. |
Parameter | Description |
|---|---|
Job Name (--name) | Set a job name. |
Spark Arguments(--conf) | Enter a parameter in the format of key=value. Press Enter to separate multiple key-value pairs. These parameters can be replaced with global variables. For example, if you create a global variable custom_class on the Global Configuration > Global Variables page, you can use "spark.sql.catalog"={{custom_class}} to replace a parameter with this variable after the job is submitted. NOTE:
If you select 3.3.1 for Spark Version, you can configure compute resource specification parameters in Spark Argument(--conf). Note that the configuration priority of Spark Argument(--conf) is higher than that of Resource Specifications(Optional) in Расширенные настройки. Таблица 4 описывает сопоставление параметров. ПРИМЕЧАНИЕ: При настройке параметров спецификации вычислительных ресурсов в Аргумент Spark(--conf), вы можете использовать единицы M, G или K. Если единица не указана, единицей по умолчанию является байт. |
Доступ к метаданным | Выберите, включить ли доступ к метаданным для задачи Spark. Установите значение Да если необходимо настроить тип метаданных, к которым обращается задача. По умолчанию используется метаданные DLI. При установке значения Да, вам также необходимо установить Источник метаданных. |
Повторить при сбое | Указывает, следует ли повторять неудачную джобу. Если вы выберете Да, вам нужно задать следующие параметры: Максимальное количество повторов: Максимальное количество попыток повторения. Максимальное значение равно 100. |
Источник данных | Пример значения |
|---|---|
CSS | spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/css/* spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/css/* |
DWS | spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/dws/* spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/dws/* |
HBase | spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/hbase/* spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/hbase/* |
OpenTSDB | spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/opentsdb/* spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/opentsdb/* |
RDS | spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/rds/* spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/rds/* |
Redis | spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/redis/* spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/redis/* |
Параметр консоли | Аргумент Spark(--conf) | Описание | Примечания и ограничения |
|---|---|---|---|
Память исполнителя Полная память исполнителя = spark.executor.memory + spark.executor.memoryOverhead | spark.executor.memory | Память исполнителя, которая настраивается. | - |
spark.executor.memoryOverhead | Объём памяти вне кучи для каждого исполнителя в приложении Spark. Этот параметр не настраивается. spark.executor.memoryOverhead=spark.executor.memory * spark.executor.memoryOverheadFactor | Минимальное значение — 384 MB. То есть, когда значение spark.executor.memory умноженное на spark.executor.memoryOverheadFactor меньше 384 МБ, система автоматически устанавливает значение 384 МБ. | |
spark.executor.memoryOverheadFactor | Этот параметр определяет соотношение выделения памяти вне кучи к выделению памяти в куче. Значение по умолчанию 0.1 для приложений Spark, запущенных с JAR‑файлом и 0.4 для тех, которые запущены с Python. Этот параметр настраиваемый. | Приоритет spark.executor.memoryOverheadFactor выше, чем у spark.kubernetes.memoryOverheadFactor. | |
Ядра исполнителя | spark.executor.cores | Количество ядер исполнителя, которое можно настроить. | - |
Исполнители | spark.executor.instances | Количество исполнителей, которое настраивается. | - |
Ядра драйвера | spark.driver.cores | Количество ядер драйвера, которое настраивается. | - |
Память драйвера Полная память драйвера = spark.driver.memory + spark.edriver.memoryOverhead | spark.driver.memory | Память драйвера, которая настраивается. | - |
spark.driver.memoryOverhead | Объём памяти вне кучи для каждого драйвера в приложении Spark. Этот параметр не настраивается. spark.driver.memoryOverhead= spark.driver.memory * spark.driver.memoryOverheadFactor | Минимальное значение — 384 МБ. То есть, когда значение spark.driver.memory умножено на spark.driver.memoryOverheadFactor меньше 384 MB, система автоматически устанавливает значение 384 MB. | |
spark.driver.memoryOverheadFactor | Этот параметр определяет отношение выделения памяти вне кучи к выделению памяти в куче. Значение по умолчанию 0.1 для Spark‑приложений, запускаемых с JAR‑файлом и 0.4 для тех, которые запускаются с Python. Этот параметр настраивается. | Приоритет spark.driver.memoryOverheadFactor выше, чем spark.kubernetes.memoryOverheadFactor. | |
- | spark.kubernetes.memoryOverheadFactor | Объём памяти, выделяемый вне памяти, назначенной исполнителям Spark. Значение по умолчанию 0.1 для приложений Spark, запускаемых с JAR‑файлом и 0.4 для тех, которые запускаются с Python. Этот параметр настраивается. | Приоритет spark.executor.memoryOverheadFactor и spark.driver.memoryOverheadFactor выше, чем spark.kubernetes.memoryOverheadFactor. |
Параметр | Описание |
|---|---|
Зависимости пакета JAR (--jars) | JAR‑файл, от которого зависит задача Spark. Вы можете ввести имя JAR‑файла или путь OBS к JAR‑файлу в формате obs://Бакет имя/Папка путь/JAR файл имя. |
Python Файл Зависимости (--py-files) | py-files от которых зависит задача Spark. Вы можете ввести имя файла Python или соответствующий OBS путь файла Python. Формат следующий: obs://Бакет имя/Папка имя/Файл имя. |
Другие Зависимости (--files) | Другие файлы от которых зависит задача Spark. Вы можете ввести имя файла зависимости или соответствующий OBS путь файла зависимости. Формат следующий: obs://Бакет имя/Имя папки/Имя файла. |
Имя группы | Если при создании пакета вы выбираете группу, вы можете выбрать все пакеты и файлы в этой группе. Как создать пакет, см Создание пакета DLI. Spark 3.3.x или более новые версии не поддерживают настройку информации о группе. |
Степень параллелизма ресурсов Spark определяется совместно числом Executors и числом ядер CPU Executor.
Максимальное количество задач, которые могут выполняться одновременно = Number of Executors x Number of Executor CPU cores
Вы можете правильно спланировать спецификации вычислительных ресурсов, исходя из вычислительных CUs очереди, которую вы приобрели.
Обратите внимание, что задачи Spark необходимо совместно выполнять несколькими ролями, такими как driver и executor. Поэтому число executors, умноженное на число ядер CPU executor, должно быть меньше количества вычислительных CUs очереди, чтобы предотвратить сбой запуска задач Spark другими ролями. Для получения дополнительной информации о ролях задач Spark, см Apache Spark.
Формула расчёта параметров задачи Spark:
Параметр | Описание |
|---|---|
модули | Если версия Spark 3.1.1, вам не нужно выбирать модуль. Настройте Параметры Spark (--conf). Зависимые модули, предоставляемые DLI для выполнения задач подключения источников данных. Для доступа к различным сервисам необходимо выбирать разные модули.
|
Пакет ресурсов | JAR‑пакет, от которого зависит задача Spark. Spark 3.3.x или более поздние версии не поддерживают этот параметр. Укажите информацию о пакете ресурсов в jars, pyFiles, и файлы. |
Параметр | Описание |
|---|---|
Спецификации ресурсов | Выберите спецификацию ресурсов из раскрывающегося списка. Система предоставляет три варианта спецификации ресурсов, из которых вы можете выбрать. Спецификации ресурсов включают следующие параметры:
Если изменено, будут использованы ваши изменённые настройки элементов. |
Память исполнителя | Настройте элемент конфигурации на основе выбранных спецификаций ресурсов. Память каждого исполнителя. Рекомендуется, чтобы соотношение ядер CPU исполнителя к памяти исполнителя было 1:4. |
Ядра исполнителя | Количество ядер CPU каждого исполнителя, запрашиваемое Spark‑задачами, определяющее возможность каждого исполнителя выполнять задачи одновременно. |
Исполнители | Количество исполнителей, запрашиваемое Spark‑задачей |
Ядра драйвера | Количество ядер CPU драйвера |
Память драйвера | Размер памяти драйвера. Рекомендуется, чтобы соотношение количества ядер CPU драйвера к памяти драйвера было 1:4. |
Таблица 4 описывает сопоставление параметров.
При настройке параметров спецификации вычислительных ресурсов в Spark Аргумент(--conf), вы можете использовать единицы M, G или K. Если единица не указана, единицей по умолчанию является байт.
Если спецификация вычислительных ресурсов установлена слишком высокой, превышая возможности распределения ресурсов кластера или проекта, задание может завершиться ошибкой из‑за отказа в запросе ресурсов.
Параметр | Эластичный пул ресурсов Standard Edition после модификации | Эластичный пул ресурсов Basic Edition |
|---|---|---|
Память Executor | 450 MB до 64 GB | 450 MB до 16 GB |
Ядра Executor | 0 до 16 | 0 до 4 |
Executor'ы | Неограниченно | Неограниченно |
Ядра драйвера | 0 to 16 | 0 to 4 |
Память драйвера | 450 MB to 64 GB | 450 MB to 16 GB |
Квота задания CU | Неограниченно | Неограниченно |
После отображения сообщения "Batch processing job submitted successfully" вы можете просмотреть статус и журналы отправленного задания на Задания Spark странице.
Во время процесса отправки задания Spark, если задание длительное время не может успешно получить ресурсы, статус задания изменится на Не удалось после ожидания примерно 3 часа, указывая, что сеанс завершён. Для получения деталей о статусах задач Spark, смотрите Просмотр основной информации.