skalowanie za pomocą selera¶
CeleryExecutor
jest jednym ze sposobów skalowania liczby pracowników. Aby to zrobić, musisz skonfigurować backend selera (RabbitMQ, Redis,…) i zmienić airflow.cfg
, aby wskazać parametr executor naCeleryExecutor
i podać powiązane ustawienia selera.
aby uzyskać więcej informacji na temat zakładania brokera selerowego, zapoznaj się z dokumentacją exhaustive seler na ten temat.
oto kilka podstawowych wymagań dla Twoich pracowników:
-
airflow
musi być zainstalowany, a CLI musi być na ścieżce -
ustawienia konfiguracji przepływu powietrza powinny być jednorodne w całym klastrze
-
operatorzy, którzy są wykonywani na pracowniku, muszą mieć w tym kontekście swoje zależności. Na przykład, jeśli używasz
HiveOperator
,hive CLI musi być zainstalowany na tym polu, lub jeśli używaszMySqlOperator
, wymagana biblioteka Pythona musi być dostępna wPYTHONPATH
w jakiś sposób -
worker musi mieć dostęp do swojego
DAGS_FOLDER
, a ty musisz zsynchronizować systemy plików własnymi środkami. Powszechną konfiguracją będzie przechowywanie DAGS_FOLDER w repozytorium Git i synchronizowanie go między maszynami używającymi chef, Puppet, Ansible lub czegokolwiek, czego używasz do konfigurowania maszyn w yourenvironment. Jeśli wszystkie Twoje skrzynki mają wspólny punkt montowania, współdzielenie plików z pipelinami powinno również zadziałać
aby uruchomić pracownika, musisz skonfigurować przepływ powietrza i uruchomić polecenie workersubcommand
airflow worker
Twój pracownik powinien zacząć odbierać zadania, gdy tylko zostaną zwolnione w jego kierunku.
zauważ, że możesz również uruchomić” selerowy kwiat”, interfejs internetowy zbudowany na selerze, aby monitorować swoich pracowników. Możesz użyć polecenia skrótu airflow flower
, aby uruchomić serwer WWW Flower.
pamiętaj, że musisz mieć bibliotekę Pythona flower
już zainstalowaną w Twoim systemie. Zalecanym sposobem jest zainstalowanie pakietu selera z przepływem powietrza.
pip install 'apache-airflow'
niektóre zastrzeżenia:
-
upewnij się, że używasz backendu wyników z bazą danych
-
pamiętaj, aby ustawić limit czasu widoczności przekraczający ETA twojego najdłużej działającego zadania
-
zadania mogą zużywać zasoby. Upewnij się, że twój pracownik ma wystarczająco dużo zasobów, aby uruchomić zadania worker_concurrency
-
nazwy kolejek są ograniczone do 256 znaków, ale każdy backend brokera może mieć własne ograniczenia