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.
Prerequisites
- You have uploaded the dependencies to the corresponding OBS bucket on the Data Management > Package Management page.
- Before creating a Spark job to access other external data sources, such as OpenTSDB, HBase, Kafka, GaussDB(DWS), RDS, CSS, CloudTable, DCS Redis, and DDS, you need to create a datasource connection to enable the network between the job running queue and external data sources.
- For details about the external data sources that can be accessed by Spark jobs, see Common Development Methods for DLI Cross-Source Analysis.
- For how to create a datasource connection, see Configuring the Network Connection Between DLI and Data Sources (Enhanced Datasource Connection).
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.
Procedure
- In the left navigation pane of the DLI management console, choose Job Management > Spark Jobs. The Spark Jobs page is displayed.
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.
- Select a queue.
- Queues: Select a queue from the drop-down list.
- Spark Version: Select a Spark version from the drop-down list. The latest version is recommended.Note
You are advised not to use Spark of different versions for a long time.
- Doing so can lead to code incompatibility, which can negatively impact the job execution efficiency.
- Doing so may result in job execution failures due to conflicts in dependencies. Jobs rely on specific versions of libraries or components.
- Configure the application.
Table 1 Application configuration parameters 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:
- Upload packages to OBS: Upload JAR files to an OBS bucket in advance and select the corresponding OBS path.
- Загрузить пакеты в DLI: загрузить JAR‑файлы в OBS Бакет заранее и создать пакет на Управление данными > Управление пакетами страница консоли управления DLI. Для получения подробной информации см. Создание пакета DLI.
Для Spark 3.3.x или более поздних, можно выбирать только пакеты в путях OBS.
Агент
Перед использованием Spark 3.3.1 или более поздних версий (сценарий общей очереди Spark) для выполнения задач необходимо создать агент в консоли IAM и добавить информацию о новом агенте. Для получения подробной информации см. Настройка разрешений агента DLI.
Распространённые сценарии создания агента: DLI имеет разрешение читать и записывать данные в OBS и из OBS для передачи журналов. DLI имеет разрешение доступа к DEW для получения учетных данных доступа к данным и доступа к каталогам для получения метаданных.
Основной класс (--class)
Введите имя основного класса. Когда тип приложения .jar, имя основного класса не может быть пустым.
Параметры приложения
Пользовательские параметры. Разделяйте несколько параметров Введите.
Эти параметры могут быть заменены глобальными переменными. Например, если вы создаете глобальную переменную batch_num на Глобальная конфигурация > Глобальные переменные странице, вы можете использовать {{batch_num}} чтобы заменить параметр этой переменной после отправки задачи.
- Настройте задачу.
Таблица 2 Параметры конфигурации Джобы Параметр
Описание
Имя Джобы (--name)
Установите имя джобы.
Spark Arguments(--conf)
Введите параметр в формате key=value. Нажмите Enter, чтобы разделить несколько пар key-value.
Эти параметры могут быть заменены глобальными переменными. Например, если вы создаете глобальную переменную custom_class на Глобальная конфигурация > Глобальные переменные странице, вы можете использовать "spark.sql.catalog"={{custom_class}} чтобы заменить параметр этой переменной после отправки джобы.
NOTE:- Алгоритм сборки мусора JVM нельзя настраивать для задач Spark
- Если версия Spark 3.1.1, настройте Параметры Spark (--conf) для выбора модуля зависимости. Для получения подробной информации о примерной конфигурации см Таблица 3.
Если вы выберете 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.
Таблица 3 Конфигурация параметра Spark (--conf) Источник данных
Пример значения
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/*
Таблица 4 Сопоставление параметров спецификации вычислительных ресурсов в консоли и Spark Argument(--conf) Параметр консоли
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.
- (Optional) Настройте зависимости.
Таблица 5 Параметры конфигурации зависимостей Параметр
Описание
Зависимости пакетов 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 или более поздние версии не поддерживают конфигурацию информации о группе.
- Установите следующие параметры в расширенных настройках:
- Выберите ресурсы зависимости: Подробнее о параметрах см Таблица 6.
- Настройте ресурсы: Подробнее о параметрах см Таблица 7.Note
Степень параллелизма ресурсов 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:
- Number of CUs = Actual number of CUs = Max{(Driver Cores + Executors x Executor Cores), [(Driver Memory + Executors x Executor Memory)/4]}
- Память = Driver Memory + (Executors x Executor Memory)
Таблица 6 Параметры выбора зависимых ресурсов Параметр
Описание
модули
Если версия Spark 3.1.1, вам не нужно выбирать модуль. Настройте Параметры Spark (--conf).
Модули зависимостей, предоставляемые DLI для выполнения заданий подключения источника данных. Для доступа к различным сервисам необходимо выбирать разные модули.
- MRS HBase: sys.datasource.hbase
- DDS: sys.datasource.mongo
- MRS OpenTSDB: sys.datasource.opentsdb
- DWS: sys.datasource.dws
- RDS MySQL: sys.datasource.rds
- RDS PostGre: sys.datasource.rds
- DCS: sys.datasource.redis
- CSS: sys.datasource.css
Пакет ресурсов
JAR‑пакет, от которого зависит задача Spark.
Spark 3.3.x в более поздних версиях этот параметр не поддерживается. Укажите информацию о пакете ресурсов в jars, pyFiles, и файлы.
Таблица 7 Параметры спецификации ресурсов Параметр
Описание
Спецификации ресурсов
Выберите спецификацию ресурса из выпадающего списка. Система предоставляет три варианта спецификации ресурсов, из которых вы можете выбрать.
Спецификации ресурсов включают следующие параметры:
- Память исполнителя
- Ядра исполнителя
- Исполнители
- Ядра драйвера
- Память драйвера
Если изменено, будут использоваться ваши изменённые настройки элементов.
Память исполнителя
Настройте элемент конфигурации на основе выбранных спецификаций ресурсов.
Память каждого исполнителя. Рекомендуется, чтобы соотношение ядер CPU исполнителя к памяти исполнителя было 1:4.
Ядра исполнителя
Количество ядер CPU каждого исполнителя, запрашиваемое Spark‑задачами, определяющее возможность каждого исполнителя выполнять задачи одновременно.
Исполнители
Количество исполнителей, запрашиваемое Spark‑задачей
Ядра драйвера
Количество ядер CPU драйвера
Память драйвера
Размер памяти драйвера. Рекомендуется, чтобы соотношение количества ядер CPU драйвера к памяти драйвера было 1:4.
- Если вы выберете 3.3.1 для Версия Spark, вы можете настроить параметры спецификации вычислительных ресурсов в Spark Argument(--conf). Обратите внимание, что приоритет конфигурации Spark Argument(--conf) выше, чем у Спецификации ресурсов(Необязательно) в Расширенные настройки.
Таблица 4 описывает отображение параметров.
NoteПри настройке параметров спецификации вычислительных ресурсов в Spark Argument(--conf), вы можете использовать единицы M, G или K. Если единица не указана, единицей по умолчанию является байт.
- Spark 3.3.1 или более поздняя версия включает примечания и ограничения по спецификациям вычислительных ресурсов для задач. Подробнее см Таблица 8.
Таблица 8 Диапазоны значений спецификаций вычислительных ресурсов Параметр
Эластичный пул ресурсов стандартного издания после изменения
Эластичный пул ресурсов базового издания
Память исполнителя
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 задачи
Неограниченно
Неограниченно
- Нажмите Выполнить в правом верхнем углу страницы редактирования задачи Spark.
После отображения сообщения "Batch processing job submitted successfully", вы можете просмотреть статус и журналы отправленной задачи на Задачи Spark странице.