Spark‑задачи DLI предоставляют полностью управляемые сервисы вычислений Spark.
На странице Overview нажмите Create Job в правом верхнем углу вкладки Spark Jobs или нажмите Create Job в правом верхнем углу страницы Spark Jobs. Отображается страница редактирования Spark‑задачи.
На странице редактирования Spark‑задачи отображается сообщение, указывающее, что будет создан временный DLI data bucket. Созданный bucket используется для хранения временных данных, генерируемых DLI, таких как job logs и job results. Вы не сможете просматривать job logs, если решите не создавать bucket. Bucket будет создан, и будет использовано имя bucket по умолчанию.
Если вам не требуется создавать временный DLI temporary data bucket и вы не хотите получать это сообщение, выберите Do not show again и нажмите Cancel.
На странице Resources > Queue Management найдите созданную очередь, нажмите More в столбце Operation и выберите Test Address Connectivity, чтобы проверить, нормально ли сетевое соединение между очередью и источником данных. Для получения подробной информации см. Testing the Network Connectivity Between a Queue and a Data Source.
Нажмите Create Job в правом верхнем углу. В окне редактирования задачи вы можете задавать параметры в режиме Fill Form или режиме Write API.
Ниже в качестве примера используется Fill Form. В режиме Write API обратитесь к Data Lake Insight API Reference для настройки параметров.
Рекомендуется не использовать Spark разных версий длительное время.
Параметр | Описание |
|---|---|
Приложение | Выберите пакет для выполнения. Значение может быть .jar или .py. Существует следующие способы управления JAR‑файлами:
Для Spark 3.3.x или более поздней версии можно выбирать только пакеты в путях OBS. |
агентство | Перед использованием Spark 3.3.1 или более поздней версии (сценарий общей очереди Spark) для выполнения заданий необходимо создать агентство в консоли IAM и добавить информацию о новом агентстве. Подробнее см. Customizing DLI Agency Permissions. Распространённые сценарии создания агентства: DLI разрешено читать и записывать данные из OBS и в OBS для передачи журналов. DLI разрешено получать доступ к DEW для получения учётных данных доступа к данным и к каталогам для получения метаданных. |
Main Class (--class) | Введите имя главного класса. Когда тип приложения .jar, имя главного класса не может быть пустым. |
Application Parameters | Параметры, определяемые пользователем. Разделяйте несколько параметров клавишей Enter. Эти параметры можно заменить глобальными переменными. Например, если вы создадите глобальную переменную batch_num на странице Global Configuration > Global Variables, вы можете использовать {{batch_num}} для замены параметра этой переменной после отправки задания. |
Parameter | Description |
|---|---|
Job Name (--name) | Установите имя задания. |
Spark Arguments(--conf) | Введите параметр в формате key=value. Нажмите Enter, чтобы разделить несколько пар ключ‑значение. Эти параметры можно заменить глобальными переменными. Например, если вы создадите глобальную переменную custom_class на странице Global Configuration > Global Variables, вы можете использовать "spark.sql.catalog"={{custom_class}} для замены параметра этой переменной после отправки задания. ПРИМЕЧАНИЕ:
Если вы выбираете 3.3.1 для Spark Version, вы можете настроить параметры спецификации вычислительных ресурсов в Spark Argument(--conf). Обратите внимание, что приоритет конфигурации Spark Argument(--conf) выше, чем у Resource Specifications(Optional) в Advanced Settings. Table 4 описывает сопоставление параметров. ПРИМЕЧАНИЕ: При настройке параметров спецификации вычислительных ресурсов в Spark Argument(--conf) можно использовать единицы M, G или K. Если единица не указана, единицей по умолчанию является байт. |
Access Metadata | Выберите, включить ли доступ к метаданным для задания Spark. Установите Yes, если необходимо настроить тип метаданных, к которым обращается задание. По умолчанию используется доступ к метаданным DLI. При установке Yes также необходимо задать Metadata Source. |
Retry upon Failure | Указывает, следует ли повторно выполнять неудавшееся задание. Если вы выбираете Yes, необходимо задать следующие параметры: Maximum Retries: Максимальное количество попыток повторения. Максимальное значение — 100. |
Datasource | Example Value |
|---|---|
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 Argument(--conf) | Описание | Примечания и ограничения |
|---|---|---|---|
Память исполнителя Complete executor memory = spark.executor.memory + spark.executor.memoryOverhead | spark.executor.memory | Память исполнителя, которая настраивается. | - |
spark.executor.memoryOverhead | Объём памяти вне кучи для каждого исполнителя в приложении Spark. Этот параметр не настраивается. spark.executor.memoryOverhead=spark.executor.memory * spark.executor.memoryOverheadFactor | Минимальное значение — 384 МБ. То есть, когда значение spark.executor.memory, умноженное на spark.executor.memoryOverheadFactor, меньше 384 МБ, система автоматически устанавливает значение в 384 МБ. | |
spark.executor.memoryOverheadFactor | Этот параметр определяет отношение выделения памяти вне кучи к выделению памяти в куче. Значение по умолчанию — 0.1 для приложений Spark, запускаемых из JAR‑файла, и 0.4 для запускаемых с помощью Python. Этот параметр настраивается. | Приоритет spark.executor.memoryOverheadFactor выше, чем у spark.kubernetes.memoryOverheadFactor. | |
Executor Cores | spark.executor.cores | Количество ядер исполнителя, которое настраивается. | - |
Executors | spark.executor.instances | Количество исполнителей, которое настраивается. | - |
Driver Cores | spark.driver.cores | Количество ядер драйвера, которое настраивается. | - |
Driver Memory Полный объём памяти драйвера = spark.driver.memory + spark.edriver.memoryOverhead | spark.driver.memory | Память драйвера, которая настраивается. | - |
spark.driver.memoryOverhead | Объём памяти вне кучи для каждого драйвера в приложении Spark. Этот параметр не настраивается. spark.driver.memoryOverhead= spark.driver.memory * spark.driver.memoryOverheadFactor | Минимальное значение — 384 MB. То есть, когда значение 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 Package Dependencies (--jars) | JAR‑файл, от которого зависит Spark‑задача. Вы можете ввести имя JAR‑файла или путь OBS к JAR‑файлу в формате obs://Bucket name/Folder path/JAR file name. |
Python File Dependencies (--py-files) | py‑files, от которых зависит Spark‑задача. Вы можете ввести имя Python‑файла или соответствующий путь OBS к Python‑файлу. Формат следующий: obs://Bucket name/Folder name/File name. |
Other Dependencies (--files) | Другие файлы, от которых зависит Spark‑задача. Вы можете ввести имя файла зависимости или соответствующий путь OBS к файлу зависимости. Формат следующий: obs://Bucket name/Folder name/File name. |
Group Name | Если при создании пакета выбрать группу, можно выбрать все пакеты и файлы в этой группе. Как создать пакет, см. Creating a DLI Package. Spark 3.3.x или более поздние версии не поддерживают настройку информации о группе. |
Степень параллелизма ресурсов Spark определяется совместно числом Executors и числом Executor CPU cores.
Максимальное количество задач, которые могут выполняться одновременно = Number of Executors x Number of Executor CPU cores
Вы можете правильно планировать спецификации вычислительных ресурсов, исходя из вычислительных CU очереди, которую вы приобрели.
Note that Spark tasks need to be jointly executed by multiple roles, such as driver and executor. So, the number of executors multiplied by the number of executor CPU cores must be less than the number of compute CUs of the queue to prevent other roles from failing to start Spark tasks. For more information about roles for Spark tasks, see Apache Spark.
Формула расчёта параметров задания Spark:
Parameter | Описание |
|---|---|
модули | Если версия Spark 3.1.1, вам не нужно выбирать модуль. Настройте Spark parameters (--conf). Модули зависимостей, предоставляемые DLI для выполнения задач подключения к источникам данных. Для доступа к различным сервисам необходимо выбирать разные модули. |
Пакет ресурсов | JAR‑пакет, от которого зависит задача Spark. Spark 3.3.x или более поздняя версия не поддерживает этот параметр. Настройте информацию о пакете ресурсов в jars, pyFiles и files. |
Параметр | Описание |
|---|---|
Спецификации ресурса | Выберите resource specification из drop-down list box. Система предоставляет три варианта resource specification для выбора. Resource specifications включают следующие параметры:
Если изменено, используются ваши изменённые настройки элементов. |
Executor Memory | Настройте элемент конфигурации на основе выбранных resource specifications. Память каждого Executor. Рекомендуется, чтобы соотношение ядер CPU Executor к памяти Executor было 1:4. |
Executor Cores | Количество ядер CPU каждого Executor, запрашиваемое Spark‑задачами, определяющее возможность каждого Executor выполнять задачи одновременно. |
Executors | Количество Executors, запрашиваемое Spark‑задачей |
Driver Cores | Количество ядер CPU драйвера |
Driver Memory | Размер памяти драйвера. Рекомендуется, чтобы соотношение количества ядер CPU драйвера к памяти драйвера было 1:4. |
Table 4 описывает сопоставление параметров. При настройке параметров спецификации вычислительных ресурсов в Spark Argument(--conf) можно использовать единицы M, G или K. Если единица не указана, единицей по умолчанию является байт.
Если спецификация вычислительных ресурсов установлена слишком высокой, превышая возможности распределения ресурсов кластера или проекта, задача может не запуститься из‑за отказов запросов ресурсов.
Parameter | Эластичный пул ресурсов Standard Edition после изменения | Эластичный пул ресурсов Basic Edition |
|---|---|---|
Память исполнителя | 450 МБ до 64 ГБ | 450 МБ до 16 ГБ |
Ядра исполнителя | 0 до 16 | 0 до 4 |
Исполнители | Неограниченно | Неограниченно |
Ядра драйвера | 0 до 16 | 0 до 4 |
Память драйвера | 450 MB до 64 GB | 450 MB до 16 GB |
Job CU Quota | Неограниченно | Неограниченно |
После отображения сообщения "Batch processing job submitted successfully" вы можете просмотреть статус и журналы отправленной задачи на странице Spark Jobs.
Во время процесса отправки Spark job, если задача не может успешно получить ресурсы в течение длительного периода, её статус изменится на Failed после ожидания примерно 3 часов, что указывает на завершение сеанса. Подробную информацию о статусах Spark job см. в разделе Viewing Basic Information.