Pratique o data lake iceberg Lição 29 Como obter o jobId do flink de forma elegante e eficiente

Diretório de artigos da série

Pratique Data Lake iceberg Lição 1 Introdução
Pratique Data Lake iceberg Lição 2 Iceberg é baseado no formato de dados subjacente do hadoop
Pratique data lake
iceberg No sqlclient, use SQL para ler dados de Kafka para iceberg (atualize a versão para flink1.12.7)
pratique data lake iceberg Lição 5 recursos do catálogo hive
prática data lake iceberg lição 6 escrever de kafka para iceberg falha resolução de problemas
prática data lake iceberg lição 7 escrever no iceberg
praticar data lake iceberg em tempo real lição 8 hive e iceberg integrar
prática data lake iceberg lição 9 mesclar pequeno arquivos
praticar data lake iceberg Lição 10 exclusão de instantâneo
praticar data lake iceberg Lição 11 testar a integridade da tabela de partição Processo (criar números, construir tabelas, mesclar e excluir instantâneos)
praticar data lake iceberg Lição 12 O que é um catálogo
Praticar data lake iceberg Lição 13 Metadados é muitas vezes maior que os arquivos de dados
Pratique o data lake iceberg Lição 14 Fusão de dados (para resolver o problema da expansão de metadados ao longo do tempo)
pratique o data lake iceberg Lição 15 instalação e integração do spark iceberg (conflito de pacotes de jérsei)
pratique o data lake iceberg Lição 16 abra o conhecimento do iceberg através da porta spark3
Praticar o data lake iceberg Lição 17 Hadoop2.7, spark3 na configuração do yarn run iceberg
Praticar o data lake iceberg Lição 18 Vários clientes interagem com o iceberg Comandos Start (comandos comumente usados)
Praticar o data lake iceberg Lição 19 flink count iceberg , Sem problema de resultado
praticar o data lake iceberg Lição 20 flink + iceberg Cenário do CDC (problema na versão, teste falhou)
praticar data lake iceberg Lição 21 flink1.13.5 + iceberg0.131 CDC (teste INSERT bem-sucedido, operação de alteração falhou)
Praticar data lake iceberg Lição 22 flink1.13.5 + iceberg0. 131 CDC (teste CRUD bem-sucedido)
prática data lake iceberg Lição 23 flink-sql reinício
prática data lake iceberg do ponto de verificação Lição 24 detalhes de metadados do iceberg Analisando
a prática data lake iceberg Lição 25 Executando flink sql em segundo plano O efeito da adição, exclusão e modificação
Praticar data lake iceberg Lição 26 método de configuração de ponto de verificação
Praticar data lake iceberg Lição 27 Reinicialização do programa de teste Flink cdc: pode reiniciar do último ponto de verificação para continuar trabalhando
prática data lake iceberg Lição 28 Implantar pacotes que não existem no warehouse público para local warehouse
prática data lake iceberg lição 29 como obter flink jobId de forma elegante e eficiente
prática data lake iceberg lição 30 mysql -> iceberg, clientes diferentes às vezes têm problemas de zona
Pratique o data lake iceberg Lição 31 use a ferramenta flink-streaming-platform-web do github para gerenciar o fluxo de tarefas do flink, teste o cenário de reinicialização do cdc
pratique o data lake iceberg mais diretório de conteúdo



prefácio

Envie um trabalho flink e espere obter o jobId do trabalho para monitoramento subsequente do programa, como obter o caminho do ponto de verificação e reiniciar a partir do ponto de verificação


1. Lazy, a solução da Baidu

O resultado da verificação é verificar o jobname ou analisar o jobId do arquivo de log enviado. Esse tipo de solução realmente não é bom!

2. Solução elegante e eficiente

Método 1. Obtenha diretamente de env:

       JobClient jobClient = env.executeAsync();
      JobID jobID = jobClient.getJobID();
      System.out.println("-----拿到jobId了:"+jobID);

Método 2: Se você executar sql ou o método de id:

        TableResult tableResult = tableEnv.executeSql(temple.sourceToIcebergSinkSql());
//        tableEnv.executeSql("select * from "+ temple.mysqlTableName()).print();
        //TODO 6.执行任务

        Optional<JobClient> jobClient1 = tableResult.getJobClient();
        if(jobClient1.isPresent()){
    
    
            System.out.println("-----拿到jobId了:"+jobClient1.get().getJobID());
        }else{
    
    
            System.out.println("jobClient不存在");
        }

Como conhecer este método?

  1. O envio do trabalho retornará: O trabalho foi enviado com JobID bfc603a0404f9bb91f2b6bd14657fb09
  2. Find Job foi enviado com JobID no código-fonte
    @Override
    public JobClient executeAsync(StreamGraph streamGraph) throws Exception {
    
    
        validateAllowedExecution();
        final JobClient jobClient = super.executeAsync(streamGraph);

        if (!suppressSysout) {
    
    
            System.out.println("Job has been submitted with JobID " + jobClient.getJobID());
        }

        return jobClient;
    }

No código-fonte acima, não é apenas jobClient.getJobId, haha


Resumir

Quando o Baidu não é fácil de usar, ainda depende das habilidades reais!

Acho que você gosta

Origin blog.csdn.net/spark_dev/article/details/124198234
Recomendado
Clasificación