Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-20 GMT+08:00

Envío de un trabajo de DLI Spark

Ejecute el comando ma-cli dli-job submit para enviar un trabajo de DLI Spark.

Antes de ejecutar este comando, configure YAML_FILE para especificar la ruta al archivo de configuración del trabajo de destino. Si no se especifica este parámetro, el archivo de configuración estará vacío. El archivo de configuración está en formato de YAML y sus parámetros son el parámetro option del comando. Si especifica tanto el archivo de configuración YAML_FILE como el parámetro option en la CLI, el valor del parámetro option lo sobrescribirá en el archivo de configuración.

Parámetros de CLI

ma-cli dli-job submit -h
Usage: ma-cli dli-job submit [OPTIONS] [YAML_FILE]...

  Submit DLI Spark job.

  Example:

  ma-cli dli-job submit  --name test-spark-from-sdk
                          --file test/sub_dli_task.py
                          --obs-bucket dli-bucket
                          --queue dli_test
                          --spark-version 2.4.5
                          --driver-cores 1
                          --driver-memory 1G
                          --executor-cores 1
                          --executor-memory 1G
                          --num-executors 1

Options:
  --file TEXT                    Python file or app jar.
  -cn, --class-name TEXT         Your application's main class (for Java / Scala apps).
  --name TEXT                    Job name.
  --image TEXT                   Full swr custom image path.
  --queue TEXT                   Execute queue name.
  -obs, --obs-bucket TEXT        DLI obs bucket to save logs.
  -sv, --spark-version TEXT      Spark version.
  -st, --sc-type [A|B|C]         Compute resource type.
  --feature [basic|custom|ai]    Type of the Spark image used by a job (default: basic).
  -ec, --executor-cores INTEGER  Executor cores.
  -em, --executor-memory TEXT    Executor memory (eg. 2G/2048MB).
  -ne, --num-executors INTEGER   Executor number.
  -dc, --driver-cores INTEGER    Driver cores.
  -dm, --driver-memory TEXT      Driver memory (eg. 2G/2048MB).
  --conf TEXT                    Arbitrary Spark configuration property (eg. <PROP=VALUE>).
  --resources TEXT               Resources package path.
  --files TEXT                   Files to be placed in the working directory of each executor.
  --jars TEXT                    Jars to include on the driver and executor class paths.
  -pf, --py-files TEXT           Python files to place on the PYTHONPATH for Python apps.
  --groups TEXT                  User group resources.
  --args TEXT                    Spark batch job parameter args.
  -q, --quiet                    Exit without waiting after submit successfully.
  -C, --config-file PATH         Configure file path for authorization.
  -D, --debug                    Debug Mode. Shows full stack trace when error occurs.
  -P, --profile TEXT             CLI connection profile to use. The default profile is "DEFAULT".
  -H, -h, --help                 Show this message and exit.

Vista previa del archivo de YAML

# dli-demo.yaml
name: test-spark-from-sdk
file: test/sub_dli_task.py
obs-bucket: ${your_bucket}
queue: dli_notebook 
spark-version: 2.4.5
driver-cores: 1
driver-memory: 1G
executor-cores: 1
executor-memory: 1G
num-executors: 1

## [Optional] 
jars:
  - ./test.jar
  - obs://your-bucket/jars/test.jar
  - your_group/test.jar

## [Optional] 
files:
  - ./test.csv
  - obs://your-bucket/files/test.csv
  - your_group/test.csv

## [Optional] 
python-files:
  - ./test.py
  - obs://your-bucket/files/test.py
  - your_group/test.py

## [Optional] 
resources:
  - name: your_group/test.py
    type: pyFile
  - name: your_group/test.csv
    type: file
  - name: your_group/test.jar
    type: jar
  - name: ./test.py
    type: pyFile
  - name: obs://your-bucket/files/test.py
    type: pyFile

## [Optional]
groups:
  - group1
  - group2

Ejemplo de envío de un trabajo de DLI Spark con options especificado:

$ ma-cli dli-job submit --name test-spark-from-sdk \
                        --file test/sub_dli_task.py \
                        --obs-bucket ${your_bucket} \
                        --queue dli_test \
                        --spark-version 2.4.5 \
                        --driver-cores 1 \
                        --driver-memory 1G \
                        --executor-cores 1 \
                        --executor-memory 1G \
                        --num-executors 1 
Tabla 1 Descripción

Parámetro

Tipo

Obligatorio

Descripción

YAML_FILE

String, una ruta de acceso de archivo local

No

Archivo de configuración de un trabajo de DLI Spark. Si no se especifica este parámetro, el archivo de configuración estará vacío.

--file

String

Archivo de entrada para ejecutar el programa. El valor puede ser una ruta de archivo local, una ruta de OBS o el nombre de un paquete de JAR o de PyFile cargado en el sistema de gestión de recursos de DLI.

-cn / --class_name

String

Clase principal de Java/Spark del trabajo de procesamiento por lotes.

--name

String

No

Nombre del trabajo especificado. El valor tiene un máximo de 128 caracteres.

--image

String

No

Ruta de acceso a una imagen personalizada con el formato "Organization name/Image name:Image version". Este parámetro solo es válido cuando feature se establece en custom. Puede utilizar este parámetro con el parámetro feature para especificar una imagen de Spark personalizada para ejecutar el trabajo.

-obs / --obs-bucket

String

No

Bucket de OBS para almacenar un trabajo de Spark. Configure este parámetro cuando necesite guardar trabajos. También se puede utilizar como estación de tránsito para enviar archivos locales a los recursos.

-sv/ --spark-version

String

No

Versión del componente de Spark utilizada por un trabajo.

-st / `--sc-type

String

No

Si la versión actual del componente de Spark es 2.3.2, deje este parámetro en blanco. Si la versión actual del componente de Spark es 2.3.3, configure este parámetro cuando feature se establezca en basic o ai. Si no se especifica este parámetro, se utilizará la versión 2.3.2 por defecto del componente de Spark.

--feature

String

No

Función de trabajo, que indica el tipo de imagen de Spark utilizada por un trabajo. El valor predeterminado es basic.

  • basic: se utiliza una imagen de Spark básica proporcionada por DLI.
  • custom: se utiliza una imagen de Spark personalizada.
  • ai: se utiliza una imagen de IA proporcionada por DLI.

--queue

String

No

Nombre de la cola. Configure este parámetro como el nombre de una cola de DLI creada. La cola debe ser del tipo común. Para obtener detalles sobre cómo obtener un nombre de cola, véase Tabla 1.

-ec / --executor-cores

String

No

Cantidad de núcleos de CPU de cada ejecutor en la aplicación de Spark. Esta configuración reemplazará la predeterminada de sc_type.

-em / --executor-memory

String

No

Memoria del ejecutor de la aplicación de Spark, por ejemplo, 2 GB o 2048 MB. Esta configuración reemplazará la predeterminada de sc_type. Se debe proveer la unidad. De lo contrario, el inicio falla.

-ne / --num-executors

String

No

Número de ejecutores en una aplicación de Spark. Esta configuración reemplazará la predeterminada de sc_type.

-dc / --driver-cores

String

No

Número de núcleos de CPU del controlador de la aplicación de Spark. Esta configuración reemplazará la predeterminada de sc_type.

-dm / --driver-memory

String

No

Memoria del controlador de la aplicación de Spark, por ejemplo, 2 GB o 2048 MB. Esta configuración reemplazará la predeterminada de sc_type. Se debe proveer la unidad. De lo contrario, el inicio falla.

--conf

Array of string

No

Configuración de Batch. Para obtener más detalles, véase Configuración de Spark. Para especificar varios parámetros, utilice --conf conf1 --conf conf2.

--resources

Array of string

No

Nombre de un paquete de recursos, que puede ser un archivo local, una ruta de OBS o un archivo cargado en el sistema de gestión de recursos de DLI. Para especificar varios parámetros, utilice --resources resource1 --resources resource2.

--files

Array of string

No

Nombre del paquete de archivos que se cargó en el sistema de gestión de recursos de DLI. También puede especificar una ruta de OBS, por ejemplo, obs://Bucket name/Package name. También se admiten archivos locales. Para especificar varios parámetros, utilice --files file1 --files file2.

--jars

Array of string

No

Nombre del paquete de JAR que se ha cargado en el sistema de gestión de recursos de DLI. También puede especificar una ruta de OBS, por ejemplo, obs://Bucket name/Package name. También se admiten archivos locales. Para especificar varios parámetros, utilice --jars jar1 --jars jar2.

-pf /--python-files

Array of string

No

Nombre del paquete de PyFile que se ha cargado en el sistema de gestión de recursos de la DLI. También puede especificar una ruta de OBS, por ejemplo, obs://Bucket name/Package name. También se admiten archivos locales. Para especificar varios parámetros, utilice --python-files py1 --python-files py2.

--groups

Array of string

No

Nombre del grupo de recursos. Para especificar varios parámetros, utilice --groups group1 --groups group2.

--args

Array of string

No

Parámetros de entrada de la clase principal, que son parámetros de aplicación. Para especificar varios parámetros, utilice --args arg1 --args arg2.

-q / --quiet

Bool

No

Después de enviar un trabajo de DLI Spark, el sistema sale directamente y no imprime el estado del trabajo de manera sincrónica.

Ejemplos

  • Envíe un trabajo de DLI Spark mediante el archivo YAML_FILE.
    $ma-cli dli-job submit dli_job.yaml

  • Enviar un trabajo de DLI Spark especificando el parámetro options en la CLI.
    $ma-cli dli-job submit --name test-spark-from-sdk \
    >                         --file test/jumpstart-trainingjob-gallery-pytorch-sample.ipynb \
    >                         --queue dli_ma_notebook \
    >                         --spark-version 2.4.5 \
    >                         --driver-cores 1 \
    >                         --driver-memory 1G \
    >                         --executor-cores 1 \
    >                         --executor-memory 1G \
    >                         --num-executors 1