Entraînez-vous à l'iceberg du lac de données Leçon 29 Comment obtenir le jobId de flink de manière élégante et efficace

Répertoire des articles de la série

Pratiquer Data Lake iceberg Leçon 1 Mise en route
Pratiquer Data Lake iceberg Leçon 2 Iceberg est basé sur le format de données sous-jacent de hadoop
Pratiquer data lake
iceberg Dans sqlclient, utiliser SQL pour lire des données de Kafka à iceberg (mettre à niveau la version vers flink1.12.7)
pratiquer data lake iceberg Leçon 5 caractéristiques du catalogue de la ruche
pratiquer les données lac iceberg Leçon 6 écrire de kafka à l'échec de l'iceberg résolution de problèmes
pratiquer les données lac iceberg Leçon 7 écrire sur l'iceberg
pratiquer les données lac iceberg en temps réel Leçon 8 intégration de la ruche et de l'iceberg
pratiquer les données lac iceberg Leçon 9 fusionner petit fichiers
pratique data lake iceberg Leçon 10 snapshot delete
pratique data lake iceberg Leçon 11 tester l'intégrité de la table de partition Processus (création de nombres, création de tables, fusion et suppression d'instantanés)
Pratique data lake iceberg Leçon 12 Qu'est-ce qu'un catalogue
Pratique data lake iceberg Leçon 13 Métadonnées est plusieurs fois plus volumineux que les fichiers de données Pratiquez l'iceberg du
lac de données Leçon 14 Fusion de données (pour résoudre le problème de l'expansion des métadonnées au fil du temps) reconnaissance de l'iceberg grâce à la porte spark3


Entraînez-vous à l'iceberg du lac de données Leçon 17 Hadoop2.7, spark3 sur la configuration de l'iceberg de la course de fils Entraînez-vous à l'
iceberg du lac de données Leçon 18 Plusieurs clients interagissent avec les commandes de démarrage de l'iceberg (commandes couramment utilisées) Entraînez-vous à l'
iceberg du lac de données Leçon 19 iceberg de nombre de clignotements , aucun problème de résultat
pratiquez le lac de données iceberg Leçon 20 flink + iceberg Scénario CDC (problème de version, test échoué)
pratique data lake iceberg Leçon 21 flink1.13.5 + iceberg0.131 CDC (test réussi INSERT, opération de modification échouée)
Practice data lake iceberg Leçon 22 flink1.13.5 + iceberg0. 131 CDC (test CRUD réussi)
données de pratique lac iceberg Leçon 23 redémarrage de flink-sql
données de pratique lac iceberg à partir du point de contrôle Leçon 24 détails des métadonnées de l'iceberg Analyse
de la pratique données lac iceberg Leçon 25 Exécution de flink sql en arrière-plan L'effet de l'ajout, de la suppression et de la modification
Entraînez-vous à l'iceberg du lac de données Leçon 26 Méthode de configuration des points de contrôle Entraînez-vous à l'iceberg du lac de données Leçon 27 Redémarrage du
programme de test Flink cdc: peut redémarrer à partir du dernier point de contrôle pour continuer à travailler
entrepôt
pratique data lake iceberg Leçon 29 comment obtenir flink jobId élégamment et efficacement
pratiquer data lake iceberg leçon 30 mysql -> iceberg, différents clients ont parfois des problèmes de zone
Pratiquer l'iceberg du lac de données Leçon 31 utiliser l'outil flink-streaming-platform-web de github pour gérer le flux de tâches flink, tester le scénario de redémarrage cdc
pratiquer l'iceberg du lac de données plus de répertoire de contenu



avant-propos

Soumettez une tâche flink et espérez obtenir le jobId de la tâche pour une surveillance ultérieure du programme, telle que l'obtention du chemin du point de contrôle et le redémarrage à partir du point de contrôle


1. Paresseux, la solution de Baidu

Le résultat de la vérification est de vérifier le nom du travail ou d'analyser le jobId à partir du fichier journal soumis. Ce type de solution n'est vraiment pas bon !

2. Solution élégante et efficace

Méthode 1. Obtenir directement de env :

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

Méthode 2 : Si vous exécutez sql, ou la méthode 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不存在");
        }

Comment connaître cette méthode ?

  1. La soumission du travail renverra : Le travail a été soumis avec JobID bfc603a0404f9bb91f2b6bd14657fb09
  2. Find Job a été soumis avec JobID dans le code source
    @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;
    }

Dans le code source ci-dessus, n'est-ce pas juste jobClient.getJobId, haha


Résumer

Quand Baidu n'est pas facile à utiliser, cela dépend encore des compétences réelles !

Je suppose que tu aimes

Origine blog.csdn.net/spark_dev/article/details/124198234
conseillé
Classement