Mise à l’échelle avec le Céleri¶
CeleryExecutor
est l’un des moyens de réduire le nombre de travailleurs. Pour cela, vous devez configurer un backend de Céleri (RabbitMQ, Redis, Red) et changer votre airflow.cfg
pour pointer le paramètre executor sur CeleryExecutor
et fournir les paramètres de Céleri associés.
Pour plus d’informations sur la mise en place d’un courtier de céleri, reportez-vous à la documentation sur le céleri sur le sujet.
Voici quelques exigences impératives pour vos travailleurs:
-
airflow
doit être installé, et l’interface de ligne de commande doit être dans le chemin -
Les paramètres de configuration du flux d’air doivent être homogènes sur l’ensemble du cluster
-
Les opérateurs exécutés sur le travailleur doivent avoir leurs dépendances satisfaites dans ce contexte. Par exemple, si vous utilisez le
HiveOperator
, l’interface de ligne de commande hive doit être installée sur cette boîte, ou si vous utilisez leMySqlOperator
, la bibliothèque Python requise doit être disponible dans lePYTHONPATH
d’une manière ou d’une autre -
Le travailleur doit avoir accès à son
DAGS_FOLDER
, et vous devez synchroniser les systèmes de fichiers par vos propres moyens. Une configuration courante consisterait à placer votre DAGS_FOLDER dans un référentiel Git et à le synchroniser sur des machines à l’aide dechef, Puppet, Ansible ou tout ce que vous utilisez pour configurer des machines dans votre environnement. Si toutes vos boîtes ont un point de montage commun, le partage des fichiers yourpipelines devrait également fonctionner
Pour lancer un travailleur, vous devez configurer le flux d’air et lancer la commande workersubcommand
airflow worker
Votre travailleur devrait commencer à prendre des tâches dès qu’il est renvoyé dans sa direction.
Notez que vous pouvez également exécuter “Fleur de Céleri”, une interface utilisateur Web construite sur le Céleri, pour surveiller vos travailleurs. Vous pouvez utiliser la commande de raccourci airflow flower
pour démarrer un serveur web Flower.
Veuillez noter que la bibliothèque python flower
doit être déjà installée sur votre système. La méthode recommandée consiste à installer le faisceau de céleri à flux d’air.
pip install 'apache-airflow'
Quelques mises en garde:
-
Assurez-vous d’utiliser un backend de résultats soutenu par une base de données
-
Assurez-vous de définir un délai de visibilité supérieur à l’ETA de votre tâche la plus longue
-
Les tâches peuvent consommer des ressources. Assurez-vous que votre travailleur dispose de suffisamment de ressources pour exécuter les tâches worker_concurrency
-
Les noms de file d’attente sont limités à 256 caractères, mais chaque backend de courtier peut avoir ses propres restrictions