schalen met selderij¶
CeleryExecutor
is een van de manieren om het aantal werknemers uit te schalen. Voor dit werk moet u een selderij-backend instellen (RabbitMQ, Redis, …) en uw airflow.cfg
wijzigen om de uitvoerderparameter naarCeleryExecutor
te verwijzen en de gerelateerde selderij-instellingen op te geven.
voor meer informatie over het opzetten van een Selderiemakelaar, zie deexhaustive seldery documentatie over het onderwerp.
hier zijn enkele dwingende vereisten voor uw werknemers:
-
airflow
moet geïnstalleerd worden, en de CLI moet in het pad staan -
de instellingen van de luchtstroomconfiguratie moeten homogeen zijn over het cluster
-
Operators die worden uitgevoerd op de werknemer moeten hun afhankelijkheidmet in die context. Als u bijvoorbeeld
HiveOperator
gebruikt, moet de hive CLI op dat vak worden geïnstalleerd, of als uMySqlOperator
gebruikt, moet de vereiste Python-bibliotheek op een of andere manier beschikbaar zijn inPYTHONPATH
-
de werknemer moet toegang hebben tot zijn
DAGS_FOLDER
, en je moet de bestandssystemen synchroniseren met je eigen middelen. Een veelvoorkomende setup zou zijn om je DAGS_FOLDER in een git repository op te slaan en te synchroniseren tussen machines met behulp van Chef, Puppet, Ansible, of wat je ook gebruikt om machines in je omgeving te configureren. Als al je boxen een gemeenschappelijk koppelpunt hebben, zou het ook moeten werken dat je pipeelines bestanden daar gedeeld worden.
om een werknemer af te trappen, moet u de luchtstroom instellen en de aftrap van het werkersubcommand
airflow worker
uw werknemer moet beginnen met het oppakken van taken zodra ze worden ontslagen in zijn richting.
merk op dat u ook “Selery Flower”, een web UI Gebouwd op de top van selderij,kunt uitvoeren om uw werknemers te controleren. U kunt de sneltoets airflow flower
gebruiken om een Bloemenwebserver te starten.
houd er rekening mee dat u de flower
python-bibliotheek al op uw systeem moet hebben geïnstalleerd. De aanbevolen manier is om de airflow selderij bundel te installeren.
pip install 'apache-airflow'
enkele kanttekeningen:
-
zorg ervoor dat u een database ondersteund resultaat backend gebruiken
-
zorg ervoor dat u een tijdslimiet voor zichtbaarheid instelt die de ETA van uw langst lopende taak overschrijdt
-
taken kunnen middelen verbruiken. Zorg ervoor dat uw werknemer genoeg middelen heeft om worker_concurrency taken uit te voeren
-
Wachtrijnamen zijn beperkt tot 256 tekens, maar elke broker-backend kan zijn eigen beperkingen
hebben