Todos os produtos
Search
Central de documentação

AnalyticDB:Desenvolva aplicações Spark usando a ferramenta de linha de comando Spark-Submit

Última atualização: Sep 23, 2026

A ferramenta de linha de comando spark-submit do AnalyticDB for MySQL permite que você envie e gerencie 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.

  • Os comandos de envio não são repetidos em caso de falha, pois o envio não é uma operação idempotente. Um comando que parece falhar por tempo limite de rede pode ter sido executado com sucesso. Verifique se o envio foi bem-sucedido usando --list ou acesse o console do AnalyticDB for MySQL.

Pré-requisitos

Antes de começar, certifique-se de que você possui:

  • Um cluster do 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

  • O Java Development Kit (JDK) 1.8 ou superior 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

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

secretId

Sim

O AccessKey secret da conta Alibaba Cloud ou do usuário RAM. Para mais detalhes, consulte Accounts and permissions.

regionId

Sim

O ID da região do cluster do AnalyticDB for MySQL.

clusterId

Sim

O ID do cluster do AnalyticDB for MySQL.

rgName

Sim

O nome do grupo de recursos de job usado para a execução de aplicações Spark.

ossKeyId

Não

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

ossSecretId

Não

O AccessKey secret para acesso ao OSS. Necessário em conjunto com o ossKeyId.

ossUploadPath

Não

O caminho do OSS para o envio de arquivos JAR locais. Necessário em conjunto com o ossKeyId.

conf

Não

Parâmetros de configuração adicionais do Spark no formato key:value. Separe vários parâmetros com vírgulas. Para os parâmetros disponíveis, consulte Spark application configuration parameters.

Envie uma aplicação Spark

  1. Carregue os arquivos JAR da sua aplicação Spark para o OSS. Para mais detalhes, consulte Simple upload.

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

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

    ./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 espaços reservados da seguinte forma:

    Espaço reservado

    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

A aplicação foi executada com sucesso

255

A aplicação falhou

143

A aplicação foi encerrada

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

Parâmetro

Descrição

--class

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

--verbose

Imprime os logs gerados durante o envio.

--name

O nome da aplicação Spark.

--jars

Caminhos absolutos do OSS separados por vírgulas para arquivos JAR adicionais dos quais a aplicação depende. Especifique caminhos locais e 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 arquivo usando sua soma de verificação MD5. Se já existir um arquivo com o mesmo nome e valor MD5 no OSS, o sistema cancela o upload. Caso atualize manualmente um arquivo JAR no OSS, exclua o arquivo de soma de verificação MD5 correspondente para que o sistema envie o arquivo atualizado. O usuário RAM deve ter a permissão AliyunOSSFullAccess.

--conf

Parâmetros de configuração do Spark. Especifique vários parâmetros como sinalizadores separados: --conf key1=value1 --conf key2=value2. Para parâmetros específicos do AnalyticDB for MySQL, consulte Differences from open source spark-submit.

Caminho do arquivo principal

O caminho absoluto do OSS do arquivo JAR principal (para Java/Scala) ou do script de ponto de entrada (para Python). Todos os arquivos principais devem ser 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 do 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 os detalhes do envio e a 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 seguintes parâmetros 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. Os comandos de envio não são repetidos. Consulte Limitações para mais detalhes.

--time-out-seconds

10

Período de tempo limite em segundos antes de tentar novamente um comando com falha.

--enable-inner-endpoint

—

Ative o acesso à rede interna em 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 com --pagenumber e --pagesize para paginar os resultados.

--pagenumber

1

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

--pagesize

10

Número 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 Spark application configuration parameters.