#airflow
Вопрос:
Я знаю, что мы можем обмениваться информацией между задачами, сохраняя данные в папке /tmp. Так как каждая задача может выполняться на другой машине. Как /tmp из одной задачи доступен для другой задачи в потоке воздуха?
Ответ №1:
Этот общий доступ, о котором вы упомянули, возможен только в том случае, если вы используете LocalExecutor
— потому что в этом случае все задачи выполняются на одной машине.
Если вы используете исполнители Celery/Kubernetes, общий доступ к данным «/tmp» работать не будет. Это может случайно сработать на исполнителе Celery, если задачи выполняются на одной и той же машине, но это совсем не гарантировано. Потенциально вы можете разместить все задачи, требующие такого совместного использования, на одной машине в исполнителе сельдерея, используя «очереди» — при создании одного работника сельдерея для одной очереди все задачи, назначенные этой очереди, будут выполняться на этой машине (таким образом, общий доступ к /tmp будет работать), но это сильно влияет на сценарии масштабируемости и устойчивости.
А также у вас может быть развертывание /tmp
Airlfow в общей файловой системе, но это было бы ужасно неэффективно, поскольку папка «/tmp» часто используется для локального кэширования файлов, а использование сетевой файловой системы сильно повлияет на производительность.
Комментарии:
1. Спасибо @Jarek Potiuk