web-dev-qa-db-fra.com

Parallélisme du flux d'air

l'exécuteur local génère de nouveaux processus lors de la planification des tâches. Y a-t-il une limite au nombre de processus qu'il crée. J'avais besoin de le changer. J'ai besoin de savoir quelle est la différence entre "max_threads" de l'ordonnanceur et "parallélisme" dans airflow.cfg?

34
sidd607

parallélisme: pas un nom très descriptif. La description indique qu'elle définit le nombre maximal d'instances de tâches pour l'installation de flux d'air, ce qui est un peu ambigu - si j'ai deux hôtes exécutant des travailleurs de flux d'air, j'aurais installé airflow sur deux hôtes, ce qui devrait être deux installations, mais en fonction du contexte "par installation" signifie ici "par base de données d'état Airflow". Je nommerais ce max_active_tasks.

dag_concurrency: Malgré le nom basé sur le commentaire, il s'agit en fait de la tâche simultanée, et c'est par travailleur. Je nommerais ce max_active_tasks_for_worker (per_worker suggérerait que c'est un paramètre global pour les travailleurs, mais je pense que vous pouvez avoir des travailleurs avec des valeurs différentes définies pour cela).

max_active_runs_per_dag : Celui-ci est un peu correct, mais comme il semble que ce soit juste une valeur par défaut pour le kwarg DAG correspondant, il pourrait être agréable de refléter cela dans le nom, quelque chose comme default_max_active_runs_for_dags Alors passons aux kwargs DAG:

simultanéité : Encore une fois, avoir un nom général comme celui-ci, couplé au fait que la simultanéité est utilisée pour quelque chose de différent ailleurs rend cela assez déroutant. J'appellerais cela max_active_tasks.

max_active_runs : Celui-ci me semble bien.

source: https://issues.Apache.org/jira/browse/AIRFLOW-57


max_threads donne à l'utilisateur un certain contrôle sur l'utilisation du processeur. Il spécifie le parallélisme du planificateur.

62
Roger

L'ordonnanceur max_threads est le nombre de processus pour paralléliser l'ordonnanceur. Le max_threads ne peut pas dépasser le nombre de processeurs. Le LocalExecutor parallelism est le nombre de tâches simultanées que le LocalExecutor doit exécuter. Le planificateur et le LocalExecutor utilisent tous les deux la bibliothèque multiprocessing de python pour le parallélisme.

13
Vineet Goel