Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Paralleles Ausführen von Tasks auf einer Remote Engine

Mit Talend Remote Engine können seit jeher verschiedene Tasks parallel ausgeführt werden. Ab v2.12.0 wird ebenfalls die gleichzeitige Ausführung identischer Tasks unterstützt.

Das bedeutet: Ab der Remote Engine-Version v2.12.0 können Sie mehrere Instanzen derselben Task parallel auf einer einzelnen Remote Engine ausführen.

In diesem Abschnitt werden die Einstellungen erläutert, die zur Verwaltung dieser parallelen Ausführungsfunktion für eine einzelne Remote Engine verwendet werden, wobei die betroffene Engine zu einem Remote Engine-Cluster gehören kann oder nicht.

Vorbereitungen

  • Vergewissern Sie sich, dass Sie die neueste Engine-Version installiert haben.
  • Sie müssen übereinstimmende Programmiertechniken bei Ihrem Jobdesign und Ihrer Implementierung anwenden, damit Ihre Task Thread-sicher, d. h. für parallele Ausführungen geeignet ist, insbesondere dann, wenn Sie parallele Ausführungen einer Task auf einer einzelnen Remote Engine zulassen möchten. So müssen parallele Ausführungen beispielsweise über einen identischen Zugriff auf gemeinsam genutzte Ressourcen verfügen.

Prozedur

  1. Halten Sie die Engine an.
  2. Navigieren Sie zum Ordner <RemoteEngineInstallationDirectory>/etc.
  3. Öffnen Sie die Datei org.talend.ipaas.rt.deployment.agent.cfg und bearbeiten Sie die Parameter wie folgt:
    Die folgende TAbelle zeigt die Parameter in der Datei org.talend.ipaas.rt.deployment.agent.cfg, die bearbeitet werden können:
    Parallele Ausführungen identischer Tasks
    • Wenn Sie die Unterstützung hierfür aktivieren müssen, müssen Sie sicherstellen, dass die folgende Zeile vorhanden ist:
      job.deployment.direct=true

      Für Remote Engines ab Version v2.12.4 fungiert die direkte Implementierung als die einzige, von einer Engine standardmäßig verwendete Implementierung. Aus diesem Grund wurde der Parameter job.deployment.direct entfernt, da Sie ihn nicht mehr einzustellen brauchen.

      Gleichzeitig müssen Sie zulassen, dass parallele Ausführungen der betroffenen Task diese Engine-Konfiguration auch wirklich nutzen, d. h. einen der folgenden Vorgänge durchführen:
      • Wählen Sie bei der Taskkonfiguration in Talend Management Console die Option Allow parallel execution of this task (Parallele Ausführung dieser Task zulassen) aus.
      • Setzen Sie den Parameter parallelExecutionAllowed per API auf true, wenn Sie Requests zur Erstellung oder Aktualisierung von Tasks ausgeben.
      Andernfalls wird trotz der Engine-Konfiguration keine parallele Ausführung angewendet.
    Maximale Anzahl gleichzeitiger Ausführungen

    Standardmäßig sind nur 3 parallele Ausführungen zulässig, ungeachtet dessen, ob die auszuführenden Tasks identisch oder unterschiedlich sind.

    • Sie können diese Begrenzung erweitern, um so viele parallele Ausführungen unterschiedlicher Tasks wie gewünscht zuzulassen, sofern Sie ausreichend Ressourcen dafür besitzen.
      max.deployed.flows=3
      Wenn Sie den Grenzwert für gleichzeitige Tasks auf 0 setzen, ist die Anzahl der Tasks, die auf der Remote Engine parallel ausgeführt werden können, unbegrenzt, vorausgesetzt, Sie verfügen über ausreichend Ressourcen.
    In einem Remote Engine-Cluster Wenn in einem Cluster eine Remote Engine hinzugefügt wurde, werden parallele Ausführungen identischer oder unterschiedlicher Tasks standardmäßig auf das gesamte Cluster verteilt.
    Wenn die auszuführenden Tasks jedoch identisch sind, können Sie die parallelen Ausführungen auf einer einzelnen Remote Engine unterstützen, indem Sie den folgenden Parameter auf true setzen:
    cluster.engine.same.task.parallel.run=true
  4. Starten Sie die Engine neu.

Ergebnisse

Sie können mit der Ausführung von Tasks auf Ihrer Talend Remote Engine beginnen, sobald diese in Talend Management Console erneut verfügbar (Available) ist.
Troubleshooting: Wenn mehrere Threads einer Task implementiert werden, kann es zu einem versehentlichen Überschreiben eines Threads durch einen anderen Thread kommen. Das kann das Scheitern der gesamten Implementierung zur Folge haben.
Gehen Sie vor wie folgt, um dieses Problem zu beheben:
  1. Öffnen Sie die Datei org.talend.ipaas.rt.deployment.agent.cfg.
  2. Fügen Sie einen neuen Parameter in der Datei hinzu:
    lock.same.task.jobs.parallel.deployment=true
  3. Speichern Sie die Datei und starten Sie die Engine neu.

Dieser Parameter sperrt einen Thread während der Implementierung, um zu verhindern, dass er durch die anderen parallel ausgeführten Threads desselben Jobs überschrieben wird.

Hat diese Seite Ihnen geholfen?

Wenn Sie ein Problem mit dieser Seite oder ihrem Inhalt feststellen, sei es ein Tippfehler, ein ausgelassener Schritt oder ein technischer Fehler, informieren Sie uns bitte!