2016-07-05 34 views
9

Lokalny Executor spawns nowe procesy podczas planowania zadań. Czy istnieje ograniczenie liczby procesów, które tworzy. Musiałem to zmienić. Muszę wiedzieć, jaka jest różnica między "równoległością" programu planującego w "airflow.cfg" programu planującego "max_threads" i ?Równoległość przepływu powietrza

Odpowiedz

6

Planista max_threads to liczba procesów, w których można zsynchronizować harmonogram. Model max_threads nie może przekroczyć liczby procesorów. LocalExecutor to parallelism to liczba równoczesnych zadań, które powinien wykonać LocalExecutor. Zarówno program planujący, jak i LocalExecutor używają biblioteki przetwarzania wieloprocesorowego Pythona do równoległości.

+1

Doskonale, dzięki! – rjurney

15

paralelizm: nie jest nazwą bardzo opisową. Opis mówi, że ustawia on maksymalne instancje zadań dla instalacji przepływu powietrza, co jest nieco niejednoznaczne - gdybym miał dwa hosty z przepływem powietrza, miałbym przepływ powietrza zainstalowany na dwóch hostach, więc powinny to być dwie instalacje, ale oparte na kontekście "na instalację" oznacza tutaj "według bazy danych stanu przepływu powietrza". Nazwałbym to max_active_tasks.

dag_concurrency: Pomimo nazwy opartej na komentarzu jest to w rzeczywistości współbieżność zadania i jest to na pracownika. Nazwałbym to max_active_tasks_for_worker (per_worker zasugerowałby, że jest to ustawienie globalne dla pracowników, ale myślę, że możesz mieć pracowników o różnych wartościach ustawionych dla tego).

max_active_runs_per_dag: Ten jest trochę porządku, ale ponieważ wydaje się być tylko wartość domyślna dla pasującym DAG kwarg, może to być miły do ​​refleksji, że w nazwie coś default_max_active_runs_for_dags Więc przejdźmy do DAG kwargs:

Współbieżność: Ponownie, posiadanie takiej nazwy, w połączeniu z faktem, że współbieżność jest używana do czegoś innego w innym miejscu, sprawia, że ​​jest to dość mylące. Nazwałbym to max_active_tasks.

max_active_runs: Ten brzmi dla mnie dobrze.

źródło: https://issues.apache.org/jira/browse/AIRFLOW-57


max_threads daje użytkownikowi kontrolę nad użycie procesora. Określa on równoległość harmonogramu.

+0

Czy istnieje sposób określenia paralelizmu na zadanie? Uważam, że gdy zasypuję coś podobnego do pobierania danych z SFTP, chcę równoległości 4 lub 5. Jednak, gdy ładuję dane, chcę, żeby były tylko 1 (jeśli jest więcej niż jeden, dane o zamówieniu nie jest załadowany, nie jest gwarantowany.Teraz mam klucze SERIAL, które są niesprawne, ponieważ zapomniałem zmienić paralelizm z powrotem na 1, co jest nieco irytujące) – trench

+0

Pracownik przepływu powietrza może znajdować się na oddzielnej maszynie bez uruchamiania oddzielnego przepływu powietrza instancja bazy danych. Uruchamiam moich pracowników przepływu powietrza w dockerze, podaję im adres URL kolejki i URL db i działa świetnie! – Sethish

Powiązane problemy