Accéder au contenu principal Passer au contenu complémentaire

Exécuter des tâches en parallèle sur un moteur distant

Talend Remote Engine a toujours été capable d'exécuter des tâches différentes en parallèle. Depuis la version v2.12.0, il supporte également l'exécution parallèle de tâches identiques.

En d'autres termes, vous pouvez exécuter plusieurs instances d'une même tâche en parallèle sur un moteur distant v2.12.0 ou supérieure.

Cette section présente les paramètres à utiliser pour gérer cette fonctionnalité d'exécution parallèle d'un moteur distant unique, que ce moteur fasse partie ou non d'un cluster de moteurs distants.

Avant de commencer

  • Assurez-vous que la dernière version du moteur est installée.
  • Assurez-vous d'appliquer des techniques de programmation simultanées sur votre Job et son implémentation, afin que votre tâche soit adaptée aux exécutions parallèles, notamment si vous décidez d'activer les exécutions parallèles d'une tâche sur un moteur distant unique. Par exemple, les exécutions parallèles doivent avoir un accès cohérent aux ressources partagées.

Procédure

  1. Arrêtez votre moteur.
  2. Parcourez votre système jusqu'au dossier <RemoteEngineInstallationDirectory>/etc.
  3. Ouvrez le fichier org.talend.ipaas.rt.deployment.agent.cfg et modifiez les paramètres comme suit :
    Le tableau suivant présente les paramètres modifiables dans le fichier org.talend.ipaas.rt.deployment.agent.cfg :
    Exécutions parallèles de tâches identiques
    • Si vous souhaitez activer le support de cette fonctionnalité, assurez-vous de la présence de la ligne suivante :
      job.deployment.direct=true

      Pour les moteurs distants v2.12.4 et supérieures, le déploiement direct devient le mode de déploiement par défaut et le seul mode de déploiement utilisé par le moteur. Le paramètre job.deployment.direct associé est supprimé, puisque vous n'avez plus besoin de le configurer.

      En même temps, vous devez autoriser les exécutions parallèles de cette tâche, pour tirer parti de la configuration du moteur, c'est-à-dire utiliser l'une des opérations suivantes :
      • Dans Talend Management Console, sélectionnez l'option Allow parallel execution of this task (Autoriser l'exécution parallèle de cette tâche) lors de la configuration de la tâche.
      • Via une API, configurez le paramètre parallelExecutionAllowed à true lors de l'émission de requêtes pour créer ou mettre à jour des tâches.
      Sinon, l'exécution parallèle ne s'applique pas, malgré la configuration du moteur.
    Nombre maximal d'exécutions simultanées

    Par défaut, seules trois exécutions parallèles sont autorisées, qu'elles soient différentes ou identiques.

    • Vous pouvez augmenter cette limite afin d'autoriser autant d'exécution parallèles que vous le souhaitez, si vous disposez des ressources nécessaires.
      max.deployed.flows=3
      Si vous configurez la limite de tâches simultanées à 0, il n'y a aucune limitation sur le nombre de tâches que vous pouvez exécuter en parallèle sur le moteur distant, si vous disposez des ressources nécessaires.
    Dans un cluster de moteurs distants Lorsqu'un moteur distant a été ajouté à un cluster, les exécutions parallèles de tâches identiques ou différentes sont par défaut étalées à travers le cluster.
    Cependant, lorsque les tâches à exécuter sont identiques, vous pouvez augmenter les exécutions parallèles sur un seul moteur distant, en configurant le paramètre suivant à true :
    cluster.engine.same.task.parallel.run=true
  4. Redémarrez votre moteur.

Résultats

Vous pouvez commencer à exécuter des tâches sur votre Talend Remote Engine lorsqu'il est à nouveau Available dans Talend Management Console.
Résolution de problèmes : Lorsque plusieurs instances de votre tâche sont en cours de déploiement, une instance peut accidentellement écraser une autre instance, ce qui conduit à l'échec du déploiement global.
Pour corriger ce problème, procédez comme suit :
  1. Ouvrez le fichier org.talend.ipaas.rt.deployment.agent.cfg.
  2. Ajoutez un paramètre au fichier :
    lock.same.task.jobs.parallel.deployment=true
  3. Enregistrez le fichier et redémarrez votre moteur.

Ce paramètre verrouille les instances lors de leur déploiement, afin d'éviter leur écrasement par d'autres instances parallèles du même Job.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.