Als eines der beliebtesten Open-Source-Tools zur Verwaltung von Datenpipelines hat Apache Airflow viele Benutzer auf der ganzen Welt. Es wird von vielen gemocht, aber wie jede andere Software hat es auch einige Schwachstellen. Um dieses System auf dem neuesten Stand zu halten und einige Probleme zu lösen, führt das Airflow-Team Community-Umfragen durch und arbeitet an neuen Versionen der Software. Vor Kurzem wurde Airflow 2.0 mit vielen neuen Funktionen auf den Markt gebracht, beispielsweise mit einem effizienteren Scheduler. Diejenigen, die sich für den Airflow 2.0 entschieden haben, werden schnell feststellen, dass das Hauptaugenmerk des Airflow-Teams auf dem Scheduler lag. Obwohl Airflow die Aufgaben immer relativ gut ausgeführt hat, war die Verbesserung der Effizienz entscheidend, um eine höhere Gesamtleistung des gesamten Systems zu erreichen. Sind Sie neugierig, wie sich der neue Airflow-Scheduler vom alten unterscheidet?
Apache Airflow Scheduler — wofür ist er?
Apache Airflow wurde transformiert. Das Team von Airflow hat zahlreiche neue Funktionen hinzugefügt und die Leistung verschiedener Komponenten der Software verbessert. Derjenige, der die bedeutendste Änderung erfahren hat, war der Scheduler. Sein Zweck besteht darin, die Pipelines von Aufgaben zu lesen, die als DAGs — Directed Acyclic Graphs — dargestellt werden. Es wird verwendet, um die in DAGs enthaltenen Aufgaben zu planen und deren Ausführung zu überwachen. Es löst auch Aufgaben aus, wenn ihre Abhängigkeiten erfüllt sind. Die Sache ist, dass es nicht einfach ist, Hunderte von Aufgaben auszuführen, und die Unternehmen, die Airflow für die Produktion einsetzen, können nicht zurückgehalten werden. Bei der Verwendung der Vorgängerversion von Airflow traten wahrscheinlich mehrere DAG-Ausführungsprobleme auf, z. B. Verzögerungen beim Aufnehmen von Aufgaben. Manchmal stürzte der Scheduler aus einem unbekannten Grund ab, was manchmal dazu führte, dass Aufgaben in der Warteschlange hängten. Die Störung des Schedulers wurde manchmal auch durch einen sehr kurzen Netzwerkausfall (ein paar Sekunden) verursacht — der Grund dafür war, dass es im Airflow Core keinen Wiederholungsmechanismus gab. Aufgrund dieser Probleme sind die horizontale Skalierbarkeit und Verfügbarkeit des Schedulers für die Benutzer sehr wichtig. Außerdem muss er Aufgaben so schnell und effizient wie möglich planen und ausführen, ohne dass während der Scheduler-Replikation Aufgaben verpasst werden. Wie wurde das Team von Airflow mit diesen Herausforderungen umgegangen?
Der Airflow-Scheduler in Version 2.0
Dem Airflow-Team ist es sicherlich gelungen, den Ressourcenverbrauch zu optimieren. Der Scheduler arbeitet jetzt viel schneller, ohne dass die CPU oder der Arbeitsspeicher erhöht werden müssen. Der Scheduler arbeitet im unabhängigen Modus. Wenn das System also mehr als einen Scheduler verwendet, gibt es keine Ausfallzeiten. Die Leistung bei der Ausführung vieler DAGs im Parallelmodus wurde erheblich verbessert. Möchten Sie mehr erfahren? Konzentrieren wir uns auf die Details.
Mehrere Scheduler im aktiven Modell
Airflow 2.0 ermöglicht es Benutzern, mehrere Scheduler zu verwenden. Jeder von ihnen ist „aktiv“ und kann zahlreiche Aufgaben erledigen, auch solche, die nichts mit der Planung zu tun haben, wie z. B. die Überwachung der Aufgabenausführung, die Behandlung von Aufgabenfehlern usw. Alle laufenden Scheduler haben Zugriff auf dieselbe relationale Datenbank. Sobald einer der Scheduler die zu verarbeitende DAG aus der Datenbank auswählt, blockiert er sie für die anderen Scheduler. Dann, nachdem die Verarbeitung abgeschlossen ist, wird die DAG veröffentlicht.
Horizontale Skalierbarkeit
Durch die Verwendung mehrerer Scheduler im aktiven Modell kann Airflow 2.0 eine horizontale Skalierbarkeit erreichen. Einfach gesagt, wenn die Last auf einem Scheduler zu groß ist, können Sie Airflow horizontal skalieren, indem Sie zahlreiche Scheduler knotenübergreifend nutzen. Wenn Sie sie nicht mehr benötigen, können Sie die Anzahl der Scheduler reduzieren, um den Ressourcenverbrauch zu minimieren. Die Scheduler sind identisch, sodass eine Verkleinerung keine negativen Auswirkungen hat.
Keine Wiederherstellungszeit und keine abgestürzten Scheduler
Das aktive Modell im Scheduler von Airflow 2.0 sorgt für keine Ausfallzeiten und keine Wiederherstellungszeit bei einem Ausfall des Schedulers. Das liegt an den anderen voll aktiven Schedulern, die weiterlaufen und den Betrieb übernehmen, wenn einer der Scheduler abstürzt. Natürlich wird der Durchsatz wahrscheinlich in gewisser Weise reduziert, da für die verbleibenden Scheduler mehr Arbeit übrig bleibt, aber eine Wiederherstellung ist trotzdem nicht erforderlich.
Jeder Scheduler unabhängig
Die Wartung komplexer Software wie Apache Airflow ist nicht einfach, aber es ist sehr wichtig, dass sie ohne Verzögerungen funktioniert, da sie oft Teil eines viel größeren Systems ist. Die Installation der notwendigen Patches und Updates ist jedoch von entscheidender Bedeutung. Die Sicherheit des gesamten Systems hängt davon ab. Beim neuen Airflow 2.0-Update hat einer der Scheduler keinen Einfluss auf die Leistung der anderen.
Die Gesamtoptimierung des Schedulers
Die neue Version von Airflow verfügt über eine interessante „Fast-Follow“ -Funktion, die den Scheduler effizienter macht. Was ist das? Es wird von einigen als „Mini-Scheduler“ bei den Arbeitern beschrieben. Nachdem eine Aufgabe in einem Airflow Worker abgeschlossen wurde, prüft das System, ob es in derselben DAG eine Folgeaufgabe gibt, die gerade bearbeitet wird. Wenn eine verfügbar ist, wird sie vom aktuellen Worker übernommen und sofort ausgeführt. Es ist nicht erforderlich, die Folgeaufgabe einem Mitarbeiter zuzuweisen. Die Bearbeitungszeit wird reduziert und die Effizienz erhöht.
Airflow 2.0 Installation und Anpassung
Apache Airflow hat einen erheblichen Wandel durchgemacht, und die Art der Änderungen, die das Airflow-Team vorgenommen hat, deuten darauf hin, dass dieses System mit der Zeit für verschiedene Projekte geeignet sein wird. Denken Sie an die Bedürfnisse Ihres Unternehmens und fragen Sie sich, ob diese flexible Software für Ihre zukünftigen Geschäftsaktivitäten geeignet wäre? Wir bieten Ihnen unsere Unterstützung und Beratung bei der Installation von Airflow 2.0 an und können Ihnen helfen, ihn gemäß den Anforderungen Ihres Unternehmens zu konfigurieren. Wir können auch eine Airflow 2.0-Schulung für Ihr internes Team vorbereiten und durchführen, damit Ihre Mitarbeiter die neuen Funktionen so schnell wie möglich optimal nutzen können. Kontaktieren Sie uns für weitere Informationen. Weitere Informationen zu Airflow finden Sie in unserem Blog:
- Benutzerdefinierte Airflow-E-Mails
- Unterschiede zwischen Airflow 1.10.x und 2.0
- Wie kann die Airflow 2.0-Leistung mit intelligenten Sensoren verbessert werden?