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
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.
|
--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