DLI Spark jobs provide fully managed Spark computing services.
On the Overview page, click Create Job in the upper right corner of the Spark Jobs tab or click Create Job in the upper right corner of the Spark Jobs page. The Spark job editing page is displayed.
On the Spark job editing page, a message is displayed, indicating that a temporary DLI data bucket will be created. The created bucket is used to store temporary data generated by DLI, such as job logs and job results. You cannot view job logs if you choose not to create the bucket. The bucket will be created and the default bucket name is used.
If you do not need to create a DLI temporary data bucket and do not want to receive this message, select Do not show again and click Cancel.
On the Resources > Queue Management page, locate the queue you have created, click More in the Operation column, and select Test Address Connectivity to check if the network connection between the queue and the data source is normal. For details, see Testing Address Connectivity.
Click Create Job in the upper right corner. In the job editing window, you can set parameters in Fill Form mode or Write API mode.
The following uses the Fill Form as an example. In Write API mode, refer to the Data Lake Insight API Reference for parameter settings.
You are advised not to use Spark of different versions for a long time.
Parameter | Description |
|---|---|
Application | Select the package to be executed. The value can be .jar or .py. There are the following ways to manage JAR files:
Для Spark 3.3.x или более поздних, можно выбирать только пакеты в путях OBS. |
Агент | Перед использованием Spark 3.3.1 или более поздних версий (сценарий общей очереди Spark) для выполнения задач необходимо создать агент в консоли IAM и добавить информацию о новом агенте. Для получения подробной информации см. Настройка разрешений агента DLI. Распространённые сценарии создания агента: DLI имеет разрешение читать и записывать данные в OBS и из OBS для передачи журналов. DLI имеет разрешение доступа к DEW для получения учетных данных доступа к данным и доступа к каталогам для получения метаданных. |
Основной класс (--class) | Введите имя основного класса. Когда тип приложения .jar, имя основного класса не может быть пустым. |
Параметры приложения | Пользовательские параметры. Разделяйте несколько параметров Введите. Эти параметры могут быть заменены глобальными переменными. Например, если вы создаете глобальную переменную batch_num на Глобальная конфигурация > Глобальные переменные странице, вы можете использовать {{batch_num}} чтобы заменить параметр этой переменной после отправки задачи. |
Параметр | Описание |
|---|---|
Имя Джобы (--name) | Установите имя джобы. |
Spark Arguments(--conf) | Введите параметр в формате key=value. Нажмите Enter, чтобы разделить несколько пар key-value. Эти параметры могут быть заменены глобальными переменными. Например, если вы создаете глобальную переменную custom_class на Глобальная конфигурация > Глобальные переменные странице, вы можете использовать "spark.sql.catalog"={{custom_class}} чтобы заменить параметр этой переменной после отправки джобы. NOTE:
Если вы выберете 3.3.1 для Версия Spark, вы можете настроить параметры спецификации вычислительных ресурсов в Аргумент Spark(--conf). Обратите внимание, что приоритет конфигурации Аргумент Spark(--conf) выше, чем у Спецификации ресурсов (Optional) в Advanced Settings. Table 4 описывает сопоставление параметров. NOTE: При настройке параметров спецификации вычислительных ресурсов в Spark Argument(--conf), можно использовать единицы M, G или K. Если единица не указана, единицей по умолчанию является байт. |
Access Metadata | Нужно ли получать доступ к метаданным через Spark‑задачи. |
Retry upon Failure | Указывает, следует ли повторно запускать неудавшуюся задачу. Если вы выберете Да, необходимо задать следующие параметры: Maximum Retries: Максимальное количество попыток повторного запуска. Максимальное значение — 100. |
Источник данных | Пример значения |
|---|---|
CSS | spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/css/* spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/css/* |
GaussDB(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 | park.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 | Память Executor, которая настраивается. | - |
spark.executor.memoryOverhead | Объём off-heap памяти для каждого executor в приложении Spark. Этот параметр не настраивается. spark.executor.memoryOverhead=spark.executor.memory * spark.executor.memoryOverheadFactor | Минимальное значение — 384 MB. То есть, когда значение spark.executor.memory умноженное на spark.executor.memoryOverheadFactor меньше 384 MB, система автоматически устанавливает значение 384 MB. | |
spark.executor.memoryOverheadFactor | Этот параметр определяет соотношение выделения памяти off-heap к выделению памяти on-heap. Значение по умолчанию — 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 | Объём off-heap памяти для каждого драйвера в приложении Spark. Этот параметр не настраивается. spark.driver.memoryOverhead= spark.driver.memory * spark.driver.memoryOverheadFactor | Минимальное значение — 384 МБ. То есть, когда значение spark.driver.memory умножено на spark.driver.memoryOverheadFactor меньше 384 МБ, система автоматически устанавливает значение в 384 МБ. | |
spark.driver.memoryOverheadFactor | Этот параметр определяет соотношение выделения off-heap памяти к выделению on-heap памяти. Значение по умолчанию — 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. Поэтому количество исполнителей, умноженное на количество executor CPU cores, должно быть меньше количества compute 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 Argument(--conf), вы можете использовать единицы M, G или K. Если единица не указана, единицей по умолчанию является байт.
Параметр | Эластичный пул ресурсов стандартного издания после изменения | Эластичный пул ресурсов базового издания |
|---|---|---|
Память исполнителя | 450 MB to 64 GB | 450 MB to 16 GB |
Ядра исполнителя | 0 to 16 | 0 to 4 |
Executors | Неограниченно | Неограниченно |
Ядра драйвера | 0 to 16 | 0 to 4 |
Память драйвера | 450 MB до 64 GB | 450 MB до 16 GB |
Квота CU задачи | Неограниченно | Неограниченно |
После отображения сообщения "Batch processing job submitted successfully", вы можете просмотреть статус и журналы отправленной задачи на Задачи Spark странице.