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
--listou 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
-
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 |
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. |
|
|
Sim |
O AccessKey secret da conta Alibaba Cloud ou do usuário RAM. Para mais detalhes, consulte Accounts and permissions. |
|
|
Sim |
O ID da região do cluster do AnalyticDB for MySQL. |
|
|
Sim |
O ID do cluster do AnalyticDB for MySQL. |
|
|
Sim |
O nome do grupo de recursos de job usado para a execução de aplicações Spark. |
|
|
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 |
|
|
Não |
O AccessKey secret para acesso ao OSS. Necessário em conjunto com o |
|
|
Não |
O caminho do OSS para o envio de arquivos JAR locais. Necessário em conjunto com o |
|
|
Não |
Parâmetros de configuração adicionais do Spark no formato |
Envie uma aplicação Spark
Carregue os arquivos JAR da sua aplicação Spark para o OSS. Para mais detalhes, consulte Simple upload.
-
Acesse o diretório do spark-submit.
cd adb-spark-toolkit-submit -
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 args1Substitua 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 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 |
|
|
A aplicação foi executada com sucesso |
|
|
A aplicação falhou |
|
|
A aplicação foi encerrada |
A tabela a seguir descreve os parâmetros do spark-submit usados no comando acima.
|
Parâmetro |
Descrição |
|
|
A classe principal da aplicação Java ou Scala. Não é necessário para aplicações Python. |
|
|
Imprime os logs gerados durante o envio. |
|
|
O nome da aplicação Spark. |
|
|
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 |
|
|
Parâmetros de configuração do Spark. Especifique vários parâmetros como sinalizadores separados: |
|
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. |
|
|
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 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 |
|
|
|
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. |
|
|
|
Período de tempo limite em segundos antes de tentar novamente um comando com falha. |
|
|
— |
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). |
|
|
— |
Lista as aplicações enviadas. Use com |
|
|
|
Número da página para os resultados da lista. |
|
|
|
Número 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 Spark application configuration parameters.