Scaling Out con Celery¶

CeleryExecutor è uno dei modi in cui è possibile ridimensionare il numero di lavoratori. Per questo lavoro, è necessario impostare un backend di Celery (RabbitMQ, Redis, …) e cambiare airflow.cfg per puntare il parametro executor aCeleryExecutor e fornire le relative impostazioni di Celery.

Per ulteriori informazioni sulla creazione di un broker Celery, consultare la documentazione esaustiva di Celery sull’argomento.

Ecco alcuni requisiti imperativi per i tuoi lavoratori:

  • airflow deve essere installato e la CLI deve essere nel percorso

  • Le impostazioni di configurazione del flusso d’aria devono essere omogenee in tutto il cluster

  • Gli operatori che vengono eseguiti sul lavoratore devono avere le loro dipendenze in quel contesto. Ad esempio, se si utilizza HiveOperator, la CLI hive deve essere installata su quella casella, o se si utilizzaMySqlOperator , la libreria Python richiesta deve essere disponibile in PYTHONPATH in qualche modo

  • Il lavoratore deve avere accesso al suo DAGS_FOLDER e devi sincronizzare i filesystem con i tuoi mezzi. Una configurazione comune sarebbe quella di memorizzare il tuo DAGS_FOLDER in un repository Git e sincronizzarlo su macchine usando Chef, Puppet, Ansible o qualsiasi altra cosa tu usi per configurare macchine in yourenvironment. Se tutte le caselle hanno un comune punto di mount, avendo yourpipelines file condivisi non ci dovrebbero funzionare bene

A dare il via a un lavoratore, è necessario impostare il Flusso d’aria e dare il via alla workersubcommand

airflow worker

Il lavoratore dovrebbe iniziare a salire i compiti appena licenziato inits direzione.

Nota che puoi anche eseguire “Celery Flower”, un’interfaccia utente web costruita su Celery, per monitorare i tuoi lavoratori. È possibile utilizzare il comando di scelta rapida airflow flower per avviare un server Web Flower.

Si noti che è necessario avere la libreria python flower già installata sul sistema. Il modo consigliato è installare il fascio di sedano del flusso d’aria.

pip install 'apache-airflow'

Alcuni avvertimenti:

  • Assicurarsi di utilizzare un backend dei risultati supportato dal database

  • Assicurati di impostare un timeout di visibilità che superi l’ETA dell’attività più lunga

  • Le attività possono consumare risorse. Assicurati che il tuo lavoratore abbia risorse sufficienti per eseguire attività worker_concurrency

  • I nomi delle code sono limitati a 256 caratteri, ma ogni backend del broker potrebbe avere le proprie restrizioni

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.