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
--listou 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
-
Baixe o pacote de instalação.
wget https://dla003.oss-cn-hangzhou.aliyuncs.com/adb-spark-toolkit-submit-0.0.1.tar.gz -
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 |
|
|
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. |
|
|
Sim |
AccessKey secret da conta Alibaba Cloud ou do usuário RAM. Para mais detalhes, consulte Contas e permissões. |
|
|
Sim |
ID da região do cluster AnalyticDB for MySQL. |
|
|
Sim |
ID do cluster AnalyticDB for MySQL. |
|
|
Sim |
Nome do grupo de recursos de job usado para execute aplicações Spark. |
|
|
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 |
|
|
Não |
AccessKey secret para acesso ao OSS. Obrigatório em conjunto com |
|
|
Não |
Caminho no OSS para upload de arquivos JAR locais. Obrigatório em conjunto com |
|
|
Não |
Parâmetros adicionais de configuração do Spark no formato |
Envie uma aplicação Spark
Carregue os arquivos JAR da sua aplicação Spark no OSS. Para mais detalhes, consulte Upload simples.
-
Acesse o diretório do spark-submit.
cd adb-spark-toolkit-submit -
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 args1Substitua os placeholders conforme descrito abaixo:
Placeholder
Descrição
<bucket-name>Nome do bucket do OSS que contém seus arquivos JAR
args0 args1Argumentos 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 |
|
|
Aplicação executada com sucesso |
|
|
Falha na aplicação |
|
|
Aplicação encerrada |
A tabela a seguir descreve os parâmetros do spark-submit usados no comando acima.
|
Parâmetro |
Descrição |
|
|
Classe principal da aplicação Java ou Scala. Não necessário para aplicações Python. |
|
|
Exibe logs gerados durante o envio. |
|
|
Nome da aplicação Spark. |
|
|
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 |
|
|
Parâmetros de configuração do Spark. Especifique múltiplos parâmetros como flags separadas: |
|
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. |
|
|
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:
Execute
--listpara obter o ID da aplicação.Use o ID da aplicação com
--status,--get-logou--detailpara monitorar o progresso.Execute
--killpara 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 |
|
|
|
Número máximo de tentativas para comandos com falha. O sistema não repete comandos de envio. Consulte Limitações para mais detalhes. |
|
|
|
Tempo limite em segundos antes de tentar novamente um comando com falha. |
|
|
— |
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). |
|
|
— |
Lista as aplicações enviadas. Use em conjunto com |
|
|
|
Número da página para os resultados da lista. |
|
|
|
Quantidade de aplicações retornadas por página. |
|
|
— |
Encerra a aplicação especificada. |
|
|
— |
Recupera os logs da aplicação especificada. |
|
|
— |
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.