Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-14 GMT+08:00

Envio de um trabalho do Spark de DLI

Execute o comando ma-cli dli-job submit para enviar um trabalho do Spark de DLI

Antes de executar esse comando, configure YAML_FILE para especificar o caminho para o arquivo de configuração do trabalho de destino. Se este parâmetro não for especificado, o arquivo de configuração estará vazio. O arquivo de configuração está no formato YAML e seus parâmetros são o parâmetro option do comando. Se você especificar o arquivo de configuração YAML_FILE e o parâmetro option na CLI, o valor do parâmetro option substituirá isso no arquivo de configuração.

Parâmetros da 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.

Pré-visualização do arquivo 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

Exemplo de envio de um trabalho do Spark de DLI com options especificadas:

$ 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 
Tabela 1 Descrição

Parâmetro

Tipo

Obrigatório

Descrição

YAML_FILE

String, um caminho de arquivo local

Não

Arquivo de configuração de um trabalho do Spark de DLI. Se este parâmetro não for especificado, o arquivo de configuração estará vazio.

--file

String

Sim

Arquivo de entrada para execução do programa. O valor pode ser um caminho de arquivo local, um caminho do OBS ou o nome de um pacote JAR ou PyFile que foi carregado no sistema de gerenciamento de recursos do DLI.

-cn / --class_name

String

Sim

Classe principal de Java/Spark do trabalho de processamento em lote.

--name

String

Não

Nome do trabalho especificado. O valor consiste em um máximo de 128 caracteres.

--image

String

Não

Caminho para uma imagem personalizada no formato de "Organization name/Image name:Image version". Esse parâmetro é válido somente quando feature é definido como custom. Você pode usar esse parâmetro com o parâmetro feature para especificar uma imagem personalizada do Spark para a execução do trabalho.

-obs / --obs-bucket

String

Não

Bucket do OBS para armazenar um trabalho do Spark. Configure este parâmetro quando precisar salvar trabalhos. Ele também pode ser usado como uma estação de trânsito para enviar arquivos locais para recursos.

-sv/ --spark-version

String

Não

Versão do componente Spark usada por um trabalho.

-st / `--sc-type

String

Não

Se a versão atual do componente Spark for 2.3.2, deixe este parâmetro em branco. Se a versão atual do componente Spark for 2.3.3, configure este parâmetro quando feature estiver definido como basic ou ai. Se este parâmetro não for especificado, será usada a versão padrão do componente Spark 2.3.2.

--feature

String

Não

Recurso de trabalho, indicando o tipo da imagem do Spark usada por um trabalho. O valor padrão é basic.

  • basic: uma imagem é usada base do Spark fornecida pelo DLI.
  • custom: uma imagem personalizada do Spark é usada.
  • ai: uma imagem de IA fornecida pelo DLI é usada.

--queue

String

Não

Nome da fila. Defina este parâmetro para o nome de uma fila do DLI criada. A fila deve ser do tipo comum. Para obter detalhes sobre como obter um nome de fila, consulte Tabela 1.

-ec / --executor-cores

String

Não

Número de núcleos de CPU de cada Executor na aplicação Spark. Essa configuração substituirá a configuração padrão em sc_type.

-em / --executor-memory

String

Não

Memória do executor da aplicação Spark, por exemplo, 2 GB ou 2048 MB. Essa configuração substituirá a configuração padrão em sc_type. A unidade deve ser fornecida. Caso contrário, a inicialização falha.

-ne / --num-executors

String

Não

Número de Executores em uma aplicação Spark. Essa configuração substituirá a configuração padrão em sc_type.

-dc / --driver-cores

String

Não

Número de núcleos de CPU do driver de aplicação Spark. Essa configuração substituirá a configuração padrão em sc_type.

-dm / --driver-memory

String

Não

Memória do driver da aplicação Spark, por exemplo, 2 GB ou 2048 MB. Essa configuração substituirá a configuração padrão em sc_type. A unidade deve ser fornecida. Caso contrário, a inicialização falha.

--conf

Array of string

Não

Configuração de Batch. Para obter detalhes, consulte Configuração do Spark. Para especificar vários parâmetros, use --conf conf1 --conf conf2.

--resources

Array of string

Não

Nome de um pacote de recursos, que pode ser um arquivo local, caminho do OBS ou um arquivo que tenha sido carregado para o sistema de gestão de recursos do DLI. Para especificar vários parâmetros, use --resources resource1 --resources resource2.

--files

Array of string

Não

Nome do pacote de arquivos que foi carregado para o sistema de gerenciamento de recursos do DLI. Você também pode especificar um caminho do OBS, por exemplo, obs://Bucket name/Package name. Arquivos locais também são suportados. Para especificar vários parâmetros, use --files file1 --files file2.

--jars

Array of string

Não

Nome do pacote JAR que foi carregado no sistema de gerenciamento de recursos do DLI. Você também pode especificar um caminho do OBS, por exemplo, obs://Bucket name/Package name. Arquivos locais também são suportados. Para especificar vários parâmetros, use --jars jar1 --jars jar2.

-pf /--python-files

Array of string

Não

Nome do pacote do PyFile que foi carregado para o sistema de gerenciamento de recursos do DLI. Você também pode especificar um caminho do OBS, por exemplo, obs://Bucket name/Package name. Arquivos locais também são suportados. Para especificar vários parâmetros, use --python-files py1 --python-files py2.

--groups

Array of string

Não

Nome do grupo de recursos. Para especificar vários parâmetros, use --groups group1 --groups group2.

--args

Array of string

Não

Parâmetros de entrada da classe principal, que são parâmetros da aplicação. Para especificar vários parâmetros, use --args arg1 --args arg2.

-q / --quiet

Bool

Não

Depois que um trabalho do Spark de DLI é enviado, o sistema sai diretamente e não imprime o status do trabalho de forma síncrona.

Exemplos

  • Envie um trabalho do Spark de DLI usando o arquivo YAML_FILE.
    $ma-cli dli-job submit dli_job.yaml

  • Envie um trabalho do Spark de DLI especificando o parâmetro options na 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