skala ut med selleri¶
CeleryExecutor
är ett av de sätt du kan skala ut antalet arbetare. För att detta ska fungera måste du ställa in en selleri-backend (RabbitMQ, Redis, …) och ändra din airflow.cfg
för att peka executor-parametern tillCeleryExecutor
och ange de relaterade selleri-inställningarna.
för mer information om att skapa en Sellerimäklare, seutmattande selleri dokumentation om ämnet.
här är några tvingande krav för dina arbetare:
-
airflow
måste installeras, och CLI måste vara i vägen -
Luftflödeskonfigurationsinställningarna ska vara homogena över klustret
-
operatörer som körs på arbetstagaren måste ha sina beroenden i det sammanhanget. Om du till exempel använder
HiveOperator
måste hive CLI installeras på den rutan, eller om du använderMySqlOperator
måste det nödvändiga Python-biblioteket vara tillgängligt iPYTHONPATH
på något sätt -
arbetaren måste ha tillgång till dess
DAGS_FOLDER
, och du måstesynkronisera filsystemen på egen hand. En vanlig inställning skulle vara att lagra din DAGS_FOLDER i ett Git-arkiv och synkronisera det över maskiner medchef, Puppet, Ansible eller vad du än använder för att konfigurera maskiner i din miljö. Om alla dina rutor har en gemensam monteringspunkt, med yourpipelines filer delas det bör fungera också
för att sparka av en arbetare måste du ställa in luftflödet och sparka av workersubcommand
airflow worker
din arbetare bör börja plocka upp uppgifter så snart de får sparken idess riktning.
Observera att du också kan köra “selleri blomma”, ett webbgränssnitt byggt ovanpå selleri,för att övervaka dina arbetare. Du kan använda genvägskommandot airflow flower
för att starta en Flower-webbserver.
Observera att du måste ha flower
python-biblioteket redan installerat på ditt system. Det rekommenderade sättet är att installera airflow selleri bunt.
pip install 'apache-airflow'
några varningar:
-
se till att använda en databas backed resultat backend
-
se till att ställa in en tidsgräns för synlighet som överstiger ETA för din längsta aktivitet
-
uppgifter kan konsumera resurser. Se till att din arbetare har tillräckligt med resurser för att köra worker_concurrency-uppgifter
-
könamn är begränsade till 256 tecken, men varje mäklare backend kan ha sina egna begränsningar