Где находится папка /tmp в Airflow?

#airflow

Вопрос:

Я знаю, что мы можем обмениваться информацией между задачами, сохраняя данные в папке /tmp. Так как каждая задача может выполняться на другой машине. Как /tmp из одной задачи доступен для другой задачи в потоке воздуха?

Ответ №1:

Этот общий доступ, о котором вы упомянули, возможен только в том случае, если вы используете LocalExecutor — потому что в этом случае все задачи выполняются на одной машине.

Если вы используете исполнители Celery/Kubernetes, общий доступ к данным «/tmp» работать не будет. Это может случайно сработать на исполнителе Celery, если задачи выполняются на одной и той же машине, но это совсем не гарантировано. Потенциально вы можете разместить все задачи, требующие такого совместного использования, на одной машине в исполнителе сельдерея, используя «очереди» — при создании одного работника сельдерея для одной очереди все задачи, назначенные этой очереди, будут выполняться на этой машине (таким образом, общий доступ к /tmp будет работать), но это сильно влияет на сценарии масштабируемости и устойчивости.

А также у вас может быть развертывание /tmp Airlfow в общей файловой системе, но это было бы ужасно неэффективно, поскольку папка «/tmp» часто используется для локального кэширования файлов, а использование сетевой файловой системы сильно повлияет на производительность.

Комментарии:

1. Спасибо @Jarek Potiuk