Skalieren mit Sellerie¶

CeleryExecutor ist eine der Möglichkeiten, wie Sie die Anzahl der Mitarbeiter skalieren können. Damit dies funktioniert, müssen Sie ein Sellerie-Backend (RabbitMQ, Redis, …) einrichten und Ihre airflow.cfg ändern, um den Executor-Parameter aufCeleryExecutor zu verweisen und die zugehörigen Sellerie-Einstellungen bereitzustellen.

Weitere Informationen zum Einrichten eines Sellerie-Brokers finden Sie in der ausführlichen Sellerie-Dokumentation zu diesem Thema.

Hier sind einige zwingende Anforderungen an Ihre Mitarbeiter:

  • airflow muss installiert werden, und die CLI muss sich im Pfad befinden

  • Die Luftstromkonfigurationseinstellungen sollten im gesamten Cluster homogen sein

  • Operatoren, die auf dem Worker ausgeführt werden, müssen ihre Abhängigkeiten in diesem Kontext haben. Wenn Sie beispielsweise HiveOperator verwenden, muss die Hive-CLI auf dieser Box installiert sein, oder wenn Sie MySqlOperator verwenden, muss die erforderliche Python-Bibliothek in PYTHONPATH verfügbar sein.

  • Der Worker muss Zugriff auf DAGS_FOLDER haben, und Sie müssensynchronisieren Sie die Dateisysteme mit Ihren eigenen Mitteln. Ein übliches Setup wäre, Ihren DAGS_FOLDER in einem Git-Repository zu speichern und ihn mit Chef, Puppet, Ansible oder was auch immer Sie zum Konfigurieren von Maschinen in Ihrer Umgebung verwenden, auf Computern zu synchronisieren. Wenn alle Ihre Boxen einen gemeinsamen Einhängepunkt haben, sollte es auch funktionieren, yourpipelines-Dateien dort freizugeben

Um einen Worker zu starten, müssen Sie Airflow einrichten und den workersubcommand starten

airflow worker

Ihr Mitarbeiter sollte anfangen, Aufgaben aufzunehmen, sobald er in diese Richtung gefeuert wird.

Beachten Sie, dass Sie auch “Sellery Flower” ausführen können, eine Web-Benutzeroberfläche, die auf Sellerie basiert, um Ihre Mitarbeiter zu überwachen. Sie können den Shortcut-Befehl airflow flower verwenden, um einen Flower-Webserver zu starten.

Bitte beachten Sie, dass die flower Python-Bibliothek bereits auf Ihrem System installiert sein muss. Der empfohlene Weg ist, das Airflow Sellerie Bundle zu installieren.

pip install 'apache-airflow'

Einige Vorbehalte:

  • Stellen Sie sicher, dass Sie ein datenbankgestütztes Ergebnis-Backend verwenden

  • Stellen Sie sicher, dass Sie ein Sichtbarkeitszeitlimit festlegen, das die ETA Ihrer am längsten laufenden Aufgabe überschreitet

  • Aufgaben können Ressourcen verbrauchen. Stellen Sie sicher, dass Ihr Worker über genügend Ressourcen verfügt, um worker_concurrency-Aufgaben auszuführen

  • Warteschlangennamen sind auf 256 Zeichen beschränkt, aber jedes Broker-Backend kann seine eigenen Einschränkungen haben

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.