Todos os produtos
Search
Central de documentação

AnalyticDB:Develop Spark applications using the Spark-Submit command-line tool

Última atualização: Jul 10, 2026

A ferramenta de linha de comando spark-submit do AnalyticDB for MySQL permite enviar e gerenciar aplicações Spark JAR a partir de um cliente. Este tópico explica como instale e configure a ferramenta, envie uma aplicação Spark JAR e gerencie jobs em execução.

Limitações

  • A ferramenta spark-submit suporta apenas aplicações Spark JAR. Não é possível enviar aplicações Spark SQL.

  • O sistema não repete automaticamente os comandos de envio em caso de falha, pois essa operação não é idempotente. Um comando que aparenta ter falhado devido a timeout de rede pode ter sido executado com sucesso. Para verifique se o envio foi bem-sucedido, use --list ou consulte o console do AnalyticDB for MySQL.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster AnalyticDB for MySQL Data Lakehouse Edition

  • Um grupo de recursos de job. Para mais detalhes, consulte Crie e gerencie um grupo de recursos

  • Um bucket do Object Storage Service (OSS) na mesma região do cluster

  • Java Development Kit (JDK) 1.8 ou posterior instalado na máquina cliente

Instale o spark-submit

  1. Baixe o pacote de instalação.

    wget https://dla003.oss-cn-hangzhou.aliyuncs.com/adb-spark-toolkit-submit-0.0.1.tar.gz
  2. Descompacte o pacote.

    tar zxvf adb-spark-toolkit-submit-0.0.1.tar.gz

Configure o spark-submit

Após descompactar o pacote, abra o arquivo adb-spark-toolkit-submit/conf/spark-defaults.conf. O script spark-submit lê esse arquivo automaticamente e as configurações se aplicam a todas as aplicações Spark.

vim adb-spark-toolkit-submit/conf/spark-defaults.conf

A tabela a seguir descreve os parâmetros de configuração.

Parâmetro

Obrigatório

Descrição

keyId

Sim

AccessKey ID de uma conta Alibaba Cloud ou de um usuário do Resource Access Management (RAM) com permissão para acessar o AnalyticDB for MySQL. Para mais detalhes, consulte Contas e permissões.

secretId

Sim

AccessKey secret da conta Alibaba Cloud ou do usuário RAM. Para mais detalhes, consulte Contas e permissões.

regionId

Sim

ID da região do cluster AnalyticDB for MySQL.

clusterId

Sim

ID do cluster AnalyticDB for MySQL.

rgName

Sim

Nome do grupo de recursos de job usado para execute aplicações Spark.

ossKeyId

Não

AccessKey ID para acesso ao OSS. Necessário quando arquivos JAR armazenados localmente precisam ser carregados no OSS. O usuário RAM deve ter a permissão AliyunOSSFullAccess.

ossSecretId

Não

AccessKey secret para acesso ao OSS. Obrigatório em conjunto com ossKeyId.

ossUploadPath

Não

Caminho no OSS para upload de arquivos JAR locais. Obrigatório em conjunto com ossKeyId.

conf

Não

Parâmetros adicionais de configuração do Spark no formato key:value. Separe múltiplos parâmetros por vírgulas. Para consultar os parâmetros disponíveis, veja Parâmetros de configuração de aplicações Spark.

Envie uma aplicação Spark

  1. Carregue os arquivos JAR da sua aplicação Spark no OSS. Para mais detalhes, consulte Upload simples.

  2. Acesse o diretório do spark-submit.

    cd adb-spark-toolkit-submit
  3. Envie a aplicação Spark. Substitua os placeholders pelos caminhos reais do OSS e nomes de recursos.

    ./bin/spark-submit \
      --class com.aliyun.spark.oss.SparkReadOss \
      --verbose \
      --name Job1 \
      --jars oss://<bucket-name>/jars/test.jar,oss://<bucket-name>/jars/search.jar \
      --conf spark.driver.resourceSpec=medium \
      --conf spark.executor.instances=1 \
      --conf spark.executor.resourceSpec=medium \
      oss://<bucket-name>/jars/test1.jar args0 args1

    Substitua os placeholders conforme descrito abaixo:

    Placeholder

    Descrição

    <bucket-name>

    Nome do bucket do OSS que contém seus arquivos JAR

    args0 args1

    Argumentos para os arquivos JAR, separados por espaços

Após o envio da aplicação, o sistema retorna um dos seguintes códigos:

Código de retorno

Significado

0

Aplicação executada com sucesso

255

Falha na aplicação

143

Aplicação encerrada

A tabela a seguir descreve os parâmetros do spark-submit usados no comando acima.

Parâmetro

Descrição

--class

Classe principal da aplicação Java ou Scala. Não necessário para aplicações Python.

--verbose

Exibe logs gerados durante o envio.

--name

Nome da aplicação Spark.

--jars

Caminhos absolutos no OSS, separados por vírgula, de arquivos JAR adicionais dos quais a aplicação depende. Se você especifique caminhos locais, a ferramenta fará o upload deles para o caminho do OSS configurado em ossUploadPath. Durante o upload de um arquivo JAR local, o sistema verifica o checksum MD5 do arquivo. Se já existir um arquivo com o mesmo nome e valor MD5 no OSS, o upload será cancelado. Caso tenha atualizado manualmente um arquivo JAR no OSS, exclua o arquivo de checksum MD5 correspondente para garantir o upload da versão atualizada. O usuário RAM deve ter a permissão AliyunOSSFullAccess.

--conf

Parâmetros de configuração do Spark. Especifique múltiplos parâmetros como flags separadas: --conf key1=value1 --conf key2=value2. Para parâmetros específicos do AnalyticDB for MySQL, consulte Diferenças em relação ao spark-submit open source.

Caminho do arquivo principal

Caminho absoluto no OSS do arquivo JAR principal (para Java/Scala) ou do script de ponto de entrada (para Python). Todos os arquivos principais devem estar armazenados no OSS.

args

Argumentos para os arquivos JAR, separados por espaços.

Gerencie aplicações Spark

Após enviar uma aplicação, siga este fluxo de trabalho típico:

  1. Execute --list para obter o ID da aplicação.

  2. Use o ID da aplicação com --status, --get-log ou --detail para monitorar o progresso.

  3. Execute --kill para interromper a aplicação, se necessário.

Liste as aplicações

Use o ID da aplicação retornado aqui com todos os outros comandos de gerenciamento.

./bin/spark-submit --list \
  --clusterId <cluster-ID> \
  --rgName <resource-group-name> \
  --pagenumber 1 \
  --pagesize 3

Substitua <cluster-ID> pelo ID do seu cluster AnalyticDB for MySQL e <resource-group-name> pelo nome do grupo de recursos de job.

Verifique o status da aplicação

./bin/spark-submit --status <application-ID>

Visualize detalhes do envio e URL da Spark UI

./bin/spark-submit --detail <application-ID>

A saída inclui um campo Spark WEB UI com a URL da Spark UI para essa aplicação.

Visualize os logs da aplicação

./bin/spark-submit --get-log <application-ID>

Encerre uma aplicação

./bin/spark-submit --kill <application-ID>

Diferenças em relação ao spark-submit open source

Parâmetros específicos do spark-submit do AnalyticDB for MySQL

Os parâmetros a seguir estão disponíveis apenas na ferramenta spark-submit do AnalyticDB for MySQL.

Parâmetro

Padrão

Descrição

--api-retry-times

3

Número máximo de tentativas para comandos com falha. O sistema não repete comandos de envio. Consulte Limitações para mais detalhes.

--time-out-seconds

10

Tempo limite em segundos antes de tentar novamente um comando com falha.

--enable-inner-endpoint

Ative o acesso pela rede interna dentro de uma Virtual Private Cloud (VPC). Use esta opção ao enviar aplicações a partir de uma instância do Elastic Compute Service (ECS).

--list

Lista as aplicações enviadas. Use em conjunto com --pagenumber e --pagesize para paginar os resultados.

--pagenumber

1

Número da página para os resultados da lista.

--pagesize

10

Quantidade de aplicações retornadas por página.

--kill

Encerra a aplicação especificada.

--get-log

Recupera os logs da aplicação especificada.

--status

Mostra o status da aplicação especificada.

Parâmetros não suportados pelo spark-submit do AnalyticDB for MySQL

Alguns parâmetros do spark-submit open source não são suportados. Para a lista completa, consulte o tópico Parâmetros de configuração de aplicações Spark.