2016-04-17 45 views
4

Ich bin ziemlich neu in Airflow und versuchen zu verstehen, wie sollten wir es einrichten in unserer Umgebung (auf aws).Luftstrom: Wann SellerieExecutor und wann MesosExecutor verwenden

Ich lese die Airflow verwendet Sellerie mit Redis-Broker. Wie unterscheidet es sich von Mesos? Ich habe Sellerie vorher nicht verwendet, aber ich habe versucht, Sellerie-Redis auf meiner Entwicklungsmaschine einzurichten, und es hat mit Leichtigkeit funktioniert. Das Hinzufügen neuer Komponenten bedeutet jedoch mehr Überwachung.

Da wir bereits Mesos für unser Cluster-Management verwenden, versuche ich zu überlegen, was ich vermisse, wenn ich nicht Sellerie wähle und stattdessen mit MesosExecutor gehe?

Antwort

0

Der Luftstrom mit dem SelleryExecuter muss nicht unbedingt den Redis Broker verwenden. Jeder Broker, den Sellerie verwenden kann, ist mit dem Luftstrom kompatibel, obwohl empfohlen wird, entweder den RabbitMQ-Broker oder den Redis Broker zu verwenden.

Sellerie unterscheidet sich ziemlich von Mesos. Obwohl der Luftstrom auch den MesosExecutor unterstützt, wird empfohlen, den SelleryExecutor zu verwenden, wenn Sie die Worker verteilen möchten. Soweit ich weiß, benutzt Airbnb den SellerieExecutor und pflegt ihn aktiv.

0

Der MesosExecutor ist zu diesem Zeitpunkt noch experimentell und unterstützt nicht das Ausführen von Docker-Containern mit unterschiedlichen Ressourcenbeschränkungen pro Task und wahrscheinlich vielen anderen Einschränkungen.

Ich plane, daran zu arbeiten, es ist eine Gemeinschaftsbemühung und nachdem ich einige Anstrengungen unternommen habe, einen Mesos-Cluster zu implementieren, bin ich der Meinung, dass die Zugabe von Sellerie und einem anderen MQ-Makler eine Verschwendung von Ressourcen ist.

0

Mit Sellerie ist der bewährte/stabile Ansatz im Moment.

Für uns ist die Verwaltung von Abhängigkeiten mithilfe von Containern bequemer als die Verwaltung von Abhängigkeiten von den Mesos-Instanzen. Dies ist der Fall, wenn Sie MesosExecutor wählen. So finden wir Sellerie flexibler.

Wir verwenden derzeit Sellery + RabbitMQ, aber wir werden in Zukunft zu MesosExecutor wechseln, da sich unsere Codebasis stabilisiert.

0

Für uns kann der MesosExecutor nicht verwendet werden. Wir benötigen eine Abstraktionsebene, um Abhängigkeiten für den Job zu handhaben, wir können (und sollten) nicht darauf vertrauen, dass abhängige Komponenten auf den Mesos-Slaves installiert sind. Wenn Docker Container und/oder Mesos Container von MesosExecutor unterstützt werden, können wir uns an sie wenden. Außerdem sehe ich gerne die zugewiesenen Arbeiter in Marathon. Ich arbeite daran, wie man Mitarbeiter mit Marathon autoskalieren kann.

Verwandte Themen